YES(O(1), O(n^1)) 84.34/33.71 YES(O(1), O(n^1)) 84.34/33.74 84.34/33.74 84.34/33.74
84.34/33.74 84.34/33.740 CpxRelTRS84.34/33.74
↳1 CpxRelTrsToCDT (UPPER BOUND (ID))84.34/33.74
↳2 CdtProblem84.34/33.74
↳3 CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID))84.34/33.74
↳4 CdtProblem84.34/33.74
↳5 CdtGraphSplitRhsProof (BOTH BOUNDS(ID, ID))84.34/33.74
↳6 CdtProblem84.34/33.74
↳7 CdtLeafRemovalProof (ComplexityIfPolyImplication)84.34/33.74
↳8 CdtProblem84.34/33.74
↳9 CdtNarrowingProof (BOTH BOUNDS(ID, ID))84.34/33.74
↳10 CdtProblem84.34/33.74
↳11 CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID))84.34/33.74
↳12 CdtProblem84.34/33.74
↳13 CdtNarrowingProof (BOTH BOUNDS(ID, ID))84.34/33.74
↳14 CdtProblem84.34/33.74
↳15 CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID))84.34/33.74
↳16 CdtProblem84.34/33.74
↳17 CdtLeafRemovalProof (ComplexityIfPolyImplication)84.34/33.74
↳18 CdtProblem84.34/33.74
↳19 CdtNarrowingProof (BOTH BOUNDS(ID, ID))84.34/33.74
↳20 CdtProblem84.34/33.74
↳21 CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID))84.34/33.74
↳22 CdtProblem84.34/33.74
↳23 CdtPolyRedPairProof (UPPER BOUND (ADD(O(n^1))))84.34/33.74
↳24 CdtProblem84.34/33.74
↳25 CdtPolyRedPairProof (UPPER BOUND (ADD(O(n^1))))84.34/33.74
↳26 CdtProblem84.34/33.74
↳27 CdtPolyRedPairProof (UPPER BOUND (ADD(O(n^1))))84.34/33.74
↳28 CdtProblem84.34/33.74
↳29 CdtPolyRedPairProof (UPPER BOUND (ADD(O(n^1))))84.34/33.74
↳30 CdtProblem84.34/33.74
↳31 CdtNarrowingProof (BOTH BOUNDS(ID, ID))84.34/33.74
↳32 CdtProblem84.34/33.74
↳33 CdtPolyRedPairProof (UPPER BOUND (ADD(O(n^1))))84.34/33.74
↳34 CdtProblem84.34/33.74
↳35 CdtNarrowingProof (BOTH BOUNDS(ID, ID))84.34/33.74
↳36 CdtProblem84.34/33.74
↳37 CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID))84.34/33.74
↳38 CdtProblem84.34/33.74
↳39 CdtPolyRedPairProof (UPPER BOUND (ADD(O(n^1))))84.34/33.74
↳40 CdtProblem84.34/33.74
↳41 CdtPolyRedPairProof (UPPER BOUND (ADD(O(n^1))))84.34/33.74
↳42 CdtProblem84.34/33.74
↳43 SIsEmptyProof (BOTH BOUNDS(ID, ID))84.34/33.74
↳44 BOUNDS(O(1), O(1))84.34/33.74
getNodeFromEdge(S(S(x')), E(x, y)) → y 84.34/33.74
via(u, v, Cons(E(x, y), xs), edges) → via[Ite][False][Ite](!EQ(u, x), u, v, Cons(E(x, y), xs), edges) 84.34/33.74
getNodeFromEdge(S(0), E(x, y)) → x 84.34/33.74
member(x', Cons(x, xs)) → member[Ite][False][Ite](eqEdge(x', x), x', Cons(x, xs)) 84.34/33.74
getNodeFromEdge(0, E(x, y)) → x 84.34/33.74
eqEdge(E(e11, e12), E(e21, e22)) → eqEdge[Match][E][Match][E][Ite](and(!EQ(e11, e21), !EQ(e12, e22)), e21, e22, e11, e12) 84.34/33.74
via(u, v, Nil, edges) → Nil 84.34/33.74
notEmpty(Cons(x, xs)) → True 84.34/33.74
notEmpty(Nil) → False 84.34/33.74
member(x, Nil) → False 84.34/33.74
reach(u, v, edges) → reach[Ite](member(E(u, v), edges), u, v, edges) 84.34/33.74
goal(u, v, edges) → reach(u, v, edges)
!EQ(S(x), S(y)) → !EQ(x, y) 84.34/33.74
!EQ(0, S(y)) → False 84.34/33.74
!EQ(S(x), 0) → False 84.34/33.74
!EQ(0, 0) → True 84.34/33.74
and(False, False) → False 84.34/33.74
and(True, False) → False 84.34/33.74
and(False, True) → False 84.34/33.74
and(True, True) → True 84.34/33.74
via[Ite][False][Ite](True, u, v, Cons(E(x, y), xs), edges) → via[Ite][False][Ite][True][Let](u, v, Cons(E(x, y), xs), edges, reach(y, v, edges)) 84.34/33.74
via[Ite][False][Ite](False, u, v, Cons(x, xs), edges) → via(u, v, xs, edges) 84.34/33.74
member[Ite][False][Ite](False, x', Cons(x, xs)) → member(x', xs) 84.34/33.74
reach[Ite](False, u, v, edges) → via(u, v, edges, edges) 84.34/33.74
reach[Ite](True, u, v, edges) → Cons(E(u, v), Nil) 84.34/33.74
member[Ite][False][Ite](True, x, xs) → True
Tuples:
!EQ(S(z0), S(z1)) → !EQ(z0, z1) 84.34/33.74
!EQ(0, S(z0)) → False 84.34/33.74
!EQ(S(z0), 0) → False 84.34/33.74
!EQ(0, 0) → True 84.34/33.74
and(False, False) → False 84.34/33.74
and(True, False) → False 84.34/33.74
and(False, True) → False 84.34/33.74
and(True, True) → True 84.34/33.74
via[Ite][False][Ite](True, z0, z1, Cons(E(z2, z3), z4), z5) → via[Ite][False][Ite][True][Let](z0, z1, Cons(E(z2, z3), z4), z5, reach(z3, z1, z5)) 84.34/33.79
via[Ite][False][Ite](False, z0, z1, Cons(z2, z3), z4) → via(z0, z1, z3, z4) 84.34/33.79
member[Ite][False][Ite](False, z0, Cons(z1, z2)) → member(z0, z2) 84.34/33.79
member[Ite][False][Ite](True, z0, z1) → True 84.34/33.79
reach[Ite](False, z0, z1, z2) → via(z0, z1, z2, z2) 84.34/33.79
reach[Ite](True, z0, z1, z2) → Cons(E(z0, z1), Nil) 84.34/33.79
getNodeFromEdge(S(S(z0)), E(z1, z2)) → z2 84.34/33.79
getNodeFromEdge(S(0), E(z0, z1)) → z0 84.34/33.79
getNodeFromEdge(0, E(z0, z1)) → z0 84.34/33.79
via(z0, z1, Cons(E(z2, z3), z4), z5) → via[Ite][False][Ite](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5) 84.34/33.79
via(z0, z1, Nil, z2) → Nil 84.34/33.79
member(z0, Cons(z1, z2)) → member[Ite][False][Ite](eqEdge(z0, z1), z0, Cons(z1, z2)) 84.34/33.79
member(z0, Nil) → False 84.34/33.79
eqEdge(E(z0, z1), E(z2, z3)) → eqEdge[Match][E][Match][E][Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1) 84.34/33.79
notEmpty(Cons(z0, z1)) → True 84.34/33.79
notEmpty(Nil) → False 84.34/33.79
reach(z0, z1, z2) → reach[Ite](member(E(z0, z1), z2), z0, z1, z2) 84.34/33.79
goal(z0, z1, z2) → reach(z0, z1, z2)
S tuples:
!EQ'(S(z0), S(z1)) → c(!EQ'(z0, z1)) 84.34/33.79
VIA[ITE][FALSE][ITE](True, z0, z1, Cons(E(z2, z3), z4), z5) → c8(REACH(z3, z1, z5)) 84.34/33.79
VIA[ITE][FALSE][ITE](False, z0, z1, Cons(z2, z3), z4) → c9(VIA(z0, z1, z3, z4)) 84.34/33.79
MEMBER[ITE][FALSE][ITE](False, z0, Cons(z1, z2)) → c10(MEMBER(z0, z2)) 84.34/33.79
REACH[ITE](False, z0, z1, z2) → c12(VIA(z0, z1, z2, z2)) 84.34/33.79
VIA(z0, z1, Cons(E(z2, z3), z4), z5) → c17(VIA[ITE][FALSE][ITE](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5), !EQ'(z0, z2)) 84.34/33.79
MEMBER(z0, Cons(z1, z2)) → c19(MEMBER[ITE][FALSE][ITE](eqEdge(z0, z1), z0, Cons(z1, z2)), EQEDGE(z0, z1)) 84.34/33.79
EQEDGE(E(z0, z1), E(z2, z3)) → c21(AND(!EQ(z0, z2), !EQ(z1, z3)), !EQ'(z0, z2), !EQ'(z1, z3)) 84.34/33.79
REACH(z0, z1, z2) → c24(REACH[ITE](member(E(z0, z1), z2), z0, z1, z2), MEMBER(E(z0, z1), z2)) 84.34/33.79
GOAL(z0, z1, z2) → c25(REACH(z0, z1, z2))
K tuples:none
VIA(z0, z1, Cons(E(z2, z3), z4), z5) → c17(VIA[ITE][FALSE][ITE](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5), !EQ'(z0, z2)) 84.34/33.79
MEMBER(z0, Cons(z1, z2)) → c19(MEMBER[ITE][FALSE][ITE](eqEdge(z0, z1), z0, Cons(z1, z2)), EQEDGE(z0, z1)) 84.34/33.79
EQEDGE(E(z0, z1), E(z2, z3)) → c21(AND(!EQ(z0, z2), !EQ(z1, z3)), !EQ'(z0, z2), !EQ'(z1, z3)) 84.34/33.79
REACH(z0, z1, z2) → c24(REACH[ITE](member(E(z0, z1), z2), z0, z1, z2), MEMBER(E(z0, z1), z2)) 84.34/33.79
GOAL(z0, z1, z2) → c25(REACH(z0, z1, z2))
getNodeFromEdge, via, member, eqEdge, notEmpty, reach, goal, !EQ, and, via[Ite][False][Ite], member[Ite][False][Ite], reach[Ite]
!EQ', VIA[ITE][FALSE][ITE], MEMBER[ITE][FALSE][ITE], REACH[ITE], VIA, MEMBER, EQEDGE, REACH, GOAL
c, c8, c9, c10, c12, c17, c19, c21, c24, c25
Tuples:
!EQ(S(z0), S(z1)) → !EQ(z0, z1) 84.34/33.79
!EQ(0, S(z0)) → False 84.34/33.79
!EQ(S(z0), 0) → False 84.34/33.79
!EQ(0, 0) → True 84.34/33.79
and(False, False) → False 84.34/33.79
and(True, False) → False 84.34/33.79
and(False, True) → False 84.34/33.79
and(True, True) → True 84.34/33.79
via[Ite][False][Ite](True, z0, z1, Cons(E(z2, z3), z4), z5) → via[Ite][False][Ite][True][Let](z0, z1, Cons(E(z2, z3), z4), z5, reach(z3, z1, z5)) 84.34/33.79
via[Ite][False][Ite](False, z0, z1, Cons(z2, z3), z4) → via(z0, z1, z3, z4) 84.34/33.79
member[Ite][False][Ite](False, z0, Cons(z1, z2)) → member(z0, z2) 84.34/33.79
member[Ite][False][Ite](True, z0, z1) → True 84.34/33.79
reach[Ite](False, z0, z1, z2) → via(z0, z1, z2, z2) 84.34/33.79
reach[Ite](True, z0, z1, z2) → Cons(E(z0, z1), Nil) 84.34/33.79
getNodeFromEdge(S(S(z0)), E(z1, z2)) → z2 84.34/33.79
getNodeFromEdge(S(0), E(z0, z1)) → z0 84.34/33.79
getNodeFromEdge(0, E(z0, z1)) → z0 84.34/33.79
via(z0, z1, Cons(E(z2, z3), z4), z5) → via[Ite][False][Ite](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5) 84.34/33.79
via(z0, z1, Nil, z2) → Nil 84.34/33.79
member(z0, Cons(z1, z2)) → member[Ite][False][Ite](eqEdge(z0, z1), z0, Cons(z1, z2)) 84.34/33.79
member(z0, Nil) → False 84.34/33.79
eqEdge(E(z0, z1), E(z2, z3)) → eqEdge[Match][E][Match][E][Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1) 84.34/33.79
notEmpty(Cons(z0, z1)) → True 84.34/33.79
notEmpty(Nil) → False 84.34/33.79
reach(z0, z1, z2) → reach[Ite](member(E(z0, z1), z2), z0, z1, z2) 84.34/33.79
goal(z0, z1, z2) → reach(z0, z1, z2)
S tuples:
!EQ'(S(z0), S(z1)) → c(!EQ'(z0, z1)) 84.34/33.79
VIA[ITE][FALSE][ITE](True, z0, z1, Cons(E(z2, z3), z4), z5) → c8(REACH(z3, z1, z5)) 85.12/33.91
VIA[ITE][FALSE][ITE](False, z0, z1, Cons(z2, z3), z4) → c9(VIA(z0, z1, z3, z4)) 85.12/33.91
MEMBER[ITE][FALSE][ITE](False, z0, Cons(z1, z2)) → c10(MEMBER(z0, z2)) 85.12/33.91
REACH[ITE](False, z0, z1, z2) → c12(VIA(z0, z1, z2, z2)) 85.12/33.91
VIA(z0, z1, Cons(E(z2, z3), z4), z5) → c17(VIA[ITE][FALSE][ITE](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5), !EQ'(z0, z2)) 85.12/33.91
MEMBER(z0, Cons(z1, z2)) → c19(MEMBER[ITE][FALSE][ITE](eqEdge(z0, z1), z0, Cons(z1, z2)), EQEDGE(z0, z1)) 85.12/33.91
REACH(z0, z1, z2) → c24(REACH[ITE](member(E(z0, z1), z2), z0, z1, z2), MEMBER(E(z0, z1), z2)) 85.12/33.91
GOAL(z0, z1, z2) → c25(REACH(z0, z1, z2)) 85.12/33.91
EQEDGE(E(z0, z1), E(z2, z3)) → c21(!EQ'(z0, z2), !EQ'(z1, z3))
K tuples:none
VIA(z0, z1, Cons(E(z2, z3), z4), z5) → c17(VIA[ITE][FALSE][ITE](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5), !EQ'(z0, z2)) 85.12/33.91
MEMBER(z0, Cons(z1, z2)) → c19(MEMBER[ITE][FALSE][ITE](eqEdge(z0, z1), z0, Cons(z1, z2)), EQEDGE(z0, z1)) 85.12/33.91
REACH(z0, z1, z2) → c24(REACH[ITE](member(E(z0, z1), z2), z0, z1, z2), MEMBER(E(z0, z1), z2)) 85.12/33.91
GOAL(z0, z1, z2) → c25(REACH(z0, z1, z2)) 85.12/33.91
EQEDGE(E(z0, z1), E(z2, z3)) → c21(!EQ'(z0, z2), !EQ'(z1, z3))
getNodeFromEdge, via, member, eqEdge, notEmpty, reach, goal, !EQ, and, via[Ite][False][Ite], member[Ite][False][Ite], reach[Ite]
!EQ', VIA[ITE][FALSE][ITE], MEMBER[ITE][FALSE][ITE], REACH[ITE], VIA, MEMBER, REACH, GOAL, EQEDGE
c, c8, c9, c10, c12, c17, c19, c24, c25, c21
Tuples:
!EQ(S(z0), S(z1)) → !EQ(z0, z1) 85.12/33.91
!EQ(0, S(z0)) → False 85.12/33.91
!EQ(S(z0), 0) → False 85.12/33.91
!EQ(0, 0) → True 85.12/33.91
and(False, False) → False 85.12/33.91
and(True, False) → False 85.12/33.91
and(False, True) → False 85.12/33.91
and(True, True) → True 85.12/33.91
via[Ite][False][Ite](True, z0, z1, Cons(E(z2, z3), z4), z5) → via[Ite][False][Ite][True][Let](z0, z1, Cons(E(z2, z3), z4), z5, reach(z3, z1, z5)) 85.12/33.91
via[Ite][False][Ite](False, z0, z1, Cons(z2, z3), z4) → via(z0, z1, z3, z4) 85.12/33.91
member[Ite][False][Ite](False, z0, Cons(z1, z2)) → member(z0, z2) 85.12/33.91
member[Ite][False][Ite](True, z0, z1) → True 85.12/33.91
reach[Ite](False, z0, z1, z2) → via(z0, z1, z2, z2) 85.12/33.91
reach[Ite](True, z0, z1, z2) → Cons(E(z0, z1), Nil) 85.12/33.91
getNodeFromEdge(S(S(z0)), E(z1, z2)) → z2 85.12/33.91
getNodeFromEdge(S(0), E(z0, z1)) → z0 85.12/33.91
getNodeFromEdge(0, E(z0, z1)) → z0 85.12/33.91
via(z0, z1, Cons(E(z2, z3), z4), z5) → via[Ite][False][Ite](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5) 85.12/33.91
via(z0, z1, Nil, z2) → Nil 85.12/33.91
member(z0, Cons(z1, z2)) → member[Ite][False][Ite](eqEdge(z0, z1), z0, Cons(z1, z2)) 85.12/33.91
member(z0, Nil) → False 85.12/33.91
eqEdge(E(z0, z1), E(z2, z3)) → eqEdge[Match][E][Match][E][Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1) 85.12/33.91
notEmpty(Cons(z0, z1)) → True 85.12/33.91
notEmpty(Nil) → False 85.12/33.91
reach(z0, z1, z2) → reach[Ite](member(E(z0, z1), z2), z0, z1, z2) 85.12/33.91
goal(z0, z1, z2) → reach(z0, z1, z2)
S tuples:
!EQ'(S(z0), S(z1)) → c(!EQ'(z0, z1)) 85.12/33.91
VIA[ITE][FALSE][ITE](True, z0, z1, Cons(E(z2, z3), z4), z5) → c8(REACH(z3, z1, z5)) 85.12/33.91
VIA[ITE][FALSE][ITE](False, z0, z1, Cons(z2, z3), z4) → c9(VIA(z0, z1, z3, z4)) 85.12/33.91
MEMBER[ITE][FALSE][ITE](False, z0, Cons(z1, z2)) → c10(MEMBER(z0, z2)) 85.12/33.91
REACH[ITE](False, z0, z1, z2) → c12(VIA(z0, z1, z2, z2)) 85.12/33.91
VIA(z0, z1, Cons(E(z2, z3), z4), z5) → c17(VIA[ITE][FALSE][ITE](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5), !EQ'(z0, z2)) 85.12/33.91
MEMBER(z0, Cons(z1, z2)) → c19(MEMBER[ITE][FALSE][ITE](eqEdge(z0, z1), z0, Cons(z1, z2)), EQEDGE(z0, z1)) 85.12/33.91
REACH(z0, z1, z2) → c24(REACH[ITE](member(E(z0, z1), z2), z0, z1, z2), MEMBER(E(z0, z1), z2)) 85.12/33.91
GOAL(z0, z1, z2) → c25(REACH(z0, z1, z2)) 85.12/33.91
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z0, z2)) 85.12/33.91
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z1, z3))
K tuples:none
VIA(z0, z1, Cons(E(z2, z3), z4), z5) → c17(VIA[ITE][FALSE][ITE](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5), !EQ'(z0, z2)) 85.12/33.91
MEMBER(z0, Cons(z1, z2)) → c19(MEMBER[ITE][FALSE][ITE](eqEdge(z0, z1), z0, Cons(z1, z2)), EQEDGE(z0, z1)) 85.12/33.91
REACH(z0, z1, z2) → c24(REACH[ITE](member(E(z0, z1), z2), z0, z1, z2), MEMBER(E(z0, z1), z2)) 85.12/33.91
GOAL(z0, z1, z2) → c25(REACH(z0, z1, z2)) 85.12/33.91
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z0, z2)) 85.12/33.91
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z1, z3))
getNodeFromEdge, via, member, eqEdge, notEmpty, reach, goal, !EQ, and, via[Ite][False][Ite], member[Ite][False][Ite], reach[Ite]
!EQ', VIA[ITE][FALSE][ITE], MEMBER[ITE][FALSE][ITE], REACH[ITE], VIA, MEMBER, REACH, GOAL, EQEDGE
c, c8, c9, c10, c12, c17, c19, c24, c25, c1
GOAL(z0, z1, z2) → c25(REACH(z0, z1, z2))
Tuples:
!EQ(S(z0), S(z1)) → !EQ(z0, z1) 85.12/33.91
!EQ(0, S(z0)) → False 85.12/33.91
!EQ(S(z0), 0) → False 85.12/33.91
!EQ(0, 0) → True 85.12/33.91
and(False, False) → False 85.12/33.91
and(True, False) → False 85.12/33.91
and(False, True) → False 85.12/33.91
and(True, True) → True 85.12/33.91
via[Ite][False][Ite](True, z0, z1, Cons(E(z2, z3), z4), z5) → via[Ite][False][Ite][True][Let](z0, z1, Cons(E(z2, z3), z4), z5, reach(z3, z1, z5)) 85.12/33.91
via[Ite][False][Ite](False, z0, z1, Cons(z2, z3), z4) → via(z0, z1, z3, z4) 85.12/33.91
member[Ite][False][Ite](False, z0, Cons(z1, z2)) → member(z0, z2) 85.12/33.91
member[Ite][False][Ite](True, z0, z1) → True 85.12/33.91
reach[Ite](False, z0, z1, z2) → via(z0, z1, z2, z2) 85.12/33.91
reach[Ite](True, z0, z1, z2) → Cons(E(z0, z1), Nil) 85.12/33.91
getNodeFromEdge(S(S(z0)), E(z1, z2)) → z2 85.12/33.91
getNodeFromEdge(S(0), E(z0, z1)) → z0 85.12/33.91
getNodeFromEdge(0, E(z0, z1)) → z0 85.12/33.91
via(z0, z1, Cons(E(z2, z3), z4), z5) → via[Ite][False][Ite](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5) 85.12/33.91
via(z0, z1, Nil, z2) → Nil 85.12/33.91
member(z0, Cons(z1, z2)) → member[Ite][False][Ite](eqEdge(z0, z1), z0, Cons(z1, z2)) 85.12/33.91
member(z0, Nil) → False 85.12/33.91
eqEdge(E(z0, z1), E(z2, z3)) → eqEdge[Match][E][Match][E][Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1) 85.12/33.91
notEmpty(Cons(z0, z1)) → True 85.12/33.91
notEmpty(Nil) → False 85.12/33.91
reach(z0, z1, z2) → reach[Ite](member(E(z0, z1), z2), z0, z1, z2) 85.12/33.91
goal(z0, z1, z2) → reach(z0, z1, z2)
S tuples:
!EQ'(S(z0), S(z1)) → c(!EQ'(z0, z1)) 85.12/33.91
VIA[ITE][FALSE][ITE](True, z0, z1, Cons(E(z2, z3), z4), z5) → c8(REACH(z3, z1, z5)) 85.12/33.91
VIA[ITE][FALSE][ITE](False, z0, z1, Cons(z2, z3), z4) → c9(VIA(z0, z1, z3, z4)) 85.12/33.91
MEMBER[ITE][FALSE][ITE](False, z0, Cons(z1, z2)) → c10(MEMBER(z0, z2)) 85.12/33.91
REACH[ITE](False, z0, z1, z2) → c12(VIA(z0, z1, z2, z2)) 85.12/33.91
VIA(z0, z1, Cons(E(z2, z3), z4), z5) → c17(VIA[ITE][FALSE][ITE](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5), !EQ'(z0, z2)) 85.12/33.91
MEMBER(z0, Cons(z1, z2)) → c19(MEMBER[ITE][FALSE][ITE](eqEdge(z0, z1), z0, Cons(z1, z2)), EQEDGE(z0, z1)) 85.12/33.91
REACH(z0, z1, z2) → c24(REACH[ITE](member(E(z0, z1), z2), z0, z1, z2), MEMBER(E(z0, z1), z2)) 85.12/33.91
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z0, z2)) 85.12/33.91
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z1, z3))
K tuples:none
VIA(z0, z1, Cons(E(z2, z3), z4), z5) → c17(VIA[ITE][FALSE][ITE](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5), !EQ'(z0, z2)) 85.12/33.91
MEMBER(z0, Cons(z1, z2)) → c19(MEMBER[ITE][FALSE][ITE](eqEdge(z0, z1), z0, Cons(z1, z2)), EQEDGE(z0, z1)) 85.12/33.91
REACH(z0, z1, z2) → c24(REACH[ITE](member(E(z0, z1), z2), z0, z1, z2), MEMBER(E(z0, z1), z2)) 85.12/33.91
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z0, z2)) 85.12/33.91
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z1, z3))
getNodeFromEdge, via, member, eqEdge, notEmpty, reach, goal, !EQ, and, via[Ite][False][Ite], member[Ite][False][Ite], reach[Ite]
!EQ', VIA[ITE][FALSE][ITE], MEMBER[ITE][FALSE][ITE], REACH[ITE], VIA, MEMBER, REACH, EQEDGE
c, c8, c9, c10, c12, c17, c19, c24, c1
VIA(S(z0), x1, Cons(E(S(z1), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](!EQ(z0, z1), S(z0), x1, Cons(E(S(z1), x3), x4), x5), !EQ'(S(z0), S(z1))) 85.12/33.91
VIA(0, x1, Cons(E(S(z0), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5), !EQ'(0, S(z0))) 85.12/33.91
VIA(S(z0), x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5), !EQ'(S(z0), 0)) 85.12/33.91
VIA(0, x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](True, 0, x1, Cons(E(0, x3), x4), x5), !EQ'(0, 0))
Tuples:
!EQ(S(z0), S(z1)) → !EQ(z0, z1) 85.12/33.91
!EQ(0, S(z0)) → False 85.12/33.91
!EQ(S(z0), 0) → False 85.12/33.91
!EQ(0, 0) → True 85.12/33.91
and(False, False) → False 85.12/33.91
and(True, False) → False 85.12/33.91
and(False, True) → False 85.12/33.91
and(True, True) → True 85.12/33.91
via[Ite][False][Ite](True, z0, z1, Cons(E(z2, z3), z4), z5) → via[Ite][False][Ite][True][Let](z0, z1, Cons(E(z2, z3), z4), z5, reach(z3, z1, z5)) 85.12/33.91
via[Ite][False][Ite](False, z0, z1, Cons(z2, z3), z4) → via(z0, z1, z3, z4) 85.12/33.91
member[Ite][False][Ite](False, z0, Cons(z1, z2)) → member(z0, z2) 85.12/33.91
member[Ite][False][Ite](True, z0, z1) → True 85.12/33.91
reach[Ite](False, z0, z1, z2) → via(z0, z1, z2, z2) 85.12/33.91
reach[Ite](True, z0, z1, z2) → Cons(E(z0, z1), Nil) 85.12/33.91
getNodeFromEdge(S(S(z0)), E(z1, z2)) → z2 85.12/33.91
getNodeFromEdge(S(0), E(z0, z1)) → z0 85.12/33.91
getNodeFromEdge(0, E(z0, z1)) → z0 85.12/33.91
via(z0, z1, Cons(E(z2, z3), z4), z5) → via[Ite][False][Ite](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5) 85.12/33.91
via(z0, z1, Nil, z2) → Nil 85.12/33.91
member(z0, Cons(z1, z2)) → member[Ite][False][Ite](eqEdge(z0, z1), z0, Cons(z1, z2)) 85.12/33.91
member(z0, Nil) → False 85.12/33.91
eqEdge(E(z0, z1), E(z2, z3)) → eqEdge[Match][E][Match][E][Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1) 85.12/33.91
notEmpty(Cons(z0, z1)) → True 85.12/33.91
notEmpty(Nil) → False 85.12/33.91
reach(z0, z1, z2) → reach[Ite](member(E(z0, z1), z2), z0, z1, z2) 85.12/33.91
goal(z0, z1, z2) → reach(z0, z1, z2)
S tuples:
!EQ'(S(z0), S(z1)) → c(!EQ'(z0, z1)) 85.12/33.91
VIA[ITE][FALSE][ITE](True, z0, z1, Cons(E(z2, z3), z4), z5) → c8(REACH(z3, z1, z5)) 85.12/33.91
VIA[ITE][FALSE][ITE](False, z0, z1, Cons(z2, z3), z4) → c9(VIA(z0, z1, z3, z4)) 85.12/33.91
MEMBER[ITE][FALSE][ITE](False, z0, Cons(z1, z2)) → c10(MEMBER(z0, z2)) 85.12/33.91
REACH[ITE](False, z0, z1, z2) → c12(VIA(z0, z1, z2, z2)) 85.12/33.91
MEMBER(z0, Cons(z1, z2)) → c19(MEMBER[ITE][FALSE][ITE](eqEdge(z0, z1), z0, Cons(z1, z2)), EQEDGE(z0, z1)) 85.12/33.91
REACH(z0, z1, z2) → c24(REACH[ITE](member(E(z0, z1), z2), z0, z1, z2), MEMBER(E(z0, z1), z2)) 85.12/33.91
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z0, z2)) 85.12/33.91
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z1, z3)) 85.12/33.91
VIA(S(z0), x1, Cons(E(S(z1), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](!EQ(z0, z1), S(z0), x1, Cons(E(S(z1), x3), x4), x5), !EQ'(S(z0), S(z1))) 85.12/33.91
VIA(0, x1, Cons(E(S(z0), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5), !EQ'(0, S(z0))) 85.12/33.91
VIA(S(z0), x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5), !EQ'(S(z0), 0)) 85.12/33.91
VIA(0, x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](True, 0, x1, Cons(E(0, x3), x4), x5), !EQ'(0, 0))
K tuples:none
MEMBER(z0, Cons(z1, z2)) → c19(MEMBER[ITE][FALSE][ITE](eqEdge(z0, z1), z0, Cons(z1, z2)), EQEDGE(z0, z1)) 85.12/33.91
REACH(z0, z1, z2) → c24(REACH[ITE](member(E(z0, z1), z2), z0, z1, z2), MEMBER(E(z0, z1), z2)) 85.12/33.91
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z0, z2)) 85.12/33.91
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z1, z3)) 85.12/33.91
VIA(S(z0), x1, Cons(E(S(z1), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](!EQ(z0, z1), S(z0), x1, Cons(E(S(z1), x3), x4), x5), !EQ'(S(z0), S(z1))) 85.12/33.91
VIA(0, x1, Cons(E(S(z0), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5), !EQ'(0, S(z0))) 85.12/33.91
VIA(S(z0), x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5), !EQ'(S(z0), 0)) 85.12/33.91
VIA(0, x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](True, 0, x1, Cons(E(0, x3), x4), x5), !EQ'(0, 0))
getNodeFromEdge, via, member, eqEdge, notEmpty, reach, goal, !EQ, and, via[Ite][False][Ite], member[Ite][False][Ite], reach[Ite]
!EQ', VIA[ITE][FALSE][ITE], MEMBER[ITE][FALSE][ITE], REACH[ITE], MEMBER, REACH, EQEDGE, VIA
c, c8, c9, c10, c12, c19, c24, c1, c17
Tuples:
!EQ(S(z0), S(z1)) → !EQ(z0, z1) 85.12/33.91
!EQ(0, S(z0)) → False 85.12/33.91
!EQ(S(z0), 0) → False 85.12/33.91
!EQ(0, 0) → True 85.12/33.91
and(False, False) → False 85.12/33.91
and(True, False) → False 85.12/33.91
and(False, True) → False 85.12/33.91
and(True, True) → True 85.12/33.91
via[Ite][False][Ite](True, z0, z1, Cons(E(z2, z3), z4), z5) → via[Ite][False][Ite][True][Let](z0, z1, Cons(E(z2, z3), z4), z5, reach(z3, z1, z5)) 85.12/33.91
via[Ite][False][Ite](False, z0, z1, Cons(z2, z3), z4) → via(z0, z1, z3, z4) 85.12/33.91
member[Ite][False][Ite](False, z0, Cons(z1, z2)) → member(z0, z2) 85.12/33.91
member[Ite][False][Ite](True, z0, z1) → True 85.12/33.91
reach[Ite](False, z0, z1, z2) → via(z0, z1, z2, z2) 85.12/33.91
reach[Ite](True, z0, z1, z2) → Cons(E(z0, z1), Nil) 85.12/33.91
getNodeFromEdge(S(S(z0)), E(z1, z2)) → z2 85.12/33.91
getNodeFromEdge(S(0), E(z0, z1)) → z0 85.12/33.91
getNodeFromEdge(0, E(z0, z1)) → z0 85.12/33.91
via(z0, z1, Cons(E(z2, z3), z4), z5) → via[Ite][False][Ite](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5) 85.12/33.91
via(z0, z1, Nil, z2) → Nil 85.12/33.91
member(z0, Cons(z1, z2)) → member[Ite][False][Ite](eqEdge(z0, z1), z0, Cons(z1, z2)) 85.12/33.91
member(z0, Nil) → False 85.12/33.91
eqEdge(E(z0, z1), E(z2, z3)) → eqEdge[Match][E][Match][E][Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1) 85.12/33.91
notEmpty(Cons(z0, z1)) → True 85.12/33.91
notEmpty(Nil) → False 85.12/33.91
reach(z0, z1, z2) → reach[Ite](member(E(z0, z1), z2), z0, z1, z2) 85.12/33.91
goal(z0, z1, z2) → reach(z0, z1, z2)
S tuples:
!EQ'(S(z0), S(z1)) → c(!EQ'(z0, z1)) 85.12/33.91
VIA[ITE][FALSE][ITE](True, z0, z1, Cons(E(z2, z3), z4), z5) → c8(REACH(z3, z1, z5)) 85.12/33.91
VIA[ITE][FALSE][ITE](False, z0, z1, Cons(z2, z3), z4) → c9(VIA(z0, z1, z3, z4)) 85.12/33.91
MEMBER[ITE][FALSE][ITE](False, z0, Cons(z1, z2)) → c10(MEMBER(z0, z2)) 85.12/33.91
REACH[ITE](False, z0, z1, z2) → c12(VIA(z0, z1, z2, z2)) 85.12/33.91
MEMBER(z0, Cons(z1, z2)) → c19(MEMBER[ITE][FALSE][ITE](eqEdge(z0, z1), z0, Cons(z1, z2)), EQEDGE(z0, z1)) 85.12/33.91
REACH(z0, z1, z2) → c24(REACH[ITE](member(E(z0, z1), z2), z0, z1, z2), MEMBER(E(z0, z1), z2)) 85.12/33.91
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z0, z2)) 85.12/33.91
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z1, z3)) 85.12/33.91
VIA(S(z0), x1, Cons(E(S(z1), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](!EQ(z0, z1), S(z0), x1, Cons(E(S(z1), x3), x4), x5), !EQ'(S(z0), S(z1))) 85.12/33.91
VIA(0, x1, Cons(E(S(z0), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) 85.12/33.91
VIA(S(z0), x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) 85.12/33.91
VIA(0, x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](True, 0, x1, Cons(E(0, x3), x4), x5))
K tuples:none
MEMBER(z0, Cons(z1, z2)) → c19(MEMBER[ITE][FALSE][ITE](eqEdge(z0, z1), z0, Cons(z1, z2)), EQEDGE(z0, z1)) 85.12/33.91
REACH(z0, z1, z2) → c24(REACH[ITE](member(E(z0, z1), z2), z0, z1, z2), MEMBER(E(z0, z1), z2)) 85.12/33.91
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z0, z2)) 85.12/33.91
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z1, z3)) 85.12/33.91
VIA(S(z0), x1, Cons(E(S(z1), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](!EQ(z0, z1), S(z0), x1, Cons(E(S(z1), x3), x4), x5), !EQ'(S(z0), S(z1))) 85.12/33.91
VIA(0, x1, Cons(E(S(z0), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) 85.12/33.91
VIA(S(z0), x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) 85.12/33.91
VIA(0, x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](True, 0, x1, Cons(E(0, x3), x4), x5))
getNodeFromEdge, via, member, eqEdge, notEmpty, reach, goal, !EQ, and, via[Ite][False][Ite], member[Ite][False][Ite], reach[Ite]
!EQ', VIA[ITE][FALSE][ITE], MEMBER[ITE][FALSE][ITE], REACH[ITE], MEMBER, REACH, EQEDGE, VIA
c, c8, c9, c10, c12, c19, c24, c1, c17, c17
MEMBER(E(z0, z1), Cons(E(z2, z3), x2)) → c19(MEMBER[ITE][FALSE][ITE](eqEdge[Match][E][Match][E][Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1), E(z0, z1), Cons(E(z2, z3), x2)), EQEDGE(E(z0, z1), E(z2, z3)))
Tuples:
!EQ(S(z0), S(z1)) → !EQ(z0, z1) 85.12/33.91
!EQ(0, S(z0)) → False 85.12/33.91
!EQ(S(z0), 0) → False 85.12/33.91
!EQ(0, 0) → True 85.12/33.91
and(False, False) → False 85.12/33.91
and(True, False) → False 85.12/33.91
and(False, True) → False 85.12/33.91
and(True, True) → True 85.12/33.91
via[Ite][False][Ite](True, z0, z1, Cons(E(z2, z3), z4), z5) → via[Ite][False][Ite][True][Let](z0, z1, Cons(E(z2, z3), z4), z5, reach(z3, z1, z5)) 85.12/33.91
via[Ite][False][Ite](False, z0, z1, Cons(z2, z3), z4) → via(z0, z1, z3, z4) 85.12/33.91
member[Ite][False][Ite](False, z0, Cons(z1, z2)) → member(z0, z2) 85.12/33.91
member[Ite][False][Ite](True, z0, z1) → True 85.12/33.91
reach[Ite](False, z0, z1, z2) → via(z0, z1, z2, z2) 85.12/33.91
reach[Ite](True, z0, z1, z2) → Cons(E(z0, z1), Nil) 85.12/33.91
getNodeFromEdge(S(S(z0)), E(z1, z2)) → z2 85.12/33.91
getNodeFromEdge(S(0), E(z0, z1)) → z0 85.12/33.91
getNodeFromEdge(0, E(z0, z1)) → z0 85.12/33.91
via(z0, z1, Cons(E(z2, z3), z4), z5) → via[Ite][False][Ite](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5) 85.12/33.91
via(z0, z1, Nil, z2) → Nil 85.12/33.91
member(z0, Cons(z1, z2)) → member[Ite][False][Ite](eqEdge(z0, z1), z0, Cons(z1, z2)) 85.12/33.91
member(z0, Nil) → False 85.12/33.91
eqEdge(E(z0, z1), E(z2, z3)) → eqEdge[Match][E][Match][E][Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1) 85.12/33.91
notEmpty(Cons(z0, z1)) → True 85.12/33.91
notEmpty(Nil) → False 85.12/33.91
reach(z0, z1, z2) → reach[Ite](member(E(z0, z1), z2), z0, z1, z2) 85.12/33.91
goal(z0, z1, z2) → reach(z0, z1, z2)
S tuples:
!EQ'(S(z0), S(z1)) → c(!EQ'(z0, z1)) 85.12/33.91
VIA[ITE][FALSE][ITE](True, z0, z1, Cons(E(z2, z3), z4), z5) → c8(REACH(z3, z1, z5)) 85.12/33.91
VIA[ITE][FALSE][ITE](False, z0, z1, Cons(z2, z3), z4) → c9(VIA(z0, z1, z3, z4)) 85.12/33.91
MEMBER[ITE][FALSE][ITE](False, z0, Cons(z1, z2)) → c10(MEMBER(z0, z2)) 85.12/33.91
REACH[ITE](False, z0, z1, z2) → c12(VIA(z0, z1, z2, z2)) 85.12/33.91
REACH(z0, z1, z2) → c24(REACH[ITE](member(E(z0, z1), z2), z0, z1, z2), MEMBER(E(z0, z1), z2)) 85.12/33.91
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z0, z2)) 85.12/33.91
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z1, z3)) 85.12/33.91
VIA(S(z0), x1, Cons(E(S(z1), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](!EQ(z0, z1), S(z0), x1, Cons(E(S(z1), x3), x4), x5), !EQ'(S(z0), S(z1))) 85.12/33.91
VIA(0, x1, Cons(E(S(z0), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) 85.12/33.91
VIA(S(z0), x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) 85.12/33.91
VIA(0, x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) 85.12/33.91
MEMBER(E(z0, z1), Cons(E(z2, z3), x2)) → c19(MEMBER[ITE][FALSE][ITE](eqEdge[Match][E][Match][E][Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1), E(z0, z1), Cons(E(z2, z3), x2)), EQEDGE(E(z0, z1), E(z2, z3)))
K tuples:none
REACH(z0, z1, z2) → c24(REACH[ITE](member(E(z0, z1), z2), z0, z1, z2), MEMBER(E(z0, z1), z2)) 85.12/33.91
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z0, z2)) 85.12/33.91
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z1, z3)) 85.12/33.91
VIA(S(z0), x1, Cons(E(S(z1), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](!EQ(z0, z1), S(z0), x1, Cons(E(S(z1), x3), x4), x5), !EQ'(S(z0), S(z1))) 85.12/33.91
VIA(0, x1, Cons(E(S(z0), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) 85.12/33.91
VIA(S(z0), x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) 85.12/33.91
VIA(0, x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) 85.12/33.91
MEMBER(E(z0, z1), Cons(E(z2, z3), x2)) → c19(MEMBER[ITE][FALSE][ITE](eqEdge[Match][E][Match][E][Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1), E(z0, z1), Cons(E(z2, z3), x2)), EQEDGE(E(z0, z1), E(z2, z3)))
getNodeFromEdge, via, member, eqEdge, notEmpty, reach, goal, !EQ, and, via[Ite][False][Ite], member[Ite][False][Ite], reach[Ite]
!EQ', VIA[ITE][FALSE][ITE], MEMBER[ITE][FALSE][ITE], REACH[ITE], REACH, EQEDGE, VIA, MEMBER
c, c8, c9, c10, c12, c24, c1, c17, c17, c19
Tuples:
!EQ(S(z0), S(z1)) → !EQ(z0, z1) 85.12/33.91
!EQ(0, S(z0)) → False 85.12/33.91
!EQ(S(z0), 0) → False 85.12/33.91
!EQ(0, 0) → True 85.12/33.91
and(False, False) → False 85.12/33.91
and(True, False) → False 85.12/33.91
and(False, True) → False 85.12/33.91
and(True, True) → True 85.12/33.91
via[Ite][False][Ite](True, z0, z1, Cons(E(z2, z3), z4), z5) → via[Ite][False][Ite][True][Let](z0, z1, Cons(E(z2, z3), z4), z5, reach(z3, z1, z5)) 85.12/33.91
via[Ite][False][Ite](False, z0, z1, Cons(z2, z3), z4) → via(z0, z1, z3, z4) 85.12/33.91
member[Ite][False][Ite](False, z0, Cons(z1, z2)) → member(z0, z2) 85.12/33.91
member[Ite][False][Ite](True, z0, z1) → True 85.12/33.91
reach[Ite](False, z0, z1, z2) → via(z0, z1, z2, z2) 85.12/33.91
reach[Ite](True, z0, z1, z2) → Cons(E(z0, z1), Nil) 85.12/33.91
getNodeFromEdge(S(S(z0)), E(z1, z2)) → z2 85.12/33.91
getNodeFromEdge(S(0), E(z0, z1)) → z0 85.12/33.91
getNodeFromEdge(0, E(z0, z1)) → z0 85.12/33.91
via(z0, z1, Cons(E(z2, z3), z4), z5) → via[Ite][False][Ite](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5) 85.12/33.91
via(z0, z1, Nil, z2) → Nil 85.12/33.91
member(z0, Cons(z1, z2)) → member[Ite][False][Ite](eqEdge(z0, z1), z0, Cons(z1, z2)) 85.12/33.91
member(z0, Nil) → False 85.12/33.91
eqEdge(E(z0, z1), E(z2, z3)) → eqEdge[Match][E][Match][E][Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1) 85.12/33.91
notEmpty(Cons(z0, z1)) → True 85.12/33.91
notEmpty(Nil) → False 85.12/33.91
reach(z0, z1, z2) → reach[Ite](member(E(z0, z1), z2), z0, z1, z2) 85.12/33.91
goal(z0, z1, z2) → reach(z0, z1, z2)
S tuples:
!EQ'(S(z0), S(z1)) → c(!EQ'(z0, z1)) 85.12/33.91
VIA[ITE][FALSE][ITE](True, z0, z1, Cons(E(z2, z3), z4), z5) → c8(REACH(z3, z1, z5)) 85.12/33.91
VIA[ITE][FALSE][ITE](False, z0, z1, Cons(z2, z3), z4) → c9(VIA(z0, z1, z3, z4)) 85.12/33.91
MEMBER[ITE][FALSE][ITE](False, z0, Cons(z1, z2)) → c10(MEMBER(z0, z2)) 85.12/33.91
REACH[ITE](False, z0, z1, z2) → c12(VIA(z0, z1, z2, z2)) 85.12/33.91
REACH(z0, z1, z2) → c24(REACH[ITE](member(E(z0, z1), z2), z0, z1, z2), MEMBER(E(z0, z1), z2)) 85.12/33.91
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z0, z2)) 85.12/33.91
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z1, z3)) 85.12/33.91
VIA(S(z0), x1, Cons(E(S(z1), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](!EQ(z0, z1), S(z0), x1, Cons(E(S(z1), x3), x4), x5), !EQ'(S(z0), S(z1))) 85.12/33.91
VIA(0, x1, Cons(E(S(z0), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) 85.12/33.91
VIA(S(z0), x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) 85.12/33.91
VIA(0, x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) 85.12/33.91
MEMBER(E(z0, z1), Cons(E(z2, z3), x2)) → c19(EQEDGE(E(z0, z1), E(z2, z3)))
K tuples:none
REACH(z0, z1, z2) → c24(REACH[ITE](member(E(z0, z1), z2), z0, z1, z2), MEMBER(E(z0, z1), z2)) 85.12/33.91
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z0, z2)) 85.12/33.91
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z1, z3)) 85.12/33.91
VIA(S(z0), x1, Cons(E(S(z1), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](!EQ(z0, z1), S(z0), x1, Cons(E(S(z1), x3), x4), x5), !EQ'(S(z0), S(z1))) 85.12/33.91
VIA(0, x1, Cons(E(S(z0), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) 85.12/33.91
VIA(S(z0), x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) 85.12/33.91
VIA(0, x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) 85.12/33.91
MEMBER(E(z0, z1), Cons(E(z2, z3), x2)) → c19(EQEDGE(E(z0, z1), E(z2, z3)))
getNodeFromEdge, via, member, eqEdge, notEmpty, reach, goal, !EQ, and, via[Ite][False][Ite], member[Ite][False][Ite], reach[Ite]
!EQ', VIA[ITE][FALSE][ITE], MEMBER[ITE][FALSE][ITE], REACH[ITE], REACH, EQEDGE, VIA, MEMBER
c, c8, c9, c10, c12, c24, c1, c17, c17, c19
MEMBER[ITE][FALSE][ITE](False, z0, Cons(z1, z2)) → c10(MEMBER(z0, z2))
Tuples:
!EQ(S(z0), S(z1)) → !EQ(z0, z1) 85.12/33.91
!EQ(0, S(z0)) → False 85.12/33.91
!EQ(S(z0), 0) → False 85.12/33.91
!EQ(0, 0) → True 85.12/33.91
and(False, False) → False 85.12/33.91
and(True, False) → False 85.12/33.91
and(False, True) → False 85.12/33.91
and(True, True) → True 85.12/33.91
via[Ite][False][Ite](True, z0, z1, Cons(E(z2, z3), z4), z5) → via[Ite][False][Ite][True][Let](z0, z1, Cons(E(z2, z3), z4), z5, reach(z3, z1, z5)) 85.12/33.91
via[Ite][False][Ite](False, z0, z1, Cons(z2, z3), z4) → via(z0, z1, z3, z4) 85.12/33.91
member[Ite][False][Ite](False, z0, Cons(z1, z2)) → member(z0, z2) 85.12/33.91
member[Ite][False][Ite](True, z0, z1) → True 85.12/33.91
reach[Ite](False, z0, z1, z2) → via(z0, z1, z2, z2) 85.12/33.91
reach[Ite](True, z0, z1, z2) → Cons(E(z0, z1), Nil) 85.12/33.91
getNodeFromEdge(S(S(z0)), E(z1, z2)) → z2 85.12/33.91
getNodeFromEdge(S(0), E(z0, z1)) → z0 85.12/33.91
getNodeFromEdge(0, E(z0, z1)) → z0 85.12/33.91
via(z0, z1, Cons(E(z2, z3), z4), z5) → via[Ite][False][Ite](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5) 85.12/33.91
via(z0, z1, Nil, z2) → Nil 85.12/33.91
member(z0, Cons(z1, z2)) → member[Ite][False][Ite](eqEdge(z0, z1), z0, Cons(z1, z2)) 85.12/33.91
member(z0, Nil) → False 85.12/33.91
eqEdge(E(z0, z1), E(z2, z3)) → eqEdge[Match][E][Match][E][Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1) 85.12/33.91
notEmpty(Cons(z0, z1)) → True 85.12/33.91
notEmpty(Nil) → False 85.12/33.91
reach(z0, z1, z2) → reach[Ite](member(E(z0, z1), z2), z0, z1, z2) 85.12/33.91
goal(z0, z1, z2) → reach(z0, z1, z2)
S tuples:
!EQ'(S(z0), S(z1)) → c(!EQ'(z0, z1)) 85.12/33.91
VIA[ITE][FALSE][ITE](True, z0, z1, Cons(E(z2, z3), z4), z5) → c8(REACH(z3, z1, z5)) 85.12/33.91
VIA[ITE][FALSE][ITE](False, z0, z1, Cons(z2, z3), z4) → c9(VIA(z0, z1, z3, z4)) 85.12/33.91
REACH[ITE](False, z0, z1, z2) → c12(VIA(z0, z1, z2, z2)) 85.12/33.91
REACH(z0, z1, z2) → c24(REACH[ITE](member(E(z0, z1), z2), z0, z1, z2), MEMBER(E(z0, z1), z2)) 85.12/33.91
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z0, z2)) 85.12/33.91
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z1, z3)) 85.12/33.91
VIA(S(z0), x1, Cons(E(S(z1), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](!EQ(z0, z1), S(z0), x1, Cons(E(S(z1), x3), x4), x5), !EQ'(S(z0), S(z1))) 85.12/33.91
VIA(0, x1, Cons(E(S(z0), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) 85.12/33.93
VIA(S(z0), x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) 85.12/33.93
VIA(0, x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) 85.12/33.93
MEMBER(E(z0, z1), Cons(E(z2, z3), x2)) → c19(EQEDGE(E(z0, z1), E(z2, z3)))
K tuples:none
REACH(z0, z1, z2) → c24(REACH[ITE](member(E(z0, z1), z2), z0, z1, z2), MEMBER(E(z0, z1), z2)) 85.12/33.93
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z0, z2)) 85.12/33.93
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z1, z3)) 85.12/33.93
VIA(S(z0), x1, Cons(E(S(z1), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](!EQ(z0, z1), S(z0), x1, Cons(E(S(z1), x3), x4), x5), !EQ'(S(z0), S(z1))) 85.12/33.93
VIA(0, x1, Cons(E(S(z0), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) 85.12/33.93
VIA(S(z0), x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) 85.12/33.93
VIA(0, x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) 85.12/33.93
MEMBER(E(z0, z1), Cons(E(z2, z3), x2)) → c19(EQEDGE(E(z0, z1), E(z2, z3)))
getNodeFromEdge, via, member, eqEdge, notEmpty, reach, goal, !EQ, and, via[Ite][False][Ite], member[Ite][False][Ite], reach[Ite]
!EQ', VIA[ITE][FALSE][ITE], REACH[ITE], REACH, EQEDGE, VIA, MEMBER
c, c8, c9, c12, c24, c1, c17, c17, c19
REACH(x0, x1, Cons(z1, z2)) → c24(REACH[ITE](member[Ite][False][Ite](eqEdge(E(x0, x1), z1), E(x0, x1), Cons(z1, z2)), x0, x1, Cons(z1, z2)), MEMBER(E(x0, x1), Cons(z1, z2))) 85.12/33.93
REACH(x0, x1, Nil) → c24(REACH[ITE](False, x0, x1, Nil), MEMBER(E(x0, x1), Nil)) 85.12/33.93
REACH(x0, x1, x2) → c24(MEMBER(E(x0, x1), x2))
Tuples:
!EQ(S(z0), S(z1)) → !EQ(z0, z1) 85.12/33.93
!EQ(0, S(z0)) → False 85.12/33.93
!EQ(S(z0), 0) → False 85.12/33.93
!EQ(0, 0) → True 85.12/33.93
and(False, False) → False 85.12/33.93
and(True, False) → False 85.12/33.93
and(False, True) → False 85.12/33.93
and(True, True) → True 85.12/33.93
via[Ite][False][Ite](True, z0, z1, Cons(E(z2, z3), z4), z5) → via[Ite][False][Ite][True][Let](z0, z1, Cons(E(z2, z3), z4), z5, reach(z3, z1, z5)) 85.12/33.93
via[Ite][False][Ite](False, z0, z1, Cons(z2, z3), z4) → via(z0, z1, z3, z4) 85.12/33.93
member[Ite][False][Ite](False, z0, Cons(z1, z2)) → member(z0, z2) 85.12/33.93
member[Ite][False][Ite](True, z0, z1) → True 85.12/33.93
reach[Ite](False, z0, z1, z2) → via(z0, z1, z2, z2) 85.12/33.93
reach[Ite](True, z0, z1, z2) → Cons(E(z0, z1), Nil) 85.12/33.93
getNodeFromEdge(S(S(z0)), E(z1, z2)) → z2 85.12/33.93
getNodeFromEdge(S(0), E(z0, z1)) → z0 85.12/33.93
getNodeFromEdge(0, E(z0, z1)) → z0 85.12/33.93
via(z0, z1, Cons(E(z2, z3), z4), z5) → via[Ite][False][Ite](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5) 85.12/33.93
via(z0, z1, Nil, z2) → Nil 85.12/33.93
member(z0, Cons(z1, z2)) → member[Ite][False][Ite](eqEdge(z0, z1), z0, Cons(z1, z2)) 85.12/33.93
member(z0, Nil) → False 85.12/33.93
eqEdge(E(z0, z1), E(z2, z3)) → eqEdge[Match][E][Match][E][Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1) 85.12/33.93
notEmpty(Cons(z0, z1)) → True 85.12/33.93
notEmpty(Nil) → False 85.12/33.93
reach(z0, z1, z2) → reach[Ite](member(E(z0, z1), z2), z0, z1, z2) 85.12/33.93
goal(z0, z1, z2) → reach(z0, z1, z2)
S tuples:
!EQ'(S(z0), S(z1)) → c(!EQ'(z0, z1)) 85.12/33.93
VIA[ITE][FALSE][ITE](True, z0, z1, Cons(E(z2, z3), z4), z5) → c8(REACH(z3, z1, z5)) 85.12/33.93
VIA[ITE][FALSE][ITE](False, z0, z1, Cons(z2, z3), z4) → c9(VIA(z0, z1, z3, z4)) 85.12/33.93
REACH[ITE](False, z0, z1, z2) → c12(VIA(z0, z1, z2, z2)) 85.12/33.93
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z0, z2)) 85.12/33.93
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z1, z3)) 85.12/33.93
VIA(S(z0), x1, Cons(E(S(z1), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](!EQ(z0, z1), S(z0), x1, Cons(E(S(z1), x3), x4), x5), !EQ'(S(z0), S(z1))) 85.12/33.93
VIA(0, x1, Cons(E(S(z0), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) 85.12/33.93
VIA(S(z0), x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) 85.12/33.93
VIA(0, x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) 85.12/33.93
MEMBER(E(z0, z1), Cons(E(z2, z3), x2)) → c19(EQEDGE(E(z0, z1), E(z2, z3))) 85.12/33.93
REACH(x0, x1, Cons(z1, z2)) → c24(REACH[ITE](member[Ite][False][Ite](eqEdge(E(x0, x1), z1), E(x0, x1), Cons(z1, z2)), x0, x1, Cons(z1, z2)), MEMBER(E(x0, x1), Cons(z1, z2))) 85.12/33.93
REACH(x0, x1, Nil) → c24(REACH[ITE](False, x0, x1, Nil), MEMBER(E(x0, x1), Nil)) 85.12/33.93
REACH(x0, x1, x2) → c24(MEMBER(E(x0, x1), x2))
K tuples:none
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z0, z2)) 85.12/33.93
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z1, z3)) 85.12/33.93
VIA(S(z0), x1, Cons(E(S(z1), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](!EQ(z0, z1), S(z0), x1, Cons(E(S(z1), x3), x4), x5), !EQ'(S(z0), S(z1))) 85.12/33.93
VIA(0, x1, Cons(E(S(z0), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) 85.12/33.93
VIA(S(z0), x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) 85.12/33.93
VIA(0, x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) 85.12/33.93
MEMBER(E(z0, z1), Cons(E(z2, z3), x2)) → c19(EQEDGE(E(z0, z1), E(z2, z3))) 85.12/33.93
REACH(x0, x1, Cons(z1, z2)) → c24(REACH[ITE](member[Ite][False][Ite](eqEdge(E(x0, x1), z1), E(x0, x1), Cons(z1, z2)), x0, x1, Cons(z1, z2)), MEMBER(E(x0, x1), Cons(z1, z2))) 85.12/33.93
REACH(x0, x1, Nil) → c24(REACH[ITE](False, x0, x1, Nil), MEMBER(E(x0, x1), Nil)) 85.12/33.93
REACH(x0, x1, x2) → c24(MEMBER(E(x0, x1), x2))
getNodeFromEdge, via, member, eqEdge, notEmpty, reach, goal, !EQ, and, via[Ite][False][Ite], member[Ite][False][Ite], reach[Ite]
!EQ', VIA[ITE][FALSE][ITE], REACH[ITE], EQEDGE, VIA, MEMBER, REACH
c, c8, c9, c12, c1, c17, c17, c19, c24, c24
Tuples:
!EQ(S(z0), S(z1)) → !EQ(z0, z1) 85.12/33.93
!EQ(0, S(z0)) → False 85.12/33.93
!EQ(S(z0), 0) → False 85.12/33.93
!EQ(0, 0) → True 85.12/33.93
and(False, False) → False 85.12/33.93
and(True, False) → False 85.12/33.93
and(False, True) → False 85.12/33.93
and(True, True) → True 85.12/33.93
via[Ite][False][Ite](True, z0, z1, Cons(E(z2, z3), z4), z5) → via[Ite][False][Ite][True][Let](z0, z1, Cons(E(z2, z3), z4), z5, reach(z3, z1, z5)) 85.12/33.93
via[Ite][False][Ite](False, z0, z1, Cons(z2, z3), z4) → via(z0, z1, z3, z4) 85.12/33.93
member[Ite][False][Ite](False, z0, Cons(z1, z2)) → member(z0, z2) 85.12/33.93
member[Ite][False][Ite](True, z0, z1) → True 85.12/33.93
reach[Ite](False, z0, z1, z2) → via(z0, z1, z2, z2) 85.12/33.93
reach[Ite](True, z0, z1, z2) → Cons(E(z0, z1), Nil) 85.12/33.93
getNodeFromEdge(S(S(z0)), E(z1, z2)) → z2 85.12/33.93
getNodeFromEdge(S(0), E(z0, z1)) → z0 85.12/33.93
getNodeFromEdge(0, E(z0, z1)) → z0 85.12/33.93
via(z0, z1, Cons(E(z2, z3), z4), z5) → via[Ite][False][Ite](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5) 85.12/33.93
via(z0, z1, Nil, z2) → Nil 85.12/33.93
member(z0, Cons(z1, z2)) → member[Ite][False][Ite](eqEdge(z0, z1), z0, Cons(z1, z2)) 85.12/33.93
member(z0, Nil) → False 85.12/33.93
eqEdge(E(z0, z1), E(z2, z3)) → eqEdge[Match][E][Match][E][Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1) 85.12/33.93
notEmpty(Cons(z0, z1)) → True 85.12/33.93
notEmpty(Nil) → False 85.12/33.93
reach(z0, z1, z2) → reach[Ite](member(E(z0, z1), z2), z0, z1, z2) 85.12/33.93
goal(z0, z1, z2) → reach(z0, z1, z2)
S tuples:
!EQ'(S(z0), S(z1)) → c(!EQ'(z0, z1)) 85.12/33.93
VIA[ITE][FALSE][ITE](True, z0, z1, Cons(E(z2, z3), z4), z5) → c8(REACH(z3, z1, z5)) 85.12/33.93
VIA[ITE][FALSE][ITE](False, z0, z1, Cons(z2, z3), z4) → c9(VIA(z0, z1, z3, z4)) 85.12/33.93
REACH[ITE](False, z0, z1, z2) → c12(VIA(z0, z1, z2, z2)) 85.12/33.93
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z0, z2)) 85.12/33.93
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z1, z3)) 85.12/33.93
VIA(S(z0), x1, Cons(E(S(z1), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](!EQ(z0, z1), S(z0), x1, Cons(E(S(z1), x3), x4), x5), !EQ'(S(z0), S(z1))) 85.12/33.93
VIA(0, x1, Cons(E(S(z0), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) 85.12/33.93
VIA(S(z0), x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) 85.12/33.93
VIA(0, x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) 85.12/33.94
MEMBER(E(z0, z1), Cons(E(z2, z3), x2)) → c19(EQEDGE(E(z0, z1), E(z2, z3))) 85.12/33.94
REACH(x0, x1, Cons(z1, z2)) → c24(REACH[ITE](member[Ite][False][Ite](eqEdge(E(x0, x1), z1), E(x0, x1), Cons(z1, z2)), x0, x1, Cons(z1, z2)), MEMBER(E(x0, x1), Cons(z1, z2))) 85.12/33.94
REACH(x0, x1, x2) → c24(MEMBER(E(x0, x1), x2)) 85.12/33.94
REACH(x0, x1, Nil) → c24(REACH[ITE](False, x0, x1, Nil))
K tuples:none
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z0, z2)) 85.12/33.94
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z1, z3)) 85.12/33.94
VIA(S(z0), x1, Cons(E(S(z1), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](!EQ(z0, z1), S(z0), x1, Cons(E(S(z1), x3), x4), x5), !EQ'(S(z0), S(z1))) 85.12/33.94
VIA(0, x1, Cons(E(S(z0), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) 85.12/33.94
VIA(S(z0), x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) 85.12/33.94
VIA(0, x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) 85.12/33.94
MEMBER(E(z0, z1), Cons(E(z2, z3), x2)) → c19(EQEDGE(E(z0, z1), E(z2, z3))) 85.12/33.94
REACH(x0, x1, Cons(z1, z2)) → c24(REACH[ITE](member[Ite][False][Ite](eqEdge(E(x0, x1), z1), E(x0, x1), Cons(z1, z2)), x0, x1, Cons(z1, z2)), MEMBER(E(x0, x1), Cons(z1, z2))) 85.12/33.94
REACH(x0, x1, x2) → c24(MEMBER(E(x0, x1), x2)) 85.12/33.94
REACH(x0, x1, Nil) → c24(REACH[ITE](False, x0, x1, Nil))
getNodeFromEdge, via, member, eqEdge, notEmpty, reach, goal, !EQ, and, via[Ite][False][Ite], member[Ite][False][Ite], reach[Ite]
!EQ', VIA[ITE][FALSE][ITE], REACH[ITE], EQEDGE, VIA, MEMBER, REACH
c, c8, c9, c12, c1, c17, c17, c19, c24, c24
We considered the (Usable) Rules:
REACH(x0, x1, x2) → c24(MEMBER(E(x0, x1), x2))
And the Tuples:
eqEdge(E(z0, z1), E(z2, z3)) → eqEdge[Match][E][Match][E][Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1) 85.12/33.94
member(z0, Cons(z1, z2)) → member[Ite][False][Ite](eqEdge(z0, z1), z0, Cons(z1, z2)) 85.12/33.94
member(z0, Nil) → False 85.12/33.94
member[Ite][False][Ite](False, z0, Cons(z1, z2)) → member(z0, z2) 85.12/33.94
member[Ite][False][Ite](True, z0, z1) → True 85.12/33.94
!EQ(S(z0), S(z1)) → !EQ(z0, z1) 85.12/33.94
!EQ(0, S(z0)) → False 85.12/33.94
!EQ(S(z0), 0) → False 85.12/33.94
!EQ(0, 0) → True 85.12/33.94
and(False, False) → False 85.12/33.94
and(True, False) → False 85.12/33.94
and(False, True) → False 85.12/33.94
and(True, True) → True
The order we found is given by the following interpretation:
!EQ'(S(z0), S(z1)) → c(!EQ'(z0, z1)) 85.12/33.94
VIA[ITE][FALSE][ITE](True, z0, z1, Cons(E(z2, z3), z4), z5) → c8(REACH(z3, z1, z5)) 85.12/33.94
VIA[ITE][FALSE][ITE](False, z0, z1, Cons(z2, z3), z4) → c9(VIA(z0, z1, z3, z4)) 85.12/33.94
REACH[ITE](False, z0, z1, z2) → c12(VIA(z0, z1, z2, z2)) 85.12/33.94
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z0, z2)) 85.12/33.94
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z1, z3)) 85.12/33.94
VIA(S(z0), x1, Cons(E(S(z1), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](!EQ(z0, z1), S(z0), x1, Cons(E(S(z1), x3), x4), x5), !EQ'(S(z0), S(z1))) 85.12/33.94
VIA(0, x1, Cons(E(S(z0), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) 85.12/33.94
VIA(S(z0), x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) 85.12/33.94
VIA(0, x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) 85.12/33.94
MEMBER(E(z0, z1), Cons(E(z2, z3), x2)) → c19(EQEDGE(E(z0, z1), E(z2, z3))) 85.12/33.94
REACH(x0, x1, Cons(z1, z2)) → c24(REACH[ITE](member[Ite][False][Ite](eqEdge(E(x0, x1), z1), E(x0, x1), Cons(z1, z2)), x0, x1, Cons(z1, z2)), MEMBER(E(x0, x1), Cons(z1, z2))) 85.12/33.94
REACH(x0, x1, x2) → c24(MEMBER(E(x0, x1), x2)) 85.12/33.94
REACH(x0, x1, Nil) → c24(REACH[ITE](False, x0, x1, Nil))
POL(!EQ(x1, x2)) = 0 85.12/33.94
POL(!EQ'(x1, x2)) = 0 85.12/33.94
POL(0) = 0 85.12/33.94
POL(Cons(x1, x2)) = [1] 85.12/33.94
POL(E(x1, x2)) = 0 85.12/33.94
POL(EQEDGE(x1, x2)) = 0 85.12/33.94
POL(False) = 0 85.12/33.94
POL(MEMBER(x1, x2)) = 0 85.12/33.94
POL(Nil) = 0 85.12/33.94
POL(REACH(x1, x2, x3)) = [1] 85.12/33.94
POL(REACH[ITE](x1, x2, x3, x4)) = [1] 85.12/33.94
POL(S(x1)) = 0 85.12/33.94
POL(True) = 0 85.12/33.94
POL(VIA(x1, x2, x3, x4)) = [1] 85.12/33.94
POL(VIA[ITE][FALSE][ITE](x1, x2, x3, x4, x5)) = x4 85.12/33.94
POL(and(x1, x2)) = [3] 85.12/33.94
POL(c(x1)) = x1 85.12/33.94
POL(c1(x1)) = x1 85.12/33.94
POL(c12(x1)) = x1 85.12/33.94
POL(c17(x1)) = x1 85.12/33.94
POL(c17(x1, x2)) = x1 + x2 85.12/33.94
POL(c19(x1)) = x1 85.12/33.94
POL(c24(x1)) = x1 85.12/33.94
POL(c24(x1, x2)) = x1 + x2 85.12/33.94
POL(c8(x1)) = x1 85.12/33.94
POL(c9(x1)) = x1 85.12/33.94
POL(eqEdge(x1, x2)) = 0 85.12/33.94
POL(eqEdge[Match][E][Match][E][Ite](x1, x2, x3, x4, x5)) = [3] + x2 + x3 + x4 + x5 85.12/33.94
POL(member(x1, x2)) = [3] + [3]x1 + [3]x2 85.12/33.94
POL(member[Ite][False][Ite](x1, x2, x3)) = 0
Tuples:
!EQ(S(z0), S(z1)) → !EQ(z0, z1) 85.12/33.94
!EQ(0, S(z0)) → False 85.12/33.94
!EQ(S(z0), 0) → False 85.12/33.94
!EQ(0, 0) → True 85.12/33.94
and(False, False) → False 85.12/33.94
and(True, False) → False 85.12/33.94
and(False, True) → False 85.12/33.94
and(True, True) → True 85.12/33.94
via[Ite][False][Ite](True, z0, z1, Cons(E(z2, z3), z4), z5) → via[Ite][False][Ite][True][Let](z0, z1, Cons(E(z2, z3), z4), z5, reach(z3, z1, z5)) 85.12/33.94
via[Ite][False][Ite](False, z0, z1, Cons(z2, z3), z4) → via(z0, z1, z3, z4) 85.12/33.94
member[Ite][False][Ite](False, z0, Cons(z1, z2)) → member(z0, z2) 85.12/33.94
member[Ite][False][Ite](True, z0, z1) → True 85.12/33.94
reach[Ite](False, z0, z1, z2) → via(z0, z1, z2, z2) 85.12/33.94
reach[Ite](True, z0, z1, z2) → Cons(E(z0, z1), Nil) 85.12/33.94
getNodeFromEdge(S(S(z0)), E(z1, z2)) → z2 85.12/33.94
getNodeFromEdge(S(0), E(z0, z1)) → z0 85.12/33.94
getNodeFromEdge(0, E(z0, z1)) → z0 85.12/33.94
via(z0, z1, Cons(E(z2, z3), z4), z5) → via[Ite][False][Ite](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5) 85.12/33.94
via(z0, z1, Nil, z2) → Nil 85.12/33.94
member(z0, Cons(z1, z2)) → member[Ite][False][Ite](eqEdge(z0, z1), z0, Cons(z1, z2)) 85.12/33.94
member(z0, Nil) → False 85.12/33.94
eqEdge(E(z0, z1), E(z2, z3)) → eqEdge[Match][E][Match][E][Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1) 85.12/33.94
notEmpty(Cons(z0, z1)) → True 85.12/33.94
notEmpty(Nil) → False 85.12/33.94
reach(z0, z1, z2) → reach[Ite](member(E(z0, z1), z2), z0, z1, z2) 85.12/33.94
goal(z0, z1, z2) → reach(z0, z1, z2)
S tuples:
!EQ'(S(z0), S(z1)) → c(!EQ'(z0, z1)) 85.12/33.94
VIA[ITE][FALSE][ITE](True, z0, z1, Cons(E(z2, z3), z4), z5) → c8(REACH(z3, z1, z5)) 85.12/33.94
VIA[ITE][FALSE][ITE](False, z0, z1, Cons(z2, z3), z4) → c9(VIA(z0, z1, z3, z4)) 85.12/33.94
REACH[ITE](False, z0, z1, z2) → c12(VIA(z0, z1, z2, z2)) 85.12/33.94
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z0, z2)) 85.12/33.94
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z1, z3)) 85.12/33.94
VIA(S(z0), x1, Cons(E(S(z1), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](!EQ(z0, z1), S(z0), x1, Cons(E(S(z1), x3), x4), x5), !EQ'(S(z0), S(z1))) 85.12/33.94
VIA(0, x1, Cons(E(S(z0), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) 85.12/33.94
VIA(S(z0), x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) 85.12/33.94
VIA(0, x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) 85.12/33.94
MEMBER(E(z0, z1), Cons(E(z2, z3), x2)) → c19(EQEDGE(E(z0, z1), E(z2, z3))) 85.12/33.94
REACH(x0, x1, Cons(z1, z2)) → c24(REACH[ITE](member[Ite][False][Ite](eqEdge(E(x0, x1), z1), E(x0, x1), Cons(z1, z2)), x0, x1, Cons(z1, z2)), MEMBER(E(x0, x1), Cons(z1, z2))) 85.12/33.94
REACH(x0, x1, x2) → c24(MEMBER(E(x0, x1), x2)) 85.12/33.94
REACH(x0, x1, Nil) → c24(REACH[ITE](False, x0, x1, Nil))
K tuples:
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z0, z2)) 85.12/33.94
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z1, z3)) 85.12/33.94
VIA(S(z0), x1, Cons(E(S(z1), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](!EQ(z0, z1), S(z0), x1, Cons(E(S(z1), x3), x4), x5), !EQ'(S(z0), S(z1))) 85.12/33.94
VIA(0, x1, Cons(E(S(z0), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) 85.12/33.94
VIA(S(z0), x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) 85.12/33.94
VIA(0, x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) 85.12/33.94
MEMBER(E(z0, z1), Cons(E(z2, z3), x2)) → c19(EQEDGE(E(z0, z1), E(z2, z3))) 85.12/33.94
REACH(x0, x1, Cons(z1, z2)) → c24(REACH[ITE](member[Ite][False][Ite](eqEdge(E(x0, x1), z1), E(x0, x1), Cons(z1, z2)), x0, x1, Cons(z1, z2)), MEMBER(E(x0, x1), Cons(z1, z2))) 85.12/33.94
REACH(x0, x1, Nil) → c24(REACH[ITE](False, x0, x1, Nil))
Defined Rule Symbols:
REACH(x0, x1, x2) → c24(MEMBER(E(x0, x1), x2))
getNodeFromEdge, via, member, eqEdge, notEmpty, reach, goal, !EQ, and, via[Ite][False][Ite], member[Ite][False][Ite], reach[Ite]
!EQ', VIA[ITE][FALSE][ITE], REACH[ITE], EQEDGE, VIA, MEMBER, REACH
c, c8, c9, c12, c1, c17, c17, c19, c24, c24
We considered the (Usable) Rules:
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z0, z2)) 85.12/33.94
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z1, z3))
And the Tuples:
eqEdge(E(z0, z1), E(z2, z3)) → eqEdge[Match][E][Match][E][Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1) 85.12/33.94
member(z0, Cons(z1, z2)) → member[Ite][False][Ite](eqEdge(z0, z1), z0, Cons(z1, z2)) 85.12/33.94
member(z0, Nil) → False 85.12/33.94
member[Ite][False][Ite](False, z0, Cons(z1, z2)) → member(z0, z2) 85.12/33.94
member[Ite][False][Ite](True, z0, z1) → True 85.12/33.94
!EQ(S(z0), S(z1)) → !EQ(z0, z1) 85.12/33.94
!EQ(0, S(z0)) → False 85.12/33.94
!EQ(S(z0), 0) → False 85.12/33.94
!EQ(0, 0) → True 85.12/33.94
and(False, False) → False 85.12/33.94
and(True, False) → False 85.12/33.94
and(False, True) → False 85.12/33.94
and(True, True) → True
The order we found is given by the following interpretation:
!EQ'(S(z0), S(z1)) → c(!EQ'(z0, z1)) 85.12/33.94
VIA[ITE][FALSE][ITE](True, z0, z1, Cons(E(z2, z3), z4), z5) → c8(REACH(z3, z1, z5)) 85.12/33.94
VIA[ITE][FALSE][ITE](False, z0, z1, Cons(z2, z3), z4) → c9(VIA(z0, z1, z3, z4)) 85.12/33.94
REACH[ITE](False, z0, z1, z2) → c12(VIA(z0, z1, z2, z2)) 85.12/33.94
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z0, z2)) 85.12/33.94
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z1, z3)) 85.12/33.94
VIA(S(z0), x1, Cons(E(S(z1), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](!EQ(z0, z1), S(z0), x1, Cons(E(S(z1), x3), x4), x5), !EQ'(S(z0), S(z1))) 85.12/33.94
VIA(0, x1, Cons(E(S(z0), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) 85.12/33.94
VIA(S(z0), x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) 85.12/33.94
VIA(0, x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) 85.12/33.94
MEMBER(E(z0, z1), Cons(E(z2, z3), x2)) → c19(EQEDGE(E(z0, z1), E(z2, z3))) 85.12/33.94
REACH(x0, x1, Cons(z1, z2)) → c24(REACH[ITE](member[Ite][False][Ite](eqEdge(E(x0, x1), z1), E(x0, x1), Cons(z1, z2)), x0, x1, Cons(z1, z2)), MEMBER(E(x0, x1), Cons(z1, z2))) 85.12/33.94
REACH(x0, x1, x2) → c24(MEMBER(E(x0, x1), x2)) 85.12/33.94
REACH(x0, x1, Nil) → c24(REACH[ITE](False, x0, x1, Nil))
POL(!EQ(x1, x2)) = [1] 85.12/33.94
POL(!EQ'(x1, x2)) = 0 85.12/33.94
POL(0) = 0 85.12/33.94
POL(Cons(x1, x2)) = 0 85.12/33.94
POL(E(x1, x2)) = [1] 85.12/33.94
POL(EQEDGE(x1, x2)) = [1] 85.12/33.94
POL(False) = [1] 85.12/33.94
POL(MEMBER(x1, x2)) = x1 85.12/33.94
POL(Nil) = 0 85.12/33.94
POL(REACH(x1, x2, x3)) = [1] 85.12/33.94
POL(REACH[ITE](x1, x2, x3, x4)) = x1 85.12/33.94
POL(S(x1)) = 0 85.12/33.94
POL(True) = [1] 85.12/33.94
POL(VIA(x1, x2, x3, x4)) = [1] 85.12/33.94
POL(VIA[ITE][FALSE][ITE](x1, x2, x3, x4, x5)) = x1 85.12/33.94
POL(and(x1, x2)) = [5] 85.12/33.94
POL(c(x1)) = x1 85.12/33.94
POL(c1(x1)) = x1 85.12/33.94
POL(c12(x1)) = x1 85.12/33.94
POL(c17(x1)) = x1 85.12/33.94
POL(c17(x1, x2)) = x1 + x2 85.12/33.94
POL(c19(x1)) = x1 85.12/33.94
POL(c24(x1)) = x1 85.12/33.94
POL(c24(x1, x2)) = x1 + x2 85.12/33.94
POL(c8(x1)) = x1 85.12/33.94
POL(c9(x1)) = x1 85.12/33.94
POL(eqEdge(x1, x2)) = 0 85.12/33.94
POL(eqEdge[Match][E][Match][E][Ite](x1, x2, x3, x4, x5)) = 0 85.12/33.94
POL(member(x1, x2)) = [2] 85.12/33.94
POL(member[Ite][False][Ite](x1, x2, x3)) = [4]x1
Tuples:
!EQ(S(z0), S(z1)) → !EQ(z0, z1) 85.12/33.94
!EQ(0, S(z0)) → False 85.12/33.94
!EQ(S(z0), 0) → False 85.12/33.94
!EQ(0, 0) → True 85.12/33.94
and(False, False) → False 85.12/33.94
and(True, False) → False 85.12/33.94
and(False, True) → False 85.12/33.94
and(True, True) → True 85.12/33.94
via[Ite][False][Ite](True, z0, z1, Cons(E(z2, z3), z4), z5) → via[Ite][False][Ite][True][Let](z0, z1, Cons(E(z2, z3), z4), z5, reach(z3, z1, z5)) 85.12/33.94
via[Ite][False][Ite](False, z0, z1, Cons(z2, z3), z4) → via(z0, z1, z3, z4) 85.12/33.94
member[Ite][False][Ite](False, z0, Cons(z1, z2)) → member(z0, z2) 85.12/33.94
member[Ite][False][Ite](True, z0, z1) → True 85.12/33.94
reach[Ite](False, z0, z1, z2) → via(z0, z1, z2, z2) 85.12/33.94
reach[Ite](True, z0, z1, z2) → Cons(E(z0, z1), Nil) 85.12/33.94
getNodeFromEdge(S(S(z0)), E(z1, z2)) → z2 85.12/33.94
getNodeFromEdge(S(0), E(z0, z1)) → z0 85.12/33.94
getNodeFromEdge(0, E(z0, z1)) → z0 85.12/33.94
via(z0, z1, Cons(E(z2, z3), z4), z5) → via[Ite][False][Ite](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5) 85.12/33.94
via(z0, z1, Nil, z2) → Nil 85.12/33.94
member(z0, Cons(z1, z2)) → member[Ite][False][Ite](eqEdge(z0, z1), z0, Cons(z1, z2)) 85.12/33.94
member(z0, Nil) → False 85.12/33.94
eqEdge(E(z0, z1), E(z2, z3)) → eqEdge[Match][E][Match][E][Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1) 85.12/33.94
notEmpty(Cons(z0, z1)) → True 85.12/33.94
notEmpty(Nil) → False 85.12/33.94
reach(z0, z1, z2) → reach[Ite](member(E(z0, z1), z2), z0, z1, z2) 85.12/33.94
goal(z0, z1, z2) → reach(z0, z1, z2)
S tuples:
!EQ'(S(z0), S(z1)) → c(!EQ'(z0, z1)) 85.12/33.94
VIA[ITE][FALSE][ITE](True, z0, z1, Cons(E(z2, z3), z4), z5) → c8(REACH(z3, z1, z5)) 85.12/33.94
VIA[ITE][FALSE][ITE](False, z0, z1, Cons(z2, z3), z4) → c9(VIA(z0, z1, z3, z4)) 85.12/33.94
REACH[ITE](False, z0, z1, z2) → c12(VIA(z0, z1, z2, z2)) 85.12/33.94
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z0, z2)) 85.12/33.94
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z1, z3)) 85.12/33.94
VIA(S(z0), x1, Cons(E(S(z1), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](!EQ(z0, z1), S(z0), x1, Cons(E(S(z1), x3), x4), x5), !EQ'(S(z0), S(z1))) 85.12/33.94
VIA(0, x1, Cons(E(S(z0), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) 85.12/33.94
VIA(S(z0), x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) 85.12/33.94
VIA(0, x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) 85.12/33.94
MEMBER(E(z0, z1), Cons(E(z2, z3), x2)) → c19(EQEDGE(E(z0, z1), E(z2, z3))) 85.12/33.94
REACH(x0, x1, Cons(z1, z2)) → c24(REACH[ITE](member[Ite][False][Ite](eqEdge(E(x0, x1), z1), E(x0, x1), Cons(z1, z2)), x0, x1, Cons(z1, z2)), MEMBER(E(x0, x1), Cons(z1, z2))) 85.12/33.94
REACH(x0, x1, x2) → c24(MEMBER(E(x0, x1), x2)) 85.12/33.94
REACH(x0, x1, Nil) → c24(REACH[ITE](False, x0, x1, Nil))
K tuples:
VIA(S(z0), x1, Cons(E(S(z1), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](!EQ(z0, z1), S(z0), x1, Cons(E(S(z1), x3), x4), x5), !EQ'(S(z0), S(z1))) 85.12/33.94
VIA(0, x1, Cons(E(S(z0), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) 85.12/33.94
VIA(S(z0), x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) 85.12/33.94
VIA(0, x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) 85.12/33.94
MEMBER(E(z0, z1), Cons(E(z2, z3), x2)) → c19(EQEDGE(E(z0, z1), E(z2, z3))) 85.12/33.94
REACH(x0, x1, Cons(z1, z2)) → c24(REACH[ITE](member[Ite][False][Ite](eqEdge(E(x0, x1), z1), E(x0, x1), Cons(z1, z2)), x0, x1, Cons(z1, z2)), MEMBER(E(x0, x1), Cons(z1, z2))) 85.12/33.94
REACH(x0, x1, Nil) → c24(REACH[ITE](False, x0, x1, Nil))
Defined Rule Symbols:
REACH(x0, x1, x2) → c24(MEMBER(E(x0, x1), x2)) 85.12/33.94
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z0, z2)) 85.12/33.94
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z1, z3))
getNodeFromEdge, via, member, eqEdge, notEmpty, reach, goal, !EQ, and, via[Ite][False][Ite], member[Ite][False][Ite], reach[Ite]
!EQ', VIA[ITE][FALSE][ITE], REACH[ITE], EQEDGE, VIA, MEMBER, REACH
c, c8, c9, c12, c1, c17, c17, c19, c24, c24
We considered the (Usable) Rules:
MEMBER(E(z0, z1), Cons(E(z2, z3), x2)) → c19(EQEDGE(E(z0, z1), E(z2, z3)))
And the Tuples:
eqEdge(E(z0, z1), E(z2, z3)) → eqEdge[Match][E][Match][E][Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1) 85.12/33.94
member(z0, Cons(z1, z2)) → member[Ite][False][Ite](eqEdge(z0, z1), z0, Cons(z1, z2)) 85.12/33.94
member(z0, Nil) → False 85.12/33.94
member[Ite][False][Ite](False, z0, Cons(z1, z2)) → member(z0, z2) 85.12/33.94
member[Ite][False][Ite](True, z0, z1) → True 85.12/33.94
!EQ(S(z0), S(z1)) → !EQ(z0, z1) 85.12/33.94
!EQ(0, S(z0)) → False 85.12/33.94
!EQ(S(z0), 0) → False 85.12/33.94
!EQ(0, 0) → True 85.12/33.94
and(False, False) → False 85.12/33.94
and(True, False) → False 85.12/33.94
and(False, True) → False 85.12/33.94
and(True, True) → True
The order we found is given by the following interpretation:
!EQ'(S(z0), S(z1)) → c(!EQ'(z0, z1)) 85.12/33.94
VIA[ITE][FALSE][ITE](True, z0, z1, Cons(E(z2, z3), z4), z5) → c8(REACH(z3, z1, z5)) 85.12/33.94
VIA[ITE][FALSE][ITE](False, z0, z1, Cons(z2, z3), z4) → c9(VIA(z0, z1, z3, z4)) 85.12/33.94
REACH[ITE](False, z0, z1, z2) → c12(VIA(z0, z1, z2, z2)) 85.12/33.94
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z0, z2)) 85.12/33.94
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z1, z3)) 85.12/33.94
VIA(S(z0), x1, Cons(E(S(z1), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](!EQ(z0, z1), S(z0), x1, Cons(E(S(z1), x3), x4), x5), !EQ'(S(z0), S(z1))) 85.12/33.94
VIA(0, x1, Cons(E(S(z0), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) 85.12/33.94
VIA(S(z0), x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) 85.12/33.94
VIA(0, x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) 85.12/33.94
MEMBER(E(z0, z1), Cons(E(z2, z3), x2)) → c19(EQEDGE(E(z0, z1), E(z2, z3))) 85.12/33.94
REACH(x0, x1, Cons(z1, z2)) → c24(REACH[ITE](member[Ite][False][Ite](eqEdge(E(x0, x1), z1), E(x0, x1), Cons(z1, z2)), x0, x1, Cons(z1, z2)), MEMBER(E(x0, x1), Cons(z1, z2))) 85.12/33.94
REACH(x0, x1, x2) → c24(MEMBER(E(x0, x1), x2)) 85.12/33.94
REACH(x0, x1, Nil) → c24(REACH[ITE](False, x0, x1, Nil))
POL(!EQ(x1, x2)) = 0 85.12/33.94
POL(!EQ'(x1, x2)) = 0 85.12/33.94
POL(0) = 0 85.12/33.94
POL(Cons(x1, x2)) = 0 85.12/33.94
POL(E(x1, x2)) = [1] 85.12/33.94
POL(EQEDGE(x1, x2)) = 0 85.12/33.94
POL(False) = [1] 85.12/33.94
POL(MEMBER(x1, x2)) = x1 85.12/33.94
POL(Nil) = 0 85.12/33.94
POL(REACH(x1, x2, x3)) = [1] 85.12/33.94
POL(REACH[ITE](x1, x2, x3, x4)) = x1 85.12/33.94
POL(S(x1)) = 0 85.12/33.94
POL(True) = [4] 85.12/33.94
POL(VIA(x1, x2, x3, x4)) = [1] 85.12/33.94
POL(VIA[ITE][FALSE][ITE](x1, x2, x3, x4, x5)) = [1] 85.12/33.94
POL(and(x1, x2)) = [3] 85.12/33.94
POL(c(x1)) = x1 85.12/33.94
POL(c1(x1)) = x1 85.12/33.94
POL(c12(x1)) = x1 85.12/33.94
POL(c17(x1)) = x1 85.12/33.94
POL(c17(x1, x2)) = x1 + x2 85.12/33.94
POL(c19(x1)) = x1 85.12/33.94
POL(c24(x1)) = x1 85.12/33.94
POL(c24(x1, x2)) = x1 + x2 85.12/33.94
POL(c8(x1)) = x1 85.12/33.94
POL(c9(x1)) = x1 85.12/33.94
POL(eqEdge(x1, x2)) = 0 85.12/33.94
POL(eqEdge[Match][E][Match][E][Ite](x1, x2, x3, x4, x5)) = 0 85.12/33.94
POL(member(x1, x2)) = [4] 85.12/33.94
POL(member[Ite][False][Ite](x1, x2, x3)) = [4]x1
Tuples:
!EQ(S(z0), S(z1)) → !EQ(z0, z1) 85.12/33.94
!EQ(0, S(z0)) → False 85.12/33.94
!EQ(S(z0), 0) → False 85.12/33.94
!EQ(0, 0) → True 85.12/33.94
and(False, False) → False 85.12/33.94
and(True, False) → False 85.12/33.94
and(False, True) → False 85.12/33.94
and(True, True) → True 85.12/33.94
via[Ite][False][Ite](True, z0, z1, Cons(E(z2, z3), z4), z5) → via[Ite][False][Ite][True][Let](z0, z1, Cons(E(z2, z3), z4), z5, reach(z3, z1, z5)) 85.12/33.94
via[Ite][False][Ite](False, z0, z1, Cons(z2, z3), z4) → via(z0, z1, z3, z4) 85.12/33.94
member[Ite][False][Ite](False, z0, Cons(z1, z2)) → member(z0, z2) 85.12/33.94
member[Ite][False][Ite](True, z0, z1) → True 85.12/33.94
reach[Ite](False, z0, z1, z2) → via(z0, z1, z2, z2) 85.12/33.94
reach[Ite](True, z0, z1, z2) → Cons(E(z0, z1), Nil) 85.12/33.94
getNodeFromEdge(S(S(z0)), E(z1, z2)) → z2 85.12/33.94
getNodeFromEdge(S(0), E(z0, z1)) → z0 85.12/33.94
getNodeFromEdge(0, E(z0, z1)) → z0 85.12/33.94
via(z0, z1, Cons(E(z2, z3), z4), z5) → via[Ite][False][Ite](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5) 85.12/33.94
via(z0, z1, Nil, z2) → Nil 85.12/33.94
member(z0, Cons(z1, z2)) → member[Ite][False][Ite](eqEdge(z0, z1), z0, Cons(z1, z2)) 85.12/33.94
member(z0, Nil) → False 85.12/33.94
eqEdge(E(z0, z1), E(z2, z3)) → eqEdge[Match][E][Match][E][Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1) 85.12/33.94
notEmpty(Cons(z0, z1)) → True 85.12/33.94
notEmpty(Nil) → False 85.12/33.94
reach(z0, z1, z2) → reach[Ite](member(E(z0, z1), z2), z0, z1, z2) 85.12/33.94
goal(z0, z1, z2) → reach(z0, z1, z2)
S tuples:
!EQ'(S(z0), S(z1)) → c(!EQ'(z0, z1)) 85.12/33.94
VIA[ITE][FALSE][ITE](True, z0, z1, Cons(E(z2, z3), z4), z5) → c8(REACH(z3, z1, z5)) 85.12/33.94
VIA[ITE][FALSE][ITE](False, z0, z1, Cons(z2, z3), z4) → c9(VIA(z0, z1, z3, z4)) 85.12/33.94
REACH[ITE](False, z0, z1, z2) → c12(VIA(z0, z1, z2, z2)) 85.12/33.94
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z0, z2)) 85.12/33.94
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z1, z3)) 85.12/33.94
VIA(S(z0), x1, Cons(E(S(z1), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](!EQ(z0, z1), S(z0), x1, Cons(E(S(z1), x3), x4), x5), !EQ'(S(z0), S(z1))) 85.12/33.94
VIA(0, x1, Cons(E(S(z0), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) 85.12/33.94
VIA(S(z0), x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) 85.12/33.94
VIA(0, x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) 85.12/33.94
MEMBER(E(z0, z1), Cons(E(z2, z3), x2)) → c19(EQEDGE(E(z0, z1), E(z2, z3))) 85.12/33.94
REACH(x0, x1, Cons(z1, z2)) → c24(REACH[ITE](member[Ite][False][Ite](eqEdge(E(x0, x1), z1), E(x0, x1), Cons(z1, z2)), x0, x1, Cons(z1, z2)), MEMBER(E(x0, x1), Cons(z1, z2))) 85.12/33.94
REACH(x0, x1, x2) → c24(MEMBER(E(x0, x1), x2)) 85.12/33.94
REACH(x0, x1, Nil) → c24(REACH[ITE](False, x0, x1, Nil))
K tuples:
VIA(S(z0), x1, Cons(E(S(z1), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](!EQ(z0, z1), S(z0), x1, Cons(E(S(z1), x3), x4), x5), !EQ'(S(z0), S(z1))) 85.12/33.94
VIA(0, x1, Cons(E(S(z0), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) 85.12/33.94
VIA(S(z0), x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) 85.12/33.94
VIA(0, x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) 85.12/33.94
REACH(x0, x1, Cons(z1, z2)) → c24(REACH[ITE](member[Ite][False][Ite](eqEdge(E(x0, x1), z1), E(x0, x1), Cons(z1, z2)), x0, x1, Cons(z1, z2)), MEMBER(E(x0, x1), Cons(z1, z2))) 85.12/33.94
REACH(x0, x1, Nil) → c24(REACH[ITE](False, x0, x1, Nil))
Defined Rule Symbols:
REACH(x0, x1, x2) → c24(MEMBER(E(x0, x1), x2)) 85.12/33.94
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z0, z2)) 85.12/33.94
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z1, z3)) 85.12/33.94
MEMBER(E(z0, z1), Cons(E(z2, z3), x2)) → c19(EQEDGE(E(z0, z1), E(z2, z3)))
getNodeFromEdge, via, member, eqEdge, notEmpty, reach, goal, !EQ, and, via[Ite][False][Ite], member[Ite][False][Ite], reach[Ite]
!EQ', VIA[ITE][FALSE][ITE], REACH[ITE], EQEDGE, VIA, MEMBER, REACH
c, c8, c9, c12, c1, c17, c17, c19, c24, c24
We considered the (Usable) Rules:
REACH(x0, x1, Cons(z1, z2)) → c24(REACH[ITE](member[Ite][False][Ite](eqEdge(E(x0, x1), z1), E(x0, x1), Cons(z1, z2)), x0, x1, Cons(z1, z2)), MEMBER(E(x0, x1), Cons(z1, z2)))
And the Tuples:
eqEdge(E(z0, z1), E(z2, z3)) → eqEdge[Match][E][Match][E][Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1) 85.12/33.94
member(z0, Cons(z1, z2)) → member[Ite][False][Ite](eqEdge(z0, z1), z0, Cons(z1, z2)) 85.12/33.94
member(z0, Nil) → False 85.12/33.94
member[Ite][False][Ite](False, z0, Cons(z1, z2)) → member(z0, z2) 85.12/33.94
member[Ite][False][Ite](True, z0, z1) → True 85.12/33.94
!EQ(S(z0), S(z1)) → !EQ(z0, z1) 85.12/33.94
!EQ(0, S(z0)) → False 85.12/33.94
!EQ(S(z0), 0) → False 85.12/33.94
!EQ(0, 0) → True 85.12/33.94
and(False, False) → False 85.12/33.94
and(True, False) → False 85.12/33.94
and(False, True) → False 85.12/33.94
and(True, True) → True
The order we found is given by the following interpretation:
!EQ'(S(z0), S(z1)) → c(!EQ'(z0, z1)) 85.12/33.94
VIA[ITE][FALSE][ITE](True, z0, z1, Cons(E(z2, z3), z4), z5) → c8(REACH(z3, z1, z5)) 85.12/33.94
VIA[ITE][FALSE][ITE](False, z0, z1, Cons(z2, z3), z4) → c9(VIA(z0, z1, z3, z4)) 85.12/33.94
REACH[ITE](False, z0, z1, z2) → c12(VIA(z0, z1, z2, z2)) 85.12/33.94
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z0, z2)) 85.12/33.94
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z1, z3)) 85.12/33.94
VIA(S(z0), x1, Cons(E(S(z1), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](!EQ(z0, z1), S(z0), x1, Cons(E(S(z1), x3), x4), x5), !EQ'(S(z0), S(z1))) 85.12/33.94
VIA(0, x1, Cons(E(S(z0), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) 85.12/33.94
VIA(S(z0), x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) 85.12/33.94
VIA(0, x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) 85.12/33.94
MEMBER(E(z0, z1), Cons(E(z2, z3), x2)) → c19(EQEDGE(E(z0, z1), E(z2, z3))) 85.12/33.94
REACH(x0, x1, Cons(z1, z2)) → c24(REACH[ITE](member[Ite][False][Ite](eqEdge(E(x0, x1), z1), E(x0, x1), Cons(z1, z2)), x0, x1, Cons(z1, z2)), MEMBER(E(x0, x1), Cons(z1, z2))) 85.12/33.94
REACH(x0, x1, x2) → c24(MEMBER(E(x0, x1), x2)) 85.12/33.94
REACH(x0, x1, Nil) → c24(REACH[ITE](False, x0, x1, Nil))
POL(!EQ(x1, x2)) = 0 85.12/33.94
POL(!EQ'(x1, x2)) = 0 85.12/33.94
POL(0) = 0 85.12/33.94
POL(Cons(x1, x2)) = 0 85.12/33.94
POL(E(x1, x2)) = 0 85.12/33.94
POL(EQEDGE(x1, x2)) = 0 85.12/33.94
POL(False) = [1] 85.12/33.94
POL(MEMBER(x1, x2)) = 0 85.12/33.94
POL(Nil) = 0 85.12/33.94
POL(REACH(x1, x2, x3)) = [1] 85.12/33.94
POL(REACH[ITE](x1, x2, x3, x4)) = x1 85.12/33.94
POL(S(x1)) = 0 85.12/33.94
POL(True) = 0 85.12/33.94
POL(VIA(x1, x2, x3, x4)) = [1] 85.12/33.94
POL(VIA[ITE][FALSE][ITE](x1, x2, x3, x4, x5)) = [1] 85.12/33.94
POL(and(x1, x2)) = [3] 85.12/33.94
POL(c(x1)) = x1 85.12/33.94
POL(c1(x1)) = x1 85.12/33.94
POL(c12(x1)) = x1 85.12/33.94
POL(c17(x1)) = x1 85.12/33.94
POL(c17(x1, x2)) = x1 + x2 85.12/33.94
POL(c19(x1)) = x1 85.12/33.94
POL(c24(x1)) = x1 85.12/33.94
POL(c24(x1, x2)) = x1 + x2 85.12/33.94
POL(c8(x1)) = x1 85.12/33.94
POL(c9(x1)) = x1 85.12/33.94
POL(eqEdge(x1, x2)) = 0 85.12/33.94
POL(eqEdge[Match][E][Match][E][Ite](x1, x2, x3, x4, x5)) = 0 85.12/33.94
POL(member(x1, x2)) = [1] 85.12/33.94
POL(member[Ite][False][Ite](x1, x2, x3)) = [2]x1
Tuples:
!EQ(S(z0), S(z1)) → !EQ(z0, z1) 85.12/33.94
!EQ(0, S(z0)) → False 85.12/33.94
!EQ(S(z0), 0) → False 85.12/33.94
!EQ(0, 0) → True 85.12/33.94
and(False, False) → False 85.12/33.94
and(True, False) → False 85.12/33.94
and(False, True) → False 85.12/33.94
and(True, True) → True 85.12/33.94
via[Ite][False][Ite](True, z0, z1, Cons(E(z2, z3), z4), z5) → via[Ite][False][Ite][True][Let](z0, z1, Cons(E(z2, z3), z4), z5, reach(z3, z1, z5)) 85.12/33.94
via[Ite][False][Ite](False, z0, z1, Cons(z2, z3), z4) → via(z0, z1, z3, z4) 85.12/33.94
member[Ite][False][Ite](False, z0, Cons(z1, z2)) → member(z0, z2) 85.12/33.94
member[Ite][False][Ite](True, z0, z1) → True 85.12/33.94
reach[Ite](False, z0, z1, z2) → via(z0, z1, z2, z2) 85.12/33.94
reach[Ite](True, z0, z1, z2) → Cons(E(z0, z1), Nil) 85.12/33.94
getNodeFromEdge(S(S(z0)), E(z1, z2)) → z2 85.12/33.94
getNodeFromEdge(S(0), E(z0, z1)) → z0 85.12/33.94
getNodeFromEdge(0, E(z0, z1)) → z0 85.12/33.94
via(z0, z1, Cons(E(z2, z3), z4), z5) → via[Ite][False][Ite](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5) 85.12/33.94
via(z0, z1, Nil, z2) → Nil 85.12/33.94
member(z0, Cons(z1, z2)) → member[Ite][False][Ite](eqEdge(z0, z1), z0, Cons(z1, z2)) 85.12/33.94
member(z0, Nil) → False 85.12/33.94
eqEdge(E(z0, z1), E(z2, z3)) → eqEdge[Match][E][Match][E][Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1) 85.12/33.94
notEmpty(Cons(z0, z1)) → True 85.12/33.94
notEmpty(Nil) → False 85.12/33.94
reach(z0, z1, z2) → reach[Ite](member(E(z0, z1), z2), z0, z1, z2) 85.12/33.94
goal(z0, z1, z2) → reach(z0, z1, z2)
S tuples:
!EQ'(S(z0), S(z1)) → c(!EQ'(z0, z1)) 85.12/33.94
VIA[ITE][FALSE][ITE](True, z0, z1, Cons(E(z2, z3), z4), z5) → c8(REACH(z3, z1, z5)) 85.12/33.94
VIA[ITE][FALSE][ITE](False, z0, z1, Cons(z2, z3), z4) → c9(VIA(z0, z1, z3, z4)) 85.12/33.94
REACH[ITE](False, z0, z1, z2) → c12(VIA(z0, z1, z2, z2)) 85.12/33.94
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z0, z2)) 85.12/33.94
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z1, z3)) 85.12/33.94
VIA(S(z0), x1, Cons(E(S(z1), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](!EQ(z0, z1), S(z0), x1, Cons(E(S(z1), x3), x4), x5), !EQ'(S(z0), S(z1))) 85.12/33.94
VIA(0, x1, Cons(E(S(z0), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) 85.12/33.94
VIA(S(z0), x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) 85.12/33.94
VIA(0, x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) 85.12/33.94
MEMBER(E(z0, z1), Cons(E(z2, z3), x2)) → c19(EQEDGE(E(z0, z1), E(z2, z3))) 85.12/33.94
REACH(x0, x1, Cons(z1, z2)) → c24(REACH[ITE](member[Ite][False][Ite](eqEdge(E(x0, x1), z1), E(x0, x1), Cons(z1, z2)), x0, x1, Cons(z1, z2)), MEMBER(E(x0, x1), Cons(z1, z2))) 85.12/33.94
REACH(x0, x1, x2) → c24(MEMBER(E(x0, x1), x2)) 85.12/33.94
REACH(x0, x1, Nil) → c24(REACH[ITE](False, x0, x1, Nil))
K tuples:
VIA(S(z0), x1, Cons(E(S(z1), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](!EQ(z0, z1), S(z0), x1, Cons(E(S(z1), x3), x4), x5), !EQ'(S(z0), S(z1))) 85.12/33.94
VIA(0, x1, Cons(E(S(z0), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) 85.12/33.94
VIA(S(z0), x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) 85.12/33.94
VIA(0, x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) 85.12/33.94
REACH(x0, x1, Nil) → c24(REACH[ITE](False, x0, x1, Nil))
Defined Rule Symbols:
REACH(x0, x1, x2) → c24(MEMBER(E(x0, x1), x2)) 85.12/33.94
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z0, z2)) 85.12/33.94
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z1, z3)) 85.12/33.94
MEMBER(E(z0, z1), Cons(E(z2, z3), x2)) → c19(EQEDGE(E(z0, z1), E(z2, z3))) 85.12/33.94
REACH(x0, x1, Cons(z1, z2)) → c24(REACH[ITE](member[Ite][False][Ite](eqEdge(E(x0, x1), z1), E(x0, x1), Cons(z1, z2)), x0, x1, Cons(z1, z2)), MEMBER(E(x0, x1), Cons(z1, z2)))
getNodeFromEdge, via, member, eqEdge, notEmpty, reach, goal, !EQ, and, via[Ite][False][Ite], member[Ite][False][Ite], reach[Ite]
!EQ', VIA[ITE][FALSE][ITE], REACH[ITE], EQEDGE, VIA, MEMBER, REACH
c, c8, c9, c12, c1, c17, c17, c19, c24, c24
VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) 85.12/33.94
VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5), !EQ'(S(0), S(S(z0)))) 85.12/33.94
VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(S(z0)), S(0))) 85.12/33.94
VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(0), S(0))) 85.12/33.94
VIA(S(x0), x1, Cons(E(S(x2), x3), x4), x5) → c17(!EQ'(S(x0), S(x2)))
Tuples:
!EQ(S(z0), S(z1)) → !EQ(z0, z1) 85.12/33.94
!EQ(0, S(z0)) → False 85.12/33.94
!EQ(S(z0), 0) → False 85.12/33.94
!EQ(0, 0) → True 85.12/33.94
and(False, False) → False 85.12/33.94
and(True, False) → False 85.12/33.94
and(False, True) → False 85.12/33.94
and(True, True) → True 85.12/33.94
via[Ite][False][Ite](True, z0, z1, Cons(E(z2, z3), z4), z5) → via[Ite][False][Ite][True][Let](z0, z1, Cons(E(z2, z3), z4), z5, reach(z3, z1, z5)) 85.12/33.94
via[Ite][False][Ite](False, z0, z1, Cons(z2, z3), z4) → via(z0, z1, z3, z4) 85.12/33.94
member[Ite][False][Ite](False, z0, Cons(z1, z2)) → member(z0, z2) 85.12/33.94
member[Ite][False][Ite](True, z0, z1) → True 85.12/33.94
reach[Ite](False, z0, z1, z2) → via(z0, z1, z2, z2) 85.12/33.94
reach[Ite](True, z0, z1, z2) → Cons(E(z0, z1), Nil) 85.12/33.94
getNodeFromEdge(S(S(z0)), E(z1, z2)) → z2 85.12/33.94
getNodeFromEdge(S(0), E(z0, z1)) → z0 85.12/33.94
getNodeFromEdge(0, E(z0, z1)) → z0 85.12/33.94
via(z0, z1, Cons(E(z2, z3), z4), z5) → via[Ite][False][Ite](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5) 85.12/33.94
via(z0, z1, Nil, z2) → Nil 85.12/33.94
member(z0, Cons(z1, z2)) → member[Ite][False][Ite](eqEdge(z0, z1), z0, Cons(z1, z2)) 85.12/33.94
member(z0, Nil) → False 85.12/33.94
eqEdge(E(z0, z1), E(z2, z3)) → eqEdge[Match][E][Match][E][Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1) 85.12/33.94
notEmpty(Cons(z0, z1)) → True 85.12/33.94
notEmpty(Nil) → False 85.12/33.94
reach(z0, z1, z2) → reach[Ite](member(E(z0, z1), z2), z0, z1, z2) 85.12/33.94
goal(z0, z1, z2) → reach(z0, z1, z2)
S tuples:
!EQ'(S(z0), S(z1)) → c(!EQ'(z0, z1)) 85.12/33.94
VIA[ITE][FALSE][ITE](True, z0, z1, Cons(E(z2, z3), z4), z5) → c8(REACH(z3, z1, z5)) 85.12/33.94
VIA[ITE][FALSE][ITE](False, z0, z1, Cons(z2, z3), z4) → c9(VIA(z0, z1, z3, z4)) 85.12/33.94
REACH[ITE](False, z0, z1, z2) → c12(VIA(z0, z1, z2, z2)) 85.12/33.94
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z0, z2)) 85.12/33.94
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z1, z3)) 85.12/33.94
VIA(0, x1, Cons(E(S(z0), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) 85.12/33.94
VIA(S(z0), x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) 85.12/33.94
VIA(0, x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) 85.12/33.94
MEMBER(E(z0, z1), Cons(E(z2, z3), x2)) → c19(EQEDGE(E(z0, z1), E(z2, z3))) 85.12/33.94
REACH(x0, x1, Cons(z1, z2)) → c24(REACH[ITE](member[Ite][False][Ite](eqEdge(E(x0, x1), z1), E(x0, x1), Cons(z1, z2)), x0, x1, Cons(z1, z2)), MEMBER(E(x0, x1), Cons(z1, z2))) 85.12/33.94
REACH(x0, x1, x2) → c24(MEMBER(E(x0, x1), x2)) 85.12/33.94
REACH(x0, x1, Nil) → c24(REACH[ITE](False, x0, x1, Nil)) 85.12/33.94
VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) 85.12/33.94
VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5), !EQ'(S(0), S(S(z0)))) 85.12/33.94
VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(S(z0)), S(0))) 85.12/33.94
VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(0), S(0))) 85.12/33.94
VIA(S(x0), x1, Cons(E(S(x2), x3), x4), x5) → c17(!EQ'(S(x0), S(x2)))
K tuples:
VIA(0, x1, Cons(E(S(z0), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) 85.12/33.94
VIA(S(z0), x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) 85.12/33.94
VIA(0, x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) 85.12/33.94
REACH(x0, x1, Nil) → c24(REACH[ITE](False, x0, x1, Nil)) 85.12/33.94
VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) 85.12/33.94
VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5), !EQ'(S(0), S(S(z0)))) 85.12/33.94
VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(S(z0)), S(0))) 85.12/33.94
VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(0), S(0))) 85.12/33.94
VIA(S(x0), x1, Cons(E(S(x2), x3), x4), x5) → c17(!EQ'(S(x0), S(x2)))
Defined Rule Symbols:
REACH(x0, x1, x2) → c24(MEMBER(E(x0, x1), x2)) 85.12/33.94
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z0, z2)) 85.12/33.94
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z1, z3)) 85.12/33.94
MEMBER(E(z0, z1), Cons(E(z2, z3), x2)) → c19(EQEDGE(E(z0, z1), E(z2, z3))) 85.12/33.94
REACH(x0, x1, Cons(z1, z2)) → c24(REACH[ITE](member[Ite][False][Ite](eqEdge(E(x0, x1), z1), E(x0, x1), Cons(z1, z2)), x0, x1, Cons(z1, z2)), MEMBER(E(x0, x1), Cons(z1, z2)))
getNodeFromEdge, via, member, eqEdge, notEmpty, reach, goal, !EQ, and, via[Ite][False][Ite], member[Ite][False][Ite], reach[Ite]
!EQ', VIA[ITE][FALSE][ITE], REACH[ITE], EQEDGE, VIA, MEMBER, REACH
c, c8, c9, c12, c1, c17, c19, c24, c24, c17
We considered the (Usable) Rules:
VIA(S(x0), x1, Cons(E(S(x2), x3), x4), x5) → c17(!EQ'(S(x0), S(x2)))
And the Tuples:
!EQ(S(z0), S(z1)) → !EQ(z0, z1) 85.12/33.94
!EQ(0, S(z0)) → False 85.12/33.94
!EQ(S(z0), 0) → False 85.12/33.94
!EQ(0, 0) → True 85.12/33.94
eqEdge(E(z0, z1), E(z2, z3)) → eqEdge[Match][E][Match][E][Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1) 85.12/33.94
member(z0, Cons(z1, z2)) → member[Ite][False][Ite](eqEdge(z0, z1), z0, Cons(z1, z2)) 85.12/33.94
member(z0, Nil) → False 85.12/33.94
member[Ite][False][Ite](False, z0, Cons(z1, z2)) → member(z0, z2) 85.12/33.94
member[Ite][False][Ite](True, z0, z1) → True 85.12/33.94
and(False, False) → False 85.12/33.94
and(True, False) → False 85.12/33.94
and(False, True) → False 85.12/33.94
and(True, True) → True
The order we found is given by the following interpretation:
!EQ'(S(z0), S(z1)) → c(!EQ'(z0, z1)) 85.12/33.94
VIA[ITE][FALSE][ITE](True, z0, z1, Cons(E(z2, z3), z4), z5) → c8(REACH(z3, z1, z5)) 85.12/33.94
VIA[ITE][FALSE][ITE](False, z0, z1, Cons(z2, z3), z4) → c9(VIA(z0, z1, z3, z4)) 85.12/33.94
REACH[ITE](False, z0, z1, z2) → c12(VIA(z0, z1, z2, z2)) 85.12/33.94
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z0, z2)) 85.12/33.94
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z1, z3)) 85.12/33.94
VIA(0, x1, Cons(E(S(z0), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) 85.12/33.94
VIA(S(z0), x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) 85.12/33.94
VIA(0, x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) 85.12/33.94
MEMBER(E(z0, z1), Cons(E(z2, z3), x2)) → c19(EQEDGE(E(z0, z1), E(z2, z3))) 85.12/33.94
REACH(x0, x1, Cons(z1, z2)) → c24(REACH[ITE](member[Ite][False][Ite](eqEdge(E(x0, x1), z1), E(x0, x1), Cons(z1, z2)), x0, x1, Cons(z1, z2)), MEMBER(E(x0, x1), Cons(z1, z2))) 85.12/33.94
REACH(x0, x1, x2) → c24(MEMBER(E(x0, x1), x2)) 85.12/33.94
REACH(x0, x1, Nil) → c24(REACH[ITE](False, x0, x1, Nil)) 85.12/33.94
VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) 85.12/33.94
VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5), !EQ'(S(0), S(S(z0)))) 85.12/33.94
VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(S(z0)), S(0))) 85.12/33.94
VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(0), S(0))) 85.12/33.94
VIA(S(x0), x1, Cons(E(S(x2), x3), x4), x5) → c17(!EQ'(S(x0), S(x2)))
POL(!EQ(x1, x2)) = 0 85.12/33.94
POL(!EQ'(x1, x2)) = 0 85.12/33.94
POL(0) = 0 85.12/33.94
POL(Cons(x1, x2)) = 0 85.12/33.94
POL(E(x1, x2)) = 0 85.12/33.94
POL(EQEDGE(x1, x2)) = 0 85.12/33.94
POL(False) = 0 85.12/33.94
POL(MEMBER(x1, x2)) = 0 85.12/33.94
POL(Nil) = 0 85.12/33.94
POL(REACH(x1, x2, x3)) = [1] 85.12/33.94
POL(REACH[ITE](x1, x2, x3, x4)) = [1] 85.12/33.94
POL(S(x1)) = 0 85.12/33.94
POL(True) = 0 85.12/33.94
POL(VIA(x1, x2, x3, x4)) = [1] 85.12/33.94
POL(VIA[ITE][FALSE][ITE](x1, x2, x3, x4, x5)) = [1] 85.12/33.94
POL(and(x1, x2)) = [2] 85.12/33.94
POL(c(x1)) = x1 85.12/33.94
POL(c1(x1)) = x1 85.12/33.94
POL(c12(x1)) = x1 85.12/33.94
POL(c17(x1)) = x1 85.12/33.94
POL(c17(x1, x2)) = x1 + x2 85.12/33.94
POL(c19(x1)) = x1 85.12/33.94
POL(c24(x1)) = x1 85.12/33.94
POL(c24(x1, x2)) = x1 + x2 85.12/33.94
POL(c8(x1)) = x1 85.12/33.94
POL(c9(x1)) = x1 85.12/33.94
POL(eqEdge(x1, x2)) = [4] 85.12/33.94
POL(eqEdge[Match][E][Match][E][Ite](x1, x2, x3, x4, x5)) = x1 85.12/33.94
POL(member(x1, x2)) = [3] + [3]x1 + [3]x2 85.12/33.94
POL(member[Ite][False][Ite](x1, x2, x3)) = 0
Tuples:
!EQ(S(z0), S(z1)) → !EQ(z0, z1) 85.12/33.94
!EQ(0, S(z0)) → False 85.12/33.94
!EQ(S(z0), 0) → False 85.12/33.94
!EQ(0, 0) → True 85.12/33.94
and(False, False) → False 85.12/33.94
and(True, False) → False 85.12/33.94
and(False, True) → False 85.12/33.94
and(True, True) → True 85.12/33.94
via[Ite][False][Ite](True, z0, z1, Cons(E(z2, z3), z4), z5) → via[Ite][False][Ite][True][Let](z0, z1, Cons(E(z2, z3), z4), z5, reach(z3, z1, z5)) 85.12/33.94
via[Ite][False][Ite](False, z0, z1, Cons(z2, z3), z4) → via(z0, z1, z3, z4) 85.12/33.94
member[Ite][False][Ite](False, z0, Cons(z1, z2)) → member(z0, z2) 85.12/33.94
member[Ite][False][Ite](True, z0, z1) → True 85.12/33.94
reach[Ite](False, z0, z1, z2) → via(z0, z1, z2, z2) 85.12/33.94
reach[Ite](True, z0, z1, z2) → Cons(E(z0, z1), Nil) 85.12/33.94
getNodeFromEdge(S(S(z0)), E(z1, z2)) → z2 85.12/33.94
getNodeFromEdge(S(0), E(z0, z1)) → z0 85.12/33.94
getNodeFromEdge(0, E(z0, z1)) → z0 85.12/33.94
via(z0, z1, Cons(E(z2, z3), z4), z5) → via[Ite][False][Ite](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5) 85.12/33.94
via(z0, z1, Nil, z2) → Nil 85.12/33.94
member(z0, Cons(z1, z2)) → member[Ite][False][Ite](eqEdge(z0, z1), z0, Cons(z1, z2)) 85.12/33.94
member(z0, Nil) → False 85.12/33.94
eqEdge(E(z0, z1), E(z2, z3)) → eqEdge[Match][E][Match][E][Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1) 85.12/33.94
notEmpty(Cons(z0, z1)) → True 85.12/33.94
notEmpty(Nil) → False 85.12/33.94
reach(z0, z1, z2) → reach[Ite](member(E(z0, z1), z2), z0, z1, z2) 85.12/33.94
goal(z0, z1, z2) → reach(z0, z1, z2)
S tuples:
!EQ'(S(z0), S(z1)) → c(!EQ'(z0, z1)) 85.12/33.94
VIA[ITE][FALSE][ITE](True, z0, z1, Cons(E(z2, z3), z4), z5) → c8(REACH(z3, z1, z5)) 85.12/33.94
VIA[ITE][FALSE][ITE](False, z0, z1, Cons(z2, z3), z4) → c9(VIA(z0, z1, z3, z4)) 85.12/33.94
REACH[ITE](False, z0, z1, z2) → c12(VIA(z0, z1, z2, z2)) 85.12/33.94
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z0, z2)) 85.12/33.94
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z1, z3)) 85.12/33.94
VIA(0, x1, Cons(E(S(z0), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) 85.12/33.94
VIA(S(z0), x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) 85.12/33.94
VIA(0, x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) 85.12/33.94
MEMBER(E(z0, z1), Cons(E(z2, z3), x2)) → c19(EQEDGE(E(z0, z1), E(z2, z3))) 85.12/33.94
REACH(x0, x1, Cons(z1, z2)) → c24(REACH[ITE](member[Ite][False][Ite](eqEdge(E(x0, x1), z1), E(x0, x1), Cons(z1, z2)), x0, x1, Cons(z1, z2)), MEMBER(E(x0, x1), Cons(z1, z2))) 85.12/33.94
REACH(x0, x1, x2) → c24(MEMBER(E(x0, x1), x2)) 85.12/33.94
REACH(x0, x1, Nil) → c24(REACH[ITE](False, x0, x1, Nil)) 85.12/33.94
VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) 85.12/33.94
VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5), !EQ'(S(0), S(S(z0)))) 85.12/33.94
VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(S(z0)), S(0))) 85.12/33.94
VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(0), S(0))) 85.12/33.94
VIA(S(x0), x1, Cons(E(S(x2), x3), x4), x5) → c17(!EQ'(S(x0), S(x2)))
K tuples:
VIA(0, x1, Cons(E(S(z0), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) 85.12/33.94
VIA(S(z0), x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) 85.12/33.94
VIA(0, x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) 85.12/33.94
REACH(x0, x1, Nil) → c24(REACH[ITE](False, x0, x1, Nil)) 85.12/33.94
VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) 85.12/33.94
VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5), !EQ'(S(0), S(S(z0)))) 85.12/33.94
VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(S(z0)), S(0))) 85.12/33.94
VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(0), S(0)))
Defined Rule Symbols:
REACH(x0, x1, x2) → c24(MEMBER(E(x0, x1), x2)) 85.12/33.94
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z0, z2)) 85.12/33.94
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z1, z3)) 85.12/33.94
MEMBER(E(z0, z1), Cons(E(z2, z3), x2)) → c19(EQEDGE(E(z0, z1), E(z2, z3))) 85.12/33.94
REACH(x0, x1, Cons(z1, z2)) → c24(REACH[ITE](member[Ite][False][Ite](eqEdge(E(x0, x1), z1), E(x0, x1), Cons(z1, z2)), x0, x1, Cons(z1, z2)), MEMBER(E(x0, x1), Cons(z1, z2))) 85.12/33.94
VIA(S(x0), x1, Cons(E(S(x2), x3), x4), x5) → c17(!EQ'(S(x0), S(x2)))
getNodeFromEdge, via, member, eqEdge, notEmpty, reach, goal, !EQ, and, via[Ite][False][Ite], member[Ite][False][Ite], reach[Ite]
!EQ', VIA[ITE][FALSE][ITE], REACH[ITE], EQEDGE, VIA, MEMBER, REACH
c, c8, c9, c12, c1, c17, c19, c24, c24, c17
REACH(z0, z1, Cons(E(z2, z3), x3)) → c24(REACH[ITE](member[Ite][False][Ite](eqEdge[Match][E][Match][E][Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1), E(z0, z1), Cons(E(z2, z3), x3)), z0, z1, Cons(E(z2, z3), x3)), MEMBER(E(z0, z1), Cons(E(z2, z3), x3)))
Tuples:
!EQ(S(z0), S(z1)) → !EQ(z0, z1) 85.12/33.94
!EQ(0, S(z0)) → False 85.12/33.94
!EQ(S(z0), 0) → False 85.12/33.94
!EQ(0, 0) → True 85.12/33.94
and(False, False) → False 85.12/33.94
and(True, False) → False 85.12/33.94
and(False, True) → False 85.12/33.94
and(True, True) → True 85.12/33.94
via[Ite][False][Ite](True, z0, z1, Cons(E(z2, z3), z4), z5) → via[Ite][False][Ite][True][Let](z0, z1, Cons(E(z2, z3), z4), z5, reach(z3, z1, z5)) 85.12/33.94
via[Ite][False][Ite](False, z0, z1, Cons(z2, z3), z4) → via(z0, z1, z3, z4) 85.12/33.94
member[Ite][False][Ite](False, z0, Cons(z1, z2)) → member(z0, z2) 85.12/33.94
member[Ite][False][Ite](True, z0, z1) → True 85.12/33.94
reach[Ite](False, z0, z1, z2) → via(z0, z1, z2, z2) 85.12/33.94
reach[Ite](True, z0, z1, z2) → Cons(E(z0, z1), Nil) 85.12/33.94
getNodeFromEdge(S(S(z0)), E(z1, z2)) → z2 85.12/33.94
getNodeFromEdge(S(0), E(z0, z1)) → z0 85.12/33.94
getNodeFromEdge(0, E(z0, z1)) → z0 85.12/33.94
via(z0, z1, Cons(E(z2, z3), z4), z5) → via[Ite][False][Ite](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5) 85.12/33.94
via(z0, z1, Nil, z2) → Nil 85.12/33.94
member(z0, Cons(z1, z2)) → member[Ite][False][Ite](eqEdge(z0, z1), z0, Cons(z1, z2)) 85.12/33.94
member(z0, Nil) → False 85.12/33.94
eqEdge(E(z0, z1), E(z2, z3)) → eqEdge[Match][E][Match][E][Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1) 85.12/33.94
notEmpty(Cons(z0, z1)) → True 85.12/33.94
notEmpty(Nil) → False 85.12/33.94
reach(z0, z1, z2) → reach[Ite](member(E(z0, z1), z2), z0, z1, z2) 85.12/33.94
goal(z0, z1, z2) → reach(z0, z1, z2)
S tuples:
!EQ'(S(z0), S(z1)) → c(!EQ'(z0, z1)) 85.12/33.94
VIA[ITE][FALSE][ITE](True, z0, z1, Cons(E(z2, z3), z4), z5) → c8(REACH(z3, z1, z5)) 85.12/33.94
VIA[ITE][FALSE][ITE](False, z0, z1, Cons(z2, z3), z4) → c9(VIA(z0, z1, z3, z4)) 85.12/33.94
REACH[ITE](False, z0, z1, z2) → c12(VIA(z0, z1, z2, z2)) 85.12/33.94
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z0, z2)) 85.12/33.94
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z1, z3)) 85.12/33.94
VIA(0, x1, Cons(E(S(z0), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) 85.12/33.94
VIA(S(z0), x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) 85.12/33.94
VIA(0, x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) 85.12/33.94
MEMBER(E(z0, z1), Cons(E(z2, z3), x2)) → c19(EQEDGE(E(z0, z1), E(z2, z3))) 85.12/33.94
REACH(x0, x1, x2) → c24(MEMBER(E(x0, x1), x2)) 85.12/33.94
REACH(x0, x1, Nil) → c24(REACH[ITE](False, x0, x1, Nil)) 85.12/33.94
VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) 85.12/33.94
VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5), !EQ'(S(0), S(S(z0)))) 85.12/33.94
VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(S(z0)), S(0))) 85.12/33.94
VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(0), S(0))) 85.12/33.94
VIA(S(x0), x1, Cons(E(S(x2), x3), x4), x5) → c17(!EQ'(S(x0), S(x2))) 85.12/33.94
REACH(z0, z1, Cons(E(z2, z3), x3)) → c24(REACH[ITE](member[Ite][False][Ite](eqEdge[Match][E][Match][E][Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1), E(z0, z1), Cons(E(z2, z3), x3)), z0, z1, Cons(E(z2, z3), x3)), MEMBER(E(z0, z1), Cons(E(z2, z3), x3)))
K tuples:
VIA(0, x1, Cons(E(S(z0), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) 85.12/33.94
VIA(S(z0), x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) 85.12/33.94
VIA(0, x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) 85.12/33.94
REACH(x0, x1, Nil) → c24(REACH[ITE](False, x0, x1, Nil)) 85.12/33.94
VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) 85.12/33.94
VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5), !EQ'(S(0), S(S(z0)))) 85.12/33.94
VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(S(z0)), S(0))) 85.12/33.94
VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(0), S(0)))
Defined Rule Symbols:
REACH(x0, x1, x2) → c24(MEMBER(E(x0, x1), x2)) 85.12/33.94
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z0, z2)) 85.12/33.94
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z1, z3)) 85.12/33.94
MEMBER(E(z0, z1), Cons(E(z2, z3), x2)) → c19(EQEDGE(E(z0, z1), E(z2, z3))) 85.12/33.94
REACH(x0, x1, Cons(z1, z2)) → c24(REACH[ITE](member[Ite][False][Ite](eqEdge(E(x0, x1), z1), E(x0, x1), Cons(z1, z2)), x0, x1, Cons(z1, z2)), MEMBER(E(x0, x1), Cons(z1, z2))) 85.12/33.94
VIA(S(x0), x1, Cons(E(S(x2), x3), x4), x5) → c17(!EQ'(S(x0), S(x2)))
getNodeFromEdge, via, member, eqEdge, notEmpty, reach, goal, !EQ, and, via[Ite][False][Ite], member[Ite][False][Ite], reach[Ite]
!EQ', VIA[ITE][FALSE][ITE], REACH[ITE], EQEDGE, VIA, MEMBER, REACH
c, c8, c9, c12, c1, c17, c19, c24, c17, c24
Tuples:
!EQ(S(z0), S(z1)) → !EQ(z0, z1) 85.12/33.94
!EQ(0, S(z0)) → False 85.12/33.94
!EQ(S(z0), 0) → False 85.12/33.94
!EQ(0, 0) → True 85.12/33.94
and(False, False) → False 85.12/33.94
and(True, False) → False 85.12/33.94
and(False, True) → False 85.12/33.94
and(True, True) → True 85.12/33.94
via[Ite][False][Ite](True, z0, z1, Cons(E(z2, z3), z4), z5) → via[Ite][False][Ite][True][Let](z0, z1, Cons(E(z2, z3), z4), z5, reach(z3, z1, z5)) 85.12/33.94
via[Ite][False][Ite](False, z0, z1, Cons(z2, z3), z4) → via(z0, z1, z3, z4) 85.12/33.94
member[Ite][False][Ite](False, z0, Cons(z1, z2)) → member(z0, z2) 85.12/33.94
member[Ite][False][Ite](True, z0, z1) → True 85.12/33.94
reach[Ite](False, z0, z1, z2) → via(z0, z1, z2, z2) 85.12/33.94
reach[Ite](True, z0, z1, z2) → Cons(E(z0, z1), Nil) 85.12/33.94
getNodeFromEdge(S(S(z0)), E(z1, z2)) → z2 85.12/33.94
getNodeFromEdge(S(0), E(z0, z1)) → z0 85.12/33.94
getNodeFromEdge(0, E(z0, z1)) → z0 85.12/33.94
via(z0, z1, Cons(E(z2, z3), z4), z5) → via[Ite][False][Ite](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5) 85.12/33.94
via(z0, z1, Nil, z2) → Nil 85.12/33.94
member(z0, Cons(z1, z2)) → member[Ite][False][Ite](eqEdge(z0, z1), z0, Cons(z1, z2)) 85.12/33.94
member(z0, Nil) → False 85.12/33.94
eqEdge(E(z0, z1), E(z2, z3)) → eqEdge[Match][E][Match][E][Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1) 85.12/33.94
notEmpty(Cons(z0, z1)) → True 85.12/33.94
notEmpty(Nil) → False 85.12/33.94
reach(z0, z1, z2) → reach[Ite](member(E(z0, z1), z2), z0, z1, z2) 85.12/33.94
goal(z0, z1, z2) → reach(z0, z1, z2)
S tuples:
!EQ'(S(z0), S(z1)) → c(!EQ'(z0, z1)) 85.12/33.94
VIA[ITE][FALSE][ITE](True, z0, z1, Cons(E(z2, z3), z4), z5) → c8(REACH(z3, z1, z5)) 85.12/33.94
VIA[ITE][FALSE][ITE](False, z0, z1, Cons(z2, z3), z4) → c9(VIA(z0, z1, z3, z4)) 85.12/33.94
REACH[ITE](False, z0, z1, z2) → c12(VIA(z0, z1, z2, z2)) 85.12/33.94
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z0, z2)) 85.12/33.94
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z1, z3)) 85.12/33.94
VIA(0, x1, Cons(E(S(z0), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) 85.12/33.94
VIA(S(z0), x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) 85.12/33.94
VIA(0, x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) 85.12/33.94
MEMBER(E(z0, z1), Cons(E(z2, z3), x2)) → c19(EQEDGE(E(z0, z1), E(z2, z3))) 85.12/33.94
REACH(x0, x1, x2) → c24(MEMBER(E(x0, x1), x2)) 85.12/33.94
REACH(x0, x1, Nil) → c24(REACH[ITE](False, x0, x1, Nil)) 85.12/33.94
VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) 85.12/33.94
VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5), !EQ'(S(0), S(S(z0)))) 85.12/33.94
VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(S(z0)), S(0))) 85.12/33.94
VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(0), S(0))) 85.12/33.94
VIA(S(x0), x1, Cons(E(S(x2), x3), x4), x5) → c17(!EQ'(S(x0), S(x2))) 85.12/33.94
REACH(z0, z1, Cons(E(z2, z3), x3)) → c24(MEMBER(E(z0, z1), Cons(E(z2, z3), x3)))
K tuples:
VIA(0, x1, Cons(E(S(z0), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) 85.12/33.94
VIA(S(z0), x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) 85.12/33.94
VIA(0, x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) 85.12/33.94
REACH(x0, x1, Nil) → c24(REACH[ITE](False, x0, x1, Nil)) 85.12/33.94
VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) 85.12/33.94
VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5), !EQ'(S(0), S(S(z0)))) 85.12/33.94
VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(S(z0)), S(0))) 85.12/33.94
VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(0), S(0)))
Defined Rule Symbols:
REACH(x0, x1, x2) → c24(MEMBER(E(x0, x1), x2)) 85.12/33.94
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z0, z2)) 85.12/33.94
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z1, z3)) 85.12/33.94
MEMBER(E(z0, z1), Cons(E(z2, z3), x2)) → c19(EQEDGE(E(z0, z1), E(z2, z3))) 85.12/33.94
REACH(x0, x1, Cons(z1, z2)) → c24(REACH[ITE](member[Ite][False][Ite](eqEdge(E(x0, x1), z1), E(x0, x1), Cons(z1, z2)), x0, x1, Cons(z1, z2)), MEMBER(E(x0, x1), Cons(z1, z2))) 85.12/33.94
VIA(S(x0), x1, Cons(E(S(x2), x3), x4), x5) → c17(!EQ'(S(x0), S(x2)))
getNodeFromEdge, via, member, eqEdge, notEmpty, reach, goal, !EQ, and, via[Ite][False][Ite], member[Ite][False][Ite], reach[Ite]
!EQ', VIA[ITE][FALSE][ITE], REACH[ITE], EQEDGE, VIA, MEMBER, REACH
c, c8, c9, c12, c1, c17, c19, c24, c17
We considered the (Usable) Rules:
VIA(0, x1, Cons(E(S(z0), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) 85.12/33.94
VIA(S(z0), x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) 85.12/33.94
VIA(0, x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) 85.12/33.94
VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) 85.12/33.94
VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5), !EQ'(S(0), S(S(z0)))) 85.12/33.94
VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(S(z0)), S(0))) 85.12/33.94
VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(0), S(0)))
And the Tuples:
!EQ(S(z0), S(z1)) → !EQ(z0, z1) 85.12/33.94
!EQ(0, S(z0)) → False 85.12/33.94
!EQ(S(z0), 0) → False 85.12/33.94
!EQ(0, 0) → True
The order we found is given by the following interpretation:
!EQ'(S(z0), S(z1)) → c(!EQ'(z0, z1)) 85.12/33.94
VIA[ITE][FALSE][ITE](True, z0, z1, Cons(E(z2, z3), z4), z5) → c8(REACH(z3, z1, z5)) 85.12/33.94
VIA[ITE][FALSE][ITE](False, z0, z1, Cons(z2, z3), z4) → c9(VIA(z0, z1, z3, z4)) 85.12/33.94
REACH[ITE](False, z0, z1, z2) → c12(VIA(z0, z1, z2, z2)) 85.12/33.94
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z0, z2)) 85.12/33.94
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z1, z3)) 85.12/33.94
VIA(0, x1, Cons(E(S(z0), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) 85.12/33.94
VIA(S(z0), x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) 85.12/33.94
VIA(0, x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) 85.12/33.94
MEMBER(E(z0, z1), Cons(E(z2, z3), x2)) → c19(EQEDGE(E(z0, z1), E(z2, z3))) 85.12/33.94
REACH(x0, x1, x2) → c24(MEMBER(E(x0, x1), x2)) 85.12/33.94
REACH(x0, x1, Nil) → c24(REACH[ITE](False, x0, x1, Nil)) 85.12/33.94
VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) 85.12/33.94
VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5), !EQ'(S(0), S(S(z0)))) 85.12/33.94
VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(S(z0)), S(0))) 85.12/33.94
VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(0), S(0))) 85.12/33.94
VIA(S(x0), x1, Cons(E(S(x2), x3), x4), x5) → c17(!EQ'(S(x0), S(x2))) 85.12/33.94
REACH(z0, z1, Cons(E(z2, z3), x3)) → c24(MEMBER(E(z0, z1), Cons(E(z2, z3), x3)))
POL(!EQ(x1, x2)) = 0 85.12/33.94
POL(!EQ'(x1, x2)) = 0 85.12/33.94
POL(0) = 0 85.12/33.94
POL(Cons(x1, x2)) = [4] + x2 85.12/33.94
POL(E(x1, x2)) = 0 85.12/33.94
POL(EQEDGE(x1, x2)) = 0 85.12/33.94
POL(False) = 0 85.12/33.94
POL(MEMBER(x1, x2)) = 0 85.12/33.94
POL(Nil) = 0 85.12/33.94
POL(REACH(x1, x2, x3)) = [1] + [3]x2 85.12/33.94
POL(REACH[ITE](x1, x2, x3, x4)) = [1] + x1 + [3]x3 + x4 85.12/33.94
POL(S(x1)) = 0 85.12/33.94
POL(True) = 0 85.12/33.94
POL(VIA(x1, x2, x3, x4)) = [1] + [3]x2 + x3 85.12/33.94
POL(VIA[ITE][FALSE][ITE](x1, x2, x3, x4, x5)) = [3]x3 + x4 85.12/33.94
POL(c(x1)) = x1 85.12/33.94
POL(c1(x1)) = x1 85.12/33.94
POL(c12(x1)) = x1 85.12/33.94
POL(c17(x1)) = x1 85.12/33.94
POL(c17(x1, x2)) = x1 + x2 85.12/33.94
POL(c19(x1)) = x1 85.12/33.94
POL(c24(x1)) = x1 85.12/33.94
POL(c8(x1)) = x1 85.12/33.94
POL(c9(x1)) = x1
Tuples:
!EQ(S(z0), S(z1)) → !EQ(z0, z1) 85.12/33.94
!EQ(0, S(z0)) → False 85.12/33.94
!EQ(S(z0), 0) → False 85.12/33.94
!EQ(0, 0) → True 85.12/33.94
and(False, False) → False 85.12/33.94
and(True, False) → False 85.12/33.94
and(False, True) → False 85.12/33.94
and(True, True) → True 85.12/33.94
via[Ite][False][Ite](True, z0, z1, Cons(E(z2, z3), z4), z5) → via[Ite][False][Ite][True][Let](z0, z1, Cons(E(z2, z3), z4), z5, reach(z3, z1, z5)) 85.12/33.94
via[Ite][False][Ite](False, z0, z1, Cons(z2, z3), z4) → via(z0, z1, z3, z4) 85.12/33.94
member[Ite][False][Ite](False, z0, Cons(z1, z2)) → member(z0, z2) 85.12/33.94
member[Ite][False][Ite](True, z0, z1) → True 85.12/33.94
reach[Ite](False, z0, z1, z2) → via(z0, z1, z2, z2) 85.12/33.94
reach[Ite](True, z0, z1, z2) → Cons(E(z0, z1), Nil) 85.12/33.94
getNodeFromEdge(S(S(z0)), E(z1, z2)) → z2 85.12/33.94
getNodeFromEdge(S(0), E(z0, z1)) → z0 85.12/33.94
getNodeFromEdge(0, E(z0, z1)) → z0 85.12/33.94
via(z0, z1, Cons(E(z2, z3), z4), z5) → via[Ite][False][Ite](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5) 85.12/33.94
via(z0, z1, Nil, z2) → Nil 85.12/33.94
member(z0, Cons(z1, z2)) → member[Ite][False][Ite](eqEdge(z0, z1), z0, Cons(z1, z2)) 85.12/33.94
member(z0, Nil) → False 85.12/33.94
eqEdge(E(z0, z1), E(z2, z3)) → eqEdge[Match][E][Match][E][Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1) 85.12/33.94
notEmpty(Cons(z0, z1)) → True 85.12/33.94
notEmpty(Nil) → False 85.12/33.94
reach(z0, z1, z2) → reach[Ite](member(E(z0, z1), z2), z0, z1, z2) 85.12/33.94
goal(z0, z1, z2) → reach(z0, z1, z2)
S tuples:
!EQ'(S(z0), S(z1)) → c(!EQ'(z0, z1)) 85.12/33.94
VIA[ITE][FALSE][ITE](True, z0, z1, Cons(E(z2, z3), z4), z5) → c8(REACH(z3, z1, z5)) 85.12/33.94
VIA[ITE][FALSE][ITE](False, z0, z1, Cons(z2, z3), z4) → c9(VIA(z0, z1, z3, z4)) 85.12/33.94
REACH[ITE](False, z0, z1, z2) → c12(VIA(z0, z1, z2, z2)) 85.12/33.94
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z0, z2)) 85.12/33.94
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z1, z3)) 85.12/33.94
VIA(0, x1, Cons(E(S(z0), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) 85.12/33.94
VIA(S(z0), x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) 85.12/33.94
VIA(0, x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) 85.12/33.94
MEMBER(E(z0, z1), Cons(E(z2, z3), x2)) → c19(EQEDGE(E(z0, z1), E(z2, z3))) 85.12/33.94
REACH(x0, x1, x2) → c24(MEMBER(E(x0, x1), x2)) 85.12/33.94
REACH(x0, x1, Nil) → c24(REACH[ITE](False, x0, x1, Nil)) 85.12/33.94
VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) 85.12/33.94
VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5), !EQ'(S(0), S(S(z0)))) 85.12/33.94
VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(S(z0)), S(0))) 85.12/33.94
VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(0), S(0))) 85.12/33.94
VIA(S(x0), x1, Cons(E(S(x2), x3), x4), x5) → c17(!EQ'(S(x0), S(x2))) 85.12/33.94
REACH(z0, z1, Cons(E(z2, z3), x3)) → c24(MEMBER(E(z0, z1), Cons(E(z2, z3), x3)))
K tuples:
REACH(x0, x1, Nil) → c24(REACH[ITE](False, x0, x1, Nil))
Defined Rule Symbols:
REACH(x0, x1, x2) → c24(MEMBER(E(x0, x1), x2)) 85.12/33.94
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z0, z2)) 85.12/33.94
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z1, z3)) 85.12/33.94
MEMBER(E(z0, z1), Cons(E(z2, z3), x2)) → c19(EQEDGE(E(z0, z1), E(z2, z3))) 85.12/33.94
REACH(x0, x1, Cons(z1, z2)) → c24(REACH[ITE](member[Ite][False][Ite](eqEdge(E(x0, x1), z1), E(x0, x1), Cons(z1, z2)), x0, x1, Cons(z1, z2)), MEMBER(E(x0, x1), Cons(z1, z2))) 85.12/33.94
VIA(S(x0), x1, Cons(E(S(x2), x3), x4), x5) → c17(!EQ'(S(x0), S(x2))) 85.12/33.94
VIA(0, x1, Cons(E(S(z0), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) 85.12/33.94
VIA(S(z0), x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) 85.12/33.94
VIA(0, x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) 85.12/33.94
VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) 85.12/33.94
VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5), !EQ'(S(0), S(S(z0)))) 85.12/33.94
VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(S(z0)), S(0))) 85.12/33.94
VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(0), S(0)))
getNodeFromEdge, via, member, eqEdge, notEmpty, reach, goal, !EQ, and, via[Ite][False][Ite], member[Ite][False][Ite], reach[Ite]
!EQ', VIA[ITE][FALSE][ITE], REACH[ITE], EQEDGE, VIA, MEMBER, REACH
c, c8, c9, c12, c1, c17, c19, c24, c17
We considered the (Usable) Rules:
REACH(x0, x1, Nil) → c24(REACH[ITE](False, x0, x1, Nil))
And the Tuples:
!EQ(S(z0), S(z1)) → !EQ(z0, z1) 85.12/33.94
!EQ(0, S(z0)) → False 85.12/33.94
!EQ(S(z0), 0) → False 85.12/33.94
!EQ(0, 0) → True
The order we found is given by the following interpretation:
!EQ'(S(z0), S(z1)) → c(!EQ'(z0, z1)) 85.12/33.94
VIA[ITE][FALSE][ITE](True, z0, z1, Cons(E(z2, z3), z4), z5) → c8(REACH(z3, z1, z5)) 85.12/33.94
VIA[ITE][FALSE][ITE](False, z0, z1, Cons(z2, z3), z4) → c9(VIA(z0, z1, z3, z4)) 85.12/33.94
REACH[ITE](False, z0, z1, z2) → c12(VIA(z0, z1, z2, z2)) 85.12/33.94
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z0, z2)) 85.12/33.94
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z1, z3)) 85.12/33.94
VIA(0, x1, Cons(E(S(z0), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) 85.12/33.94
VIA(S(z0), x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) 85.12/33.94
VIA(0, x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) 85.12/33.94
MEMBER(E(z0, z1), Cons(E(z2, z3), x2)) → c19(EQEDGE(E(z0, z1), E(z2, z3))) 85.12/33.94
REACH(x0, x1, x2) → c24(MEMBER(E(x0, x1), x2)) 85.12/33.94
REACH(x0, x1, Nil) → c24(REACH[ITE](False, x0, x1, Nil)) 85.12/33.94
VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) 85.12/33.94
VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5), !EQ'(S(0), S(S(z0)))) 85.12/33.94
VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(S(z0)), S(0))) 85.12/33.94
VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(0), S(0))) 85.12/33.94
VIA(S(x0), x1, Cons(E(S(x2), x3), x4), x5) → c17(!EQ'(S(x0), S(x2))) 85.12/33.94
REACH(z0, z1, Cons(E(z2, z3), x3)) → c24(MEMBER(E(z0, z1), Cons(E(z2, z3), x3)))
POL(!EQ(x1, x2)) = 0 85.12/33.94
POL(!EQ'(x1, x2)) = 0 85.12/33.94
POL(0) = 0 85.12/33.94
POL(Cons(x1, x2)) = [4] + x2 85.12/33.94
POL(E(x1, x2)) = x2 85.12/33.94
POL(EQEDGE(x1, x2)) = [2]x1 85.12/33.94
POL(False) = 0 85.12/33.94
POL(MEMBER(x1, x2)) = [4]x1 85.12/33.94
POL(Nil) = 0 85.12/33.94
POL(REACH(x1, x2, x3)) = [2] + [4]x2 85.12/33.94
POL(REACH[ITE](x1, x2, x3, x4)) = [1] + x1 + [4]x3 + [4]x4 85.12/33.94
POL(S(x1)) = 0 85.12/33.94
POL(True) = 0 85.12/33.94
POL(VIA(x1, x2, x3, x4)) = [1] + [4]x2 + [4]x3 85.12/33.94
POL(VIA[ITE][FALSE][ITE](x1, x2, x3, x4, x5)) = [4]x3 + [4]x4 85.12/33.94
POL(c(x1)) = x1 85.12/33.94
POL(c1(x1)) = x1 85.12/33.94
POL(c12(x1)) = x1 85.12/33.94
POL(c17(x1)) = x1 85.12/33.94
POL(c17(x1, x2)) = x1 + x2 85.12/33.94
POL(c19(x1)) = x1 85.12/33.94
POL(c24(x1)) = x1 85.12/33.94
POL(c8(x1)) = x1 85.12/33.94
POL(c9(x1)) = x1
Tuples:
!EQ(S(z0), S(z1)) → !EQ(z0, z1) 85.12/33.94
!EQ(0, S(z0)) → False 85.12/33.94
!EQ(S(z0), 0) → False 85.12/33.94
!EQ(0, 0) → True 85.12/33.94
and(False, False) → False 85.12/33.94
and(True, False) → False 85.12/33.94
and(False, True) → False 85.12/33.94
and(True, True) → True 85.12/33.94
via[Ite][False][Ite](True, z0, z1, Cons(E(z2, z3), z4), z5) → via[Ite][False][Ite][True][Let](z0, z1, Cons(E(z2, z3), z4), z5, reach(z3, z1, z5)) 85.12/33.94
via[Ite][False][Ite](False, z0, z1, Cons(z2, z3), z4) → via(z0, z1, z3, z4) 85.12/33.94
member[Ite][False][Ite](False, z0, Cons(z1, z2)) → member(z0, z2) 85.12/33.94
member[Ite][False][Ite](True, z0, z1) → True 85.12/33.94
reach[Ite](False, z0, z1, z2) → via(z0, z1, z2, z2) 85.12/33.94
reach[Ite](True, z0, z1, z2) → Cons(E(z0, z1), Nil) 85.12/33.94
getNodeFromEdge(S(S(z0)), E(z1, z2)) → z2 85.12/33.94
getNodeFromEdge(S(0), E(z0, z1)) → z0 85.12/33.94
getNodeFromEdge(0, E(z0, z1)) → z0 85.12/33.94
via(z0, z1, Cons(E(z2, z3), z4), z5) → via[Ite][False][Ite](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5) 85.12/33.94
via(z0, z1, Nil, z2) → Nil 85.12/33.94
member(z0, Cons(z1, z2)) → member[Ite][False][Ite](eqEdge(z0, z1), z0, Cons(z1, z2)) 85.12/33.94
member(z0, Nil) → False 85.12/33.94
eqEdge(E(z0, z1), E(z2, z3)) → eqEdge[Match][E][Match][E][Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1) 85.12/33.94
notEmpty(Cons(z0, z1)) → True 85.12/33.94
notEmpty(Nil) → False 85.12/33.94
reach(z0, z1, z2) → reach[Ite](member(E(z0, z1), z2), z0, z1, z2) 85.12/33.94
goal(z0, z1, z2) → reach(z0, z1, z2)
S tuples:none
!EQ'(S(z0), S(z1)) → c(!EQ'(z0, z1)) 85.12/33.94
VIA[ITE][FALSE][ITE](True, z0, z1, Cons(E(z2, z3), z4), z5) → c8(REACH(z3, z1, z5)) 85.12/33.94
VIA[ITE][FALSE][ITE](False, z0, z1, Cons(z2, z3), z4) → c9(VIA(z0, z1, z3, z4)) 85.12/33.94
REACH[ITE](False, z0, z1, z2) → c12(VIA(z0, z1, z2, z2)) 85.12/33.94
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z0, z2)) 85.12/33.94
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z1, z3)) 85.12/33.94
VIA(0, x1, Cons(E(S(z0), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) 85.12/33.94
VIA(S(z0), x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) 85.12/33.94
VIA(0, x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) 85.12/33.94
MEMBER(E(z0, z1), Cons(E(z2, z3), x2)) → c19(EQEDGE(E(z0, z1), E(z2, z3))) 85.12/33.94
REACH(x0, x1, x2) → c24(MEMBER(E(x0, x1), x2)) 85.12/33.94
REACH(x0, x1, Nil) → c24(REACH[ITE](False, x0, x1, Nil)) 85.12/33.94
VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) 85.12/33.94
VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5), !EQ'(S(0), S(S(z0)))) 85.12/33.94
VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(S(z0)), S(0))) 85.12/33.94
VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(0), S(0))) 85.12/33.94
VIA(S(x0), x1, Cons(E(S(x2), x3), x4), x5) → c17(!EQ'(S(x0), S(x2))) 85.12/33.94
REACH(z0, z1, Cons(E(z2, z3), x3)) → c24(MEMBER(E(z0, z1), Cons(E(z2, z3), x3)))
Defined Rule Symbols:
REACH(x0, x1, x2) → c24(MEMBER(E(x0, x1), x2)) 85.12/33.94
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z0, z2)) 85.12/33.94
EQEDGE(E(z0, z1), E(z2, z3)) → c1(!EQ'(z1, z3)) 85.12/33.94
MEMBER(E(z0, z1), Cons(E(z2, z3), x2)) → c19(EQEDGE(E(z0, z1), E(z2, z3))) 85.12/33.94
REACH(x0, x1, Cons(z1, z2)) → c24(REACH[ITE](member[Ite][False][Ite](eqEdge(E(x0, x1), z1), E(x0, x1), Cons(z1, z2)), x0, x1, Cons(z1, z2)), MEMBER(E(x0, x1), Cons(z1, z2))) 85.12/33.94
VIA(S(x0), x1, Cons(E(S(x2), x3), x4), x5) → c17(!EQ'(S(x0), S(x2))) 85.12/33.94
VIA(0, x1, Cons(E(S(z0), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) 85.12/33.94
VIA(S(z0), x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) 85.12/33.94
VIA(0, x1, Cons(E(0, x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) 85.12/33.94
VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) 85.12/33.94
VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5), !EQ'(S(0), S(S(z0)))) 85.12/33.94
VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(S(z0)), S(0))) 85.12/33.94
VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) → c17(VIA[ITE][FALSE][ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(0), S(0))) 85.12/33.94
REACH(x0, x1, Nil) → c24(REACH[ITE](False, x0, x1, Nil))
getNodeFromEdge, via, member, eqEdge, notEmpty, reach, goal, !EQ, and, via[Ite][False][Ite], member[Ite][False][Ite], reach[Ite]
!EQ', VIA[ITE][FALSE][ITE], REACH[ITE], EQEDGE, VIA, MEMBER, REACH
c, c8, c9, c12, c1, c17, c19, c24, c17