(ignored inputs)COMMENT addition + associative law + commutative law
Rewrite Rules:
[ +(?x,0) -> ?x,
+(?x,s(?y)) -> s(+(?x,?y)),
+(+(?x,?y),?z) -> +(?x,+(?y,?z)),
+(?x,?y) -> +(?y,?x) ]
Apply Direct Methods...
Inner CPs:
[ +(?x,?z_2) = +(?x,+(0,?z_2)),
+(s(+(?x_1,?y_1)),?z_2) = +(?x_1,+(s(?y_1),?z_2)),
+(+(?y_3,?x_3),?z_2) = +(?x_3,+(?y_3,?z_2)),
+(+(?x,+(?y,?z)),?z_1) = +(+(?x,?y),+(?z,?z_1)) ]
Outer CPs:
[ +(?x_2,?y_2) = +(?x_2,+(?y_2,0)),
?x = +(0,?x),
s(+(+(?x_2,?y_2),?y_1)) = +(?x_2,+(?y_2,s(?y_1))),
s(+(?x_1,?y_1)) = +(s(?y_1),?x_1),
+(?x_2,+(?y_2,?z_2)) = +(?z_2,+(?x_2,?y_2)) ]
not Overlay, check Termination...
unknown/not Terminating
unknown Knuth&Bendix
Linear
unknown Development Closed
unknown Strongly Closed
unknown Upside-Parallel-Closed/Outside-Closed
(inner) Parallel CPs: (not computed)
unknown Toyama (Parallel CPs)
Simultaneous CPs:
[ +(?x,+(?y,?z_4)) = +(+(?y,?x),?z_4),
+(?x_3,+(?y_3,?y)) = +(?y,+(?x_3,?y_3)),
s(+(?x,?y_2)) = +(s(?y_2),?x),
?x = +(0,?x),
+(+(?x,?y),+(?z,?z_1)) = +(+(?x,+(?y,?z)),?z_1),
+(+(?y,?x),+(?z,?z_1)) = +(+(?x,+(?y,?z)),?z_1),
+(s(+(?x,?y_4)),+(?z,?z_1)) = +(+(?x,+(s(?y_4),?z)),?z_1),
+(?x,+(?z,?z_1)) = +(+(?x,+(0,?z)),?z_1),
+(+(?x_2,+(?y_2,?y)),+(?z,?z_1)) = +(+(+(?x_2,?y_2),+(?y,?z)),?z_1),
+(+(?y,?x),?z) = +(?x,+(?y,?z)),
+(s(+(?x,?y_3)),?z) = +(?x,+(s(?y_3),?z)),
+(?x,?z) = +(?x,+(0,?z)),
+(+(?x_1,+(?y_1,?y)),?z) = +(+(?x_1,?y_1),+(?y,?z)),
+(?z,+(?x,?y)) = +(?x,+(?y,?z)),
s(+(+(?x,?y),?y_2)) = +(?x,+(?y,s(?y_2))),
+(?x,?y) = +(?x,+(?y,0)),
+(?z,+(?y,?x)) = +(?x,+(?y,?z)),
+(?z,s(+(?x,?y_3))) = +(?x,+(s(?y_3),?z)),
+(?z,?x) = +(?x,+(0,?z)),
+(?z,+(?x_1,+(?y_1,?y))) = +(+(?x_1,?y_1),+(?y,?z)),
s(+(+(?y,?x),?y_2)) = +(?x,+(?y,s(?y_2))),
s(+(s(+(?x,?y_5)),?y_2)) = +(?x,+(s(?y_5),s(?y_2))),
s(+(?x,?y_2)) = +(?x,+(0,s(?y_2))),
s(+(+(?x_3,+(?y_3,?y)),?y_2)) = +(+(?x_3,?y_3),+(?y,s(?y_2))),
+(?y,?x) = +(?x,+(?y,0)),
s(+(?x,?y_3)) = +(?x,+(s(?y_3),0)),
?x = +(?x,+(0,0)),
+(?x_1,+(?y_1,?y)) = +(+(?x_1,?y_1),+(?y,0)),
+(?x,+(s(?y),?z_3)) = +(s(+(?x,?y)),?z_3),
+(s(?y),?x) = s(+(?x,?y)),
+(?x_2,+(?y_2,s(?y))) = s(+(+(?x_2,?y_2),?y)),
+(?x,+(0,?z_3)) = +(?x,?z_3),
+(0,?x) = ?x,
+(?x_2,+(?y_2,0)) = +(?x_2,?y_2) ]
unknown Okui (Simultaneous CPs)
unknown Strongly Depth-Preserving & Non-E-Overlapping
check Locally Decreasing Diagrams by Rule Labelling...
Critical Pair <+(?x,?z_2), +(?x,+(0,?z_2))> by Rules <0, 2> preceded by [(+,1)]
joinable by a reduction of rules <[], [([(+,2)],3),([(+,2)],0)]>
Critical Pair <+(s(+(?x_1,?y_1)),?z_2), +(?x_1,+(s(?y_1),?z_2))> by Rules <1, 2> preceded by [(+,1)]
joinable by a reduction of rules <[([],3),([],1),([(s,1)],3),([(s,1)],2)], [([(+,2)],3),([(+,2)],1),([(+,2),(s,1)],3),([],1)]>
joinable by a reduction of rules <[([],3),([],1),([(s,1)],3),([(s,1)],2)], [([(+,2)],3),([(+,2)],1),([],1),([(s,1),(+,2)],3)]>
Critical Pair <+(+(?y_3,?x_3),?z_2), +(?x_3,+(?y_3,?z_2))> by Rules <3, 2> preceded by [(+,1)]
joinable by a reduction of rules <[([(+,1)],3),([],2)], []>
joinable by a reduction of rules <[([],2),([(+,2)],3)], [([],3),([],2)]>
Critical Pair <+(+(?x,+(?y,?z)),?z_1), +(+(?x,?y),+(?z,?z_1))> by Rules <2, 2> preceded by [(+,1)]
joinable by a reduction of rules <[([],2),([(+,2)],2)], [([],2)]>
Critical Pair <+(?x_2,+(?y_2,0)), +(?x_2,?y_2)> by Rules <2, 0> preceded by []
joinable by a reduction of rules <[([(+,2)],0)], []>
Critical Pair <+(0,?x_3), ?x_3> by Rules <3, 0> preceded by []
joinable by a reduction of rules <[([],3),([],0)], []>
Critical Pair <+(?x_2,+(?y_2,s(?y_1))), s(+(+(?x_2,?y_2),?y_1))> by Rules <2, 1> preceded by []
joinable by a reduction of rules <[([(+,2)],1),([],1)], [([(s,1)],2)]>
Critical Pair <+(s(?y_1),?x_3), s(+(?x_3,?y_1))> by Rules <3, 1> preceded by []
joinable by a reduction of rules <[([],3),([],1)], []>
Critical Pair <+(?y_3,+(?x_2,?y_2)), +(?x_2,+(?y_2,?y_3))> by Rules <3, 2> preceded by []
joinable by a reduction of rules <[([],3),([],2)], []>
unknown Diagram Decreasing
check by Reduction-Preserving Completion...
STEP: 1 (parallel)
S:
[ +(?x,0) -> ?x,
+(?x,s(?y)) -> s(+(?x,?y)) ]
P:
[ +(+(?x,?y),?z) -> +(?x,+(?y,?z)),
+(?x,?y) -> +(?y,?x) ]
S: terminating
CP(S,S):
PCP_in(symP,S):
CP(S,symP):
<+(?x_1,?y_1), +(?x_1,+(?y_1,0))> --> <+(?x_1,?y_1), +(?x_1,?y_1)> => yes
<+(?x,?z_1), +(?x,+(0,?z_1))> --> <+(?x,?z_1), +(?x,+(0,?z_1))> => no
<+(?x_1,?x), +(+(?x_1,?x),0)> --> <+(?x_1,?x), +(?x_1,?x)> => yes
--> => no
~~ --> ~~~~ => yes
<+(s(+(?x,?y)),?z_1), +(?x,+(s(?y),?z_1))> --> <+(s(+(?x,?y)),?z_1), +(?x,+(s(?y),?z_1))> => no
<+(?x_1,s(+(?x,?y))), +(+(?x_1,?x),s(?y))> --> ~~~~ => yes
~~~~ --> ~~~~ => no
check joinability condition:
check modulo reachablity from +(?x,?z_1) to +(?x,+(0,?z_1)): maybe not reachable
check modulo reachablity from ?x to +(0,?x): maybe not reachable
check modulo reachablity from +(s(+(?x,?y)),?z_1) to +(?x,+(s(?y),?z_1)): maybe not reachable
check modulo reachablity from s(+(?x,?y)) to +(s(?y),?x): maybe not reachable
failed
failure(Step 1)
[ +(s(?y),?x) -> s(+(?x,?y)),
+(0,?x) -> ?x ]
Added S-Rules:
[ +(s(?y),?x) -> s(+(?x,?y)),
+(0,?x) -> ?x ]
Added P-Rules:
[ ]
replace: +(?x,s(?y)) -> s(+(?x,?y)) => +(?x,s(?y)) -> s(+(?y,?x))
STEP: 2 (linear)
S:
[ +(?x,0) -> ?x,
+(?x,s(?y)) -> s(+(?x,?y)) ]
P:
[ +(+(?x,?y),?z) -> +(?x,+(?y,?z)),
+(?x,?y) -> +(?y,?x) ]
S: terminating
CP(S,S):
CP_in(symP,S):
CP(S,symP):
<+(?x_1,?y_1), +(?x_1,+(?y_1,0))> --> <+(?x_1,?y_1), +(?x_1,?y_1)> => yes
<+(?x,?z_1), +(?x,+(0,?z_1))> --> <+(?x,?z_1), +(?x,+(0,?z_1))> => no
<+(?x_1,?x), +(+(?x_1,?x),0)> --> <+(?x_1,?x), +(?x_1,?x)> => yes
--> => no
~~~~ --> ~~~~ => yes
<+(s(+(?x,?y)),?z_1), +(?x,+(s(?y),?z_1))> --> <+(s(+(?x,?y)),?z_1), +(?x,+(s(?y),?z_1))> => no
<+(?x_1,s(+(?x,?y))), +(+(?x_1,?x),s(?y))> --> ~~~~ => yes
~~~~ --> ~~~~ => no
check joinability condition:
check modulo reachablity from +(?x,?z_1) to +(?x,+(0,?z_1)): maybe not reachable
check modulo reachablity from ?x to +(0,?x): maybe not reachable
check modulo reachablity from +(s(+(?x,?y)),?z_1) to +(?x,+(s(?y),?z_1)): maybe not reachable
check modulo reachablity from s(+(?x,?y)) to +(s(?y),?x): maybe not reachable
failed
failure(Step 2)
[ +(s(?y),?x) -> s(+(?x,?y)),
+(0,?x) -> ?x ]
Added S-Rules:
[ +(s(?y),?x) -> s(+(?x,?y)),
+(0,?x) -> ?x ]
Added P-Rules:
[ ]
replace: +(?x,s(?y)) -> s(+(?x,?y)) => +(?x,s(?y)) -> s(+(?y,?x))
STEP: 3 (relative)
S:
[ +(?x,0) -> ?x,
+(?x,s(?y)) -> s(+(?x,?y)) ]
P:
[ +(+(?x,?y),?z) -> +(?x,+(?y,?z)),
+(?x,?y) -> +(?y,?x) ]
Check relative termination:
[ +(?x,0) -> ?x,
+(?x,s(?y)) -> s(+(?x,?y)) ]
[ +(+(?x,?y),?z) -> +(?x,+(?y,?z)),
+(?x,?y) -> +(?y,?x) ]
Polynomial Interpretation:
+:= (1)*x1+(1)*x1*x2+(1)*x2
0:= (1)
s:= (8)+(3)*x1
retract +(?x,0) -> ?x
Polynomial Interpretation:
+:= (2)+(2)*x1+(1)*x1*x2+(2)*x2
0:= (4)
s:= (3)+(1)*x1
relatively terminating
S/P: relatively terminating
check CP condition:
failed
failure(Step 3)
STEP: 4 (parallel)
S:
[ +(?x,0) -> ?x,
+(?x,s(?y)) -> s(+(?x,?y)),
+(s(?y),?x) -> s(+(?x,?y)),
+(0,?x) -> ?x ]
P:
[ +(+(?x,?y),?z) -> +(?x,+(?y,?z)),
+(?x,?y) -> +(?y,?x) ]
S: terminating
CP(S,S):
~~~~ --> ~~~~ => yes
<0, 0> --> <0, 0> => yes
~~~~ --> ~~~~ => yes
~~~~ --> ~~~~ => yes
PCP_in(symP,S):
CP(S,symP):
<+(?x_1,?y_1), +(?x_1,+(?y_1,0))> --> <+(?x_1,?y_1), +(?x_1,?y_1)> => yes
<+(?x,?z_1), +(?x,+(0,?z_1))> --> <+(?x,?z_1), +(?x,?z_1)> => yes
<+(?x_1,?x), +(+(?x_1,?x),0)> --> <+(?x_1,?x), +(?x_1,?x)> => yes
--> => yes
~~~~ --> ~~~~ => yes
<+(s(+(?x,?y)),?z_1), +(?x,+(s(?y),?z_1))> --> ~~~~ => no
<+(?x_1,s(+(?x,?y))), +(+(?x_1,?x),s(?y))> --> ~~~~ => yes
~~~~ --> ~~~~ => yes
<+(s(+(?x,?y)),?z_1), +(s(?y),+(?x,?z_1))> --> ~~~~ => no
~~~~ --> ~~~~ => no
<+(?x_1,s(+(?x,?y))), +(+(?x_1,s(?y)),?x)> --> ~~~~ => no
~~~~ --> ~~~~ => yes
<+(?x,?z_1), +(0,+(?x,?z_1))> --> <+(?x,?z_1), +(?x,?z_1)> => yes
<+(?y_1,?z_1), +(+(0,?y_1),?z_1)> --> <+(?y_1,?z_1), +(?y_1,?z_1)> => yes
<+(?x_1,?x), +(+(?x_1,0),?x)> --> <+(?x_1,?x), +(?x_1,?x)> => yes
--> => yes
check joinability condition:
check modulo joinability of s(+(?z_1,+(?x,?y))) and s(+(?x,+(?z_1,?y))): joinable by {1}
check modulo joinability of s(+(?z_1,+(?x,?y))) and s(+(+(?x,?z_1),?y)): joinable by {1}
check modulo joinability of s(+(+(?y_1,?z_1),?y)) and s(+(?z_1,+(?y_1,?y))): joinable by {1}
check modulo joinability of s(+(?x_1,+(?x,?y))) and s(+(?x,+(?x_1,?y))): joinable by {1}
success
P':
[ +(?x,+(?y,?z)) -> +(+(?x,?y),?z) ]
Check relative termination:
[ +(?x,0) -> ?x,
+(?x,s(?y)) -> s(+(?x,?y)),
+(s(?y),?x) -> s(+(?x,?y)),
+(0,?x) -> ?x ]
[ +(?x,+(?y,?z)) -> +(+(?x,?y),?z) ]
Polynomial Interpretation:
+:= (1)*x1+(1)*x1*x2+(1)*x2
0:= (4)
s:= (11)+(2)*x1
retract +(?x,0) -> ?x
retract +(0,?x) -> ?x
Polynomial Interpretation:
+:= (2)+(2)*x1+(1)*x1*x2+(2)*x2
0:= (8)
s:= (4)+(1)*x1
relatively terminating
S/P': relatively terminating
S:
[ +(?x,0) -> ?x,
+(?x,s(?y)) -> s(+(?x,?y)),
+(s(?y),?x) -> s(+(?x,?y)),
+(0,?x) -> ?x ]
P:
[ +(+(?x,?y),?z) -> +(?x,+(?y,?z)),
+(?x,?y) -> +(?y,?x) ]
Success
Reduction-Preserving Completion
Direct Methods: CR
Final result: CR
/local-scratch/hzankl/2012/cops2012/105.trs: Success(CR)
(601 msec.)
~~