KILLED proof of input_BwcczGZ9G6.trs # AProVE Commit ID: aff8ecad908e01718a4c36e68d2e55d5e0f16e15 fuhs 20220216 unpublished The Runtime Complexity (parallel-innermost) of the given CpxRelTRS could be proven to be BOUNDS(1, INF). (0) CpxRelTRS (1) SInnermostTerminationProof [BOTH CONCRETE BOUNDS(ID, ID), 458 ms] (2) CpxRelTRS (3) RenamingProof [BOTH BOUNDS(ID, ID), 0 ms] (4) CpxRelTRS (5) RelTrsToTrsProof [UPPER BOUND(ID), 0 ms] (6) CpxTRS (7) RelTrsToWeightedTrsProof [UPPER BOUND(ID), 0 ms] (8) CpxWeightedTrs (9) TypeInferenceProof [BOTH BOUNDS(ID, ID), 0 ms] (10) CpxTypedWeightedTrs (11) CompletionProof [UPPER BOUND(ID), 0 ms] (12) CpxTypedWeightedCompleteTrs (13) NarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (14) CpxTypedWeightedCompleteTrs (15) CpxTypedWeightedTrsToRntsProof [UPPER BOUND(ID), 19 ms] (16) CpxRNTS (17) InliningProof [UPPER BOUND(ID), 5 ms] (18) CpxRNTS (19) SimplificationProof [BOTH BOUNDS(ID, ID), 41 ms] (20) CpxRNTS (21) CompletionProof [UPPER BOUND(ID), 0 ms] (22) CpxTypedWeightedCompleteTrs (23) CpxTypedWeightedTrsToRntsProof [UPPER BOUND(ID), 0 ms] (24) CpxRNTS (25) CpxTrsToCdtProof [UPPER BOUND(ID), 0 ms] (26) CdtProblem (27) CdtLeafRemovalProof [ComplexityIfPolyImplication, 0 ms] (28) CdtProblem (29) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (30) CdtProblem (31) CdtUsableRulesProof [BOTH BOUNDS(ID, ID), 0 ms] (32) CdtProblem (33) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (34) CdtProblem (35) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (36) CdtProblem (37) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (38) CdtProblem (39) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (40) CdtProblem (41) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (42) CdtProblem (43) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (44) CdtProblem (45) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (46) CdtProblem (47) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (48) CdtProblem (49) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (50) CdtProblem (51) CdtInstantiationProof [BOTH BOUNDS(ID, ID), 0 ms] (52) CdtProblem (53) CdtRewritingProof [BOTH BOUNDS(ID, ID), 0 ms] (54) CdtProblem (55) CdtInstantiationProof [BOTH BOUNDS(ID, ID), 0 ms] (56) CdtProblem (57) CdtInstantiationProof [BOTH BOUNDS(ID, ID), 0 ms] (58) CdtProblem (59) CdtInstantiationProof [BOTH BOUNDS(ID, ID), 0 ms] (60) CdtProblem (61) CdtGraphSplitRhsProof [BOTH BOUNDS(ID, ID), 0 ms] (62) CdtProblem (63) CdtInstantiationProof [BOTH BOUNDS(ID, ID), 0 ms] (64) CdtProblem (65) CdtRewritingProof [BOTH BOUNDS(ID, ID), 0 ms] (66) CdtProblem (67) CdtForwardInstantiationProof [BOTH BOUNDS(ID, ID), 0 ms] (68) CdtProblem (69) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (70) CdtProblem (71) CdtInstantiationProof [BOTH BOUNDS(ID, ID), 0 ms] (72) CdtProblem (73) CdtInstantiationProof [BOTH BOUNDS(ID, ID), 0 ms] (74) CdtProblem (75) CdtInstantiationProof [BOTH BOUNDS(ID, ID), 0 ms] (76) CdtProblem (77) CdtInstantiationProof [BOTH BOUNDS(ID, ID), 0 ms] (78) CdtProblem (79) CdtInstantiationProof [BOTH BOUNDS(ID, ID), 0 ms] (80) CdtProblem (81) CdtInstantiationProof [BOTH BOUNDS(ID, ID), 0 ms] (82) CdtProblem (83) CdtForwardInstantiationProof [BOTH BOUNDS(ID, ID), 0 ms] (84) CdtProblem (85) CdtForwardInstantiationProof [BOTH BOUNDS(ID, ID), 0 ms] (86) CdtProblem (87) CdtInstantiationProof [BOTH BOUNDS(ID, ID), 0 ms] (88) CdtProblem (89) CdtForwardInstantiationProof [BOTH BOUNDS(ID, ID), 0 ms] (90) CdtProblem (91) CdtForwardInstantiationProof [BOTH BOUNDS(ID, ID), 0 ms] (92) CdtProblem (93) CdtForwardInstantiationProof [BOTH BOUNDS(ID, ID), 0 ms] (94) CdtProblem (95) CdtForwardInstantiationProof [BOTH BOUNDS(ID, ID), 0 ms] (96) CdtProblem (97) CdtForwardInstantiationProof [BOTH BOUNDS(ID, ID), 0 ms] (98) CdtProblem (99) CdtForwardInstantiationProof [BOTH BOUNDS(ID, ID), 0 ms] (100) CdtProblem (101) CdtForwardInstantiationProof [BOTH BOUNDS(ID, ID), 0 ms] (102) CdtProblem (103) CdtForwardInstantiationProof [BOTH BOUNDS(ID, ID), 0 ms] (104) CdtProblem (105) CdtForwardInstantiationProof [BOTH BOUNDS(ID, ID), 0 ms] (106) CdtProblem (107) CdtForwardInstantiationProof [BOTH BOUNDS(ID, ID), 0 ms] (108) CdtProblem (109) CdtForwardInstantiationProof [BOTH BOUNDS(ID, ID), 0 ms] (110) CdtProblem (111) CdtForwardInstantiationProof [BOTH BOUNDS(ID, ID), 0 ms] (112) CdtProblem (113) CdtForwardInstantiationProof [BOTH BOUNDS(ID, ID), 0 ms] (114) CdtProblem (115) CdtForwardInstantiationProof [BOTH BOUNDS(ID, ID), 0 ms] (116) CdtProblem (117) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (118) CdtProblem (119) CdtForwardInstantiationProof [BOTH BOUNDS(ID, ID), 22 ms] (120) CdtProblem (121) CdtForwardInstantiationProof [BOTH BOUNDS(ID, ID), 36 ms] (122) CdtProblem (123) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (124) CdtProblem (125) CdtForwardInstantiationProof [BOTH BOUNDS(ID, ID), 0 ms] (126) CdtProblem (127) CdtRewritingProof [BOTH BOUNDS(ID, ID), 25 ms] (128) CdtProblem (129) CdtRewritingProof [BOTH BOUNDS(ID, ID), 45 ms] (130) CdtProblem (131) CdtForwardInstantiationProof [BOTH BOUNDS(ID, ID), 0 ms] (132) CdtProblem (133) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (134) CdtProblem ---------------------------------------- (0) Obligation: The Runtime Complexity (parallel-innermost) of the given CpxRelTRS could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: getNodeFromEdge(S(S(x')), E(x, y)) -> y via(u, v, Cons(E(x, y), xs), edges) -> via[Ite](!EQ(u, x), u, v, Cons(E(x, y), xs), edges) getNodeFromEdge(S(0), E(x, y)) -> x member(x', Cons(x, xs)) -> member[Ite](eqEdge(x', x), x', Cons(x, xs)) getNodeFromEdge(0, E(x, y)) -> x eqEdge(E(e11, e12), E(e21, e22)) -> eqEdge[Ite](and(!EQ(e11, e21), !EQ(e12, e22)), e21, e22, e11, e12) via(u, v, Nil, edges) -> Nil notEmpty(Cons(x, xs)) -> True notEmpty(Nil) -> False member(x, Nil) -> False reach(u, v, edges) -> reach[Ite](member(E(u, v), edges), u, v, edges) goal(u, v, edges) -> reach(u, v, edges) The (relative) TRS S consists of the following rules: !EQ(S(x), S(y)) -> !EQ(x, y) !EQ(0, S(y)) -> False !EQ(S(x), 0) -> False !EQ(0, 0) -> True and(False, False) -> False and(True, False) -> False and(False, True) -> False and(True, True) -> True via[Ite](True, u, v, Cons(E(x, y), xs), edges) -> via[Let](u, v, Cons(E(x, y), xs), edges, reach(y, v, edges)) via[Let](u, v, Cons(x, xs), edges, Nil) -> via(u, v, xs, edges) via[Let](u, v, Cons(x, xs), edges, Cons(x', xs')) -> Cons(x, Cons(x', xs')) via[Ite](False, u, v, Cons(x, xs), edges) -> via(u, v, xs, edges) member[Ite](False, x', Cons(x, xs)) -> member(x', xs) reach[Ite](False, u, v, edges) -> via(u, v, edges, edges) reach[Ite](True, u, v, edges) -> Cons(E(u, v), Nil) member[Ite](True, x, xs) -> True eqEdge[Ite](False, e21, e22, e11, e12) -> False eqEdge[Ite](True, e21, e22, e11, e12) -> True Rewrite Strategy: PARALLEL_INNERMOST ---------------------------------------- (1) SInnermostTerminationProof (BOTH CONCRETE BOUNDS(ID, ID)) proved innermost termination of relative rules ---------------------------------------- (2) Obligation: The Runtime Complexity (parallel-innermost) of the given CpxRelTRS could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: getNodeFromEdge(S(S(x')), E(x, y)) -> y via(u, v, Cons(E(x, y), xs), edges) -> via[Ite](!EQ(u, x), u, v, Cons(E(x, y), xs), edges) getNodeFromEdge(S(0), E(x, y)) -> x member(x', Cons(x, xs)) -> member[Ite](eqEdge(x', x), x', Cons(x, xs)) getNodeFromEdge(0, E(x, y)) -> x eqEdge(E(e11, e12), E(e21, e22)) -> eqEdge[Ite](and(!EQ(e11, e21), !EQ(e12, e22)), e21, e22, e11, e12) via(u, v, Nil, edges) -> Nil notEmpty(Cons(x, xs)) -> True notEmpty(Nil) -> False member(x, Nil) -> False reach(u, v, edges) -> reach[Ite](member(E(u, v), edges), u, v, edges) goal(u, v, edges) -> reach(u, v, edges) The (relative) TRS S consists of the following rules: !EQ(S(x), S(y)) -> !EQ(x, y) !EQ(0, S(y)) -> False !EQ(S(x), 0) -> False !EQ(0, 0) -> True and(False, False) -> False and(True, False) -> False and(False, True) -> False and(True, True) -> True via[Ite](True, u, v, Cons(E(x, y), xs), edges) -> via[Let](u, v, Cons(E(x, y), xs), edges, reach(y, v, edges)) via[Let](u, v, Cons(x, xs), edges, Nil) -> via(u, v, xs, edges) via[Let](u, v, Cons(x, xs), edges, Cons(x', xs')) -> Cons(x, Cons(x', xs')) via[Ite](False, u, v, Cons(x, xs), edges) -> via(u, v, xs, edges) member[Ite](False, x', Cons(x, xs)) -> member(x', xs) reach[Ite](False, u, v, edges) -> via(u, v, edges, edges) reach[Ite](True, u, v, edges) -> Cons(E(u, v), Nil) member[Ite](True, x, xs) -> True eqEdge[Ite](False, e21, e22, e11, e12) -> False eqEdge[Ite](True, e21, e22, e11, e12) -> True Rewrite Strategy: PARALLEL_INNERMOST ---------------------------------------- (3) RenamingProof (BOTH BOUNDS(ID, ID)) Renamed function symbols to avoid clashes with predefined symbol. ---------------------------------------- (4) Obligation: The Runtime Complexity (parallel-innermost) of the given CpxRelTRS could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: getNodeFromEdge(S(S(x')), E(x, y)) -> y via(u, v, Cons(E(x, y), xs), edges) -> via[Ite](!EQ(u, x), u, v, Cons(E(x, y), xs), edges) getNodeFromEdge(S(0'), E(x, y)) -> x member(x', Cons(x, xs)) -> member[Ite](eqEdge(x', x), x', Cons(x, xs)) getNodeFromEdge(0', E(x, y)) -> x eqEdge(E(e11, e12), E(e21, e22)) -> eqEdge[Ite](and(!EQ(e11, e21), !EQ(e12, e22)), e21, e22, e11, e12) via(u, v, Nil, edges) -> Nil notEmpty(Cons(x, xs)) -> True notEmpty(Nil) -> False member(x, Nil) -> False reach(u, v, edges) -> reach[Ite](member(E(u, v), edges), u, v, edges) goal(u, v, edges) -> reach(u, v, edges) The (relative) TRS S consists of the following rules: !EQ(S(x), S(y)) -> !EQ(x, y) !EQ(0', S(y)) -> False !EQ(S(x), 0') -> False !EQ(0', 0') -> True and(False, False) -> False and(True, False) -> False and(False, True) -> False and(True, True) -> True via[Ite](True, u, v, Cons(E(x, y), xs), edges) -> via[Let](u, v, Cons(E(x, y), xs), edges, reach(y, v, edges)) via[Let](u, v, Cons(x, xs), edges, Nil) -> via(u, v, xs, edges) via[Let](u, v, Cons(x, xs), edges, Cons(x', xs')) -> Cons(x, Cons(x', xs')) via[Ite](False, u, v, Cons(x, xs), edges) -> via(u, v, xs, edges) member[Ite](False, x', Cons(x, xs)) -> member(x', xs) reach[Ite](False, u, v, edges) -> via(u, v, edges, edges) reach[Ite](True, u, v, edges) -> Cons(E(u, v), Nil) member[Ite](True, x, xs) -> True eqEdge[Ite](False, e21, e22, e11, e12) -> False eqEdge[Ite](True, e21, e22, e11, e12) -> True Rewrite Strategy: PARALLEL_INNERMOST ---------------------------------------- (5) RelTrsToTrsProof (UPPER BOUND(ID)) transformed relative TRS to TRS ---------------------------------------- (6) Obligation: The Runtime Complexity (parallel-innermost) of the given CpxTRS could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: getNodeFromEdge(S(S(x')), E(x, y)) -> y via(u, v, Cons(E(x, y), xs), edges) -> via[Ite](!EQ(u, x), u, v, Cons(E(x, y), xs), edges) getNodeFromEdge(S(0), E(x, y)) -> x member(x', Cons(x, xs)) -> member[Ite](eqEdge(x', x), x', Cons(x, xs)) getNodeFromEdge(0, E(x, y)) -> x eqEdge(E(e11, e12), E(e21, e22)) -> eqEdge[Ite](and(!EQ(e11, e21), !EQ(e12, e22)), e21, e22, e11, e12) via(u, v, Nil, edges) -> Nil notEmpty(Cons(x, xs)) -> True notEmpty(Nil) -> False member(x, Nil) -> False reach(u, v, edges) -> reach[Ite](member(E(u, v), edges), u, v, edges) goal(u, v, edges) -> reach(u, v, edges) !EQ(S(x), S(y)) -> !EQ(x, y) !EQ(0, S(y)) -> False !EQ(S(x), 0) -> False !EQ(0, 0) -> True and(False, False) -> False and(True, False) -> False and(False, True) -> False and(True, True) -> True via[Ite](True, u, v, Cons(E(x, y), xs), edges) -> via[Let](u, v, Cons(E(x, y), xs), edges, reach(y, v, edges)) via[Let](u, v, Cons(x, xs), edges, Nil) -> via(u, v, xs, edges) via[Let](u, v, Cons(x, xs), edges, Cons(x', xs')) -> Cons(x, Cons(x', xs')) via[Ite](False, u, v, Cons(x, xs), edges) -> via(u, v, xs, edges) member[Ite](False, x', Cons(x, xs)) -> member(x', xs) reach[Ite](False, u, v, edges) -> via(u, v, edges, edges) reach[Ite](True, u, v, edges) -> Cons(E(u, v), Nil) member[Ite](True, x, xs) -> True eqEdge[Ite](False, e21, e22, e11, e12) -> False eqEdge[Ite](True, e21, e22, e11, e12) -> True S is empty. Rewrite Strategy: PARALLEL_INNERMOST ---------------------------------------- (7) RelTrsToWeightedTrsProof (UPPER BOUND(ID)) Transformed relative TRS to weighted TRS ---------------------------------------- (8) Obligation: The Runtime Complexity (innermost) of the given CpxWeightedTrs could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: getNodeFromEdge(S(S(x')), E(x, y)) -> y [1] via(u, v, Cons(E(x, y), xs), edges) -> via[Ite](!EQ(u, x), u, v, Cons(E(x, y), xs), edges) [1] getNodeFromEdge(S(0), E(x, y)) -> x [1] member(x', Cons(x, xs)) -> member[Ite](eqEdge(x', x), x', Cons(x, xs)) [1] getNodeFromEdge(0, E(x, y)) -> x [1] eqEdge(E(e11, e12), E(e21, e22)) -> eqEdge[Ite](and(!EQ(e11, e21), !EQ(e12, e22)), e21, e22, e11, e12) [1] via(u, v, Nil, edges) -> Nil [1] notEmpty(Cons(x, xs)) -> True [1] notEmpty(Nil) -> False [1] member(x, Nil) -> False [1] reach(u, v, edges) -> reach[Ite](member(E(u, v), edges), u, v, edges) [1] goal(u, v, edges) -> reach(u, v, edges) [1] !EQ(S(x), S(y)) -> !EQ(x, y) [0] !EQ(0, S(y)) -> False [0] !EQ(S(x), 0) -> False [0] !EQ(0, 0) -> True [0] and(False, False) -> False [0] and(True, False) -> False [0] and(False, True) -> False [0] and(True, True) -> True [0] via[Ite](True, u, v, Cons(E(x, y), xs), edges) -> via[Let](u, v, Cons(E(x, y), xs), edges, reach(y, v, edges)) [0] via[Let](u, v, Cons(x, xs), edges, Nil) -> via(u, v, xs, edges) [0] via[Let](u, v, Cons(x, xs), edges, Cons(x', xs')) -> Cons(x, Cons(x', xs')) [0] via[Ite](False, u, v, Cons(x, xs), edges) -> via(u, v, xs, edges) [0] member[Ite](False, x', Cons(x, xs)) -> member(x', xs) [0] reach[Ite](False, u, v, edges) -> via(u, v, edges, edges) [0] reach[Ite](True, u, v, edges) -> Cons(E(u, v), Nil) [0] member[Ite](True, x, xs) -> True [0] eqEdge[Ite](False, e21, e22, e11, e12) -> False [0] eqEdge[Ite](True, e21, e22, e11, e12) -> True [0] Rewrite Strategy: INNERMOST ---------------------------------------- (9) TypeInferenceProof (BOTH BOUNDS(ID, ID)) Infered types. ---------------------------------------- (10) Obligation: Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules: getNodeFromEdge(S(S(x')), E(x, y)) -> y [1] via(u, v, Cons(E(x, y), xs), edges) -> via[Ite](!EQ(u, x), u, v, Cons(E(x, y), xs), edges) [1] getNodeFromEdge(S(0), E(x, y)) -> x [1] member(x', Cons(x, xs)) -> member[Ite](eqEdge(x', x), x', Cons(x, xs)) [1] getNodeFromEdge(0, E(x, y)) -> x [1] eqEdge(E(e11, e12), E(e21, e22)) -> eqEdge[Ite](and(!EQ(e11, e21), !EQ(e12, e22)), e21, e22, e11, e12) [1] via(u, v, Nil, edges) -> Nil [1] notEmpty(Cons(x, xs)) -> True [1] notEmpty(Nil) -> False [1] member(x, Nil) -> False [1] reach(u, v, edges) -> reach[Ite](member(E(u, v), edges), u, v, edges) [1] goal(u, v, edges) -> reach(u, v, edges) [1] !EQ(S(x), S(y)) -> !EQ(x, y) [0] !EQ(0, S(y)) -> False [0] !EQ(S(x), 0) -> False [0] !EQ(0, 0) -> True [0] and(False, False) -> False [0] and(True, False) -> False [0] and(False, True) -> False [0] and(True, True) -> True [0] via[Ite](True, u, v, Cons(E(x, y), xs), edges) -> via[Let](u, v, Cons(E(x, y), xs), edges, reach(y, v, edges)) [0] via[Let](u, v, Cons(x, xs), edges, Nil) -> via(u, v, xs, edges) [0] via[Let](u, v, Cons(x, xs), edges, Cons(x', xs')) -> Cons(x, Cons(x', xs')) [0] via[Ite](False, u, v, Cons(x, xs), edges) -> via(u, v, xs, edges) [0] member[Ite](False, x', Cons(x, xs)) -> member(x', xs) [0] reach[Ite](False, u, v, edges) -> via(u, v, edges, edges) [0] reach[Ite](True, u, v, edges) -> Cons(E(u, v), Nil) [0] member[Ite](True, x, xs) -> True [0] eqEdge[Ite](False, e21, e22, e11, e12) -> False [0] eqEdge[Ite](True, e21, e22, e11, e12) -> True [0] The TRS has the following type information: getNodeFromEdge :: S:0 -> E -> S:0 S :: S:0 -> S:0 E :: S:0 -> S:0 -> E via :: S:0 -> S:0 -> Cons:Nil -> Cons:Nil -> Cons:Nil Cons :: E -> Cons:Nil -> Cons:Nil via[Ite] :: True:False -> S:0 -> S:0 -> Cons:Nil -> Cons:Nil -> Cons:Nil !EQ :: S:0 -> S:0 -> True:False 0 :: S:0 member :: E -> Cons:Nil -> True:False member[Ite] :: True:False -> E -> Cons:Nil -> True:False eqEdge :: E -> E -> True:False eqEdge[Ite] :: True:False -> S:0 -> S:0 -> S:0 -> S:0 -> True:False and :: True:False -> True:False -> True:False Nil :: Cons:Nil notEmpty :: Cons:Nil -> True:False True :: True:False False :: True:False reach :: S:0 -> S:0 -> Cons:Nil -> Cons:Nil reach[Ite] :: True:False -> S:0 -> S:0 -> Cons:Nil -> Cons:Nil goal :: S:0 -> S:0 -> Cons:Nil -> Cons:Nil via[Let] :: S:0 -> S:0 -> Cons:Nil -> Cons:Nil -> Cons:Nil -> Cons:Nil Rewrite Strategy: INNERMOST ---------------------------------------- (11) CompletionProof (UPPER BOUND(ID)) The transformation into a RNTS is sound, since: (a) The obligation is a constructor system where every type has a constant constructor, (b) The following defined symbols do not have to be completely defined, as they can never occur inside other defined symbols: getNodeFromEdge_2 notEmpty_1 goal_3 (c) The following functions are completely defined: member_2 reach_3 eqEdge_2 via_4 !EQ_2 and_2 via[Ite]_5 via[Let]_5 member[Ite]_3 reach[Ite]_4 eqEdge[Ite]_5 Due to the following rules being added: !EQ(v0, v1) -> null_!EQ [0] and(v0, v1) -> null_and [0] via[Ite](v0, v1, v2, v3, v4) -> Nil [0] via[Let](v0, v1, v2, v3, v4) -> Nil [0] member[Ite](v0, v1, v2) -> null_member[Ite] [0] reach[Ite](v0, v1, v2, v3) -> Nil [0] eqEdge[Ite](v0, v1, v2, v3, v4) -> null_eqEdge[Ite] [0] eqEdge(v0, v1) -> null_eqEdge [0] via(v0, v1, v2, v3) -> Nil [0] And the following fresh constants: null_!EQ, null_and, null_member[Ite], null_eqEdge[Ite], null_eqEdge, const ---------------------------------------- (12) Obligation: Runtime Complexity Weighted TRS where critical functions are completely defined. The underlying TRS is: Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules: getNodeFromEdge(S(S(x')), E(x, y)) -> y [1] via(u, v, Cons(E(x, y), xs), edges) -> via[Ite](!EQ(u, x), u, v, Cons(E(x, y), xs), edges) [1] getNodeFromEdge(S(0), E(x, y)) -> x [1] member(x', Cons(x, xs)) -> member[Ite](eqEdge(x', x), x', Cons(x, xs)) [1] getNodeFromEdge(0, E(x, y)) -> x [1] eqEdge(E(e11, e12), E(e21, e22)) -> eqEdge[Ite](and(!EQ(e11, e21), !EQ(e12, e22)), e21, e22, e11, e12) [1] via(u, v, Nil, edges) -> Nil [1] notEmpty(Cons(x, xs)) -> True [1] notEmpty(Nil) -> False [1] member(x, Nil) -> False [1] reach(u, v, edges) -> reach[Ite](member(E(u, v), edges), u, v, edges) [1] goal(u, v, edges) -> reach(u, v, edges) [1] !EQ(S(x), S(y)) -> !EQ(x, y) [0] !EQ(0, S(y)) -> False [0] !EQ(S(x), 0) -> False [0] !EQ(0, 0) -> True [0] and(False, False) -> False [0] and(True, False) -> False [0] and(False, True) -> False [0] and(True, True) -> True [0] via[Ite](True, u, v, Cons(E(x, y), xs), edges) -> via[Let](u, v, Cons(E(x, y), xs), edges, reach(y, v, edges)) [0] via[Let](u, v, Cons(x, xs), edges, Nil) -> via(u, v, xs, edges) [0] via[Let](u, v, Cons(x, xs), edges, Cons(x', xs')) -> Cons(x, Cons(x', xs')) [0] via[Ite](False, u, v, Cons(x, xs), edges) -> via(u, v, xs, edges) [0] member[Ite](False, x', Cons(x, xs)) -> member(x', xs) [0] reach[Ite](False, u, v, edges) -> via(u, v, edges, edges) [0] reach[Ite](True, u, v, edges) -> Cons(E(u, v), Nil) [0] member[Ite](True, x, xs) -> True [0] eqEdge[Ite](False, e21, e22, e11, e12) -> False [0] eqEdge[Ite](True, e21, e22, e11, e12) -> True [0] !EQ(v0, v1) -> null_!EQ [0] and(v0, v1) -> null_and [0] via[Ite](v0, v1, v2, v3, v4) -> Nil [0] via[Let](v0, v1, v2, v3, v4) -> Nil [0] member[Ite](v0, v1, v2) -> null_member[Ite] [0] reach[Ite](v0, v1, v2, v3) -> Nil [0] eqEdge[Ite](v0, v1, v2, v3, v4) -> null_eqEdge[Ite] [0] eqEdge(v0, v1) -> null_eqEdge [0] via(v0, v1, v2, v3) -> Nil [0] The TRS has the following type information: getNodeFromEdge :: S:0 -> E -> S:0 S :: S:0 -> S:0 E :: S:0 -> S:0 -> E via :: S:0 -> S:0 -> Cons:Nil -> Cons:Nil -> Cons:Nil Cons :: E -> Cons:Nil -> Cons:Nil via[Ite] :: True:False:null_!EQ:null_and:null_member[Ite]:null_eqEdge[Ite]:null_eqEdge -> S:0 -> S:0 -> Cons:Nil -> Cons:Nil -> Cons:Nil !EQ :: S:0 -> S:0 -> True:False:null_!EQ:null_and:null_member[Ite]:null_eqEdge[Ite]:null_eqEdge 0 :: S:0 member :: E -> Cons:Nil -> True:False:null_!EQ:null_and:null_member[Ite]:null_eqEdge[Ite]:null_eqEdge member[Ite] :: True:False:null_!EQ:null_and:null_member[Ite]:null_eqEdge[Ite]:null_eqEdge -> E -> Cons:Nil -> True:False:null_!EQ:null_and:null_member[Ite]:null_eqEdge[Ite]:null_eqEdge eqEdge :: E -> E -> True:False:null_!EQ:null_and:null_member[Ite]:null_eqEdge[Ite]:null_eqEdge eqEdge[Ite] :: True:False:null_!EQ:null_and:null_member[Ite]:null_eqEdge[Ite]:null_eqEdge -> S:0 -> S:0 -> S:0 -> S:0 -> True:False:null_!EQ:null_and:null_member[Ite]:null_eqEdge[Ite]:null_eqEdge and :: True:False:null_!EQ:null_and:null_member[Ite]:null_eqEdge[Ite]:null_eqEdge -> True:False:null_!EQ:null_and:null_member[Ite]:null_eqEdge[Ite]:null_eqEdge -> True:False:null_!EQ:null_and:null_member[Ite]:null_eqEdge[Ite]:null_eqEdge Nil :: Cons:Nil notEmpty :: Cons:Nil -> True:False:null_!EQ:null_and:null_member[Ite]:null_eqEdge[Ite]:null_eqEdge True :: True:False:null_!EQ:null_and:null_member[Ite]:null_eqEdge[Ite]:null_eqEdge False :: True:False:null_!EQ:null_and:null_member[Ite]:null_eqEdge[Ite]:null_eqEdge reach :: S:0 -> S:0 -> Cons:Nil -> Cons:Nil reach[Ite] :: True:False:null_!EQ:null_and:null_member[Ite]:null_eqEdge[Ite]:null_eqEdge -> S:0 -> S:0 -> Cons:Nil -> Cons:Nil goal :: S:0 -> S:0 -> Cons:Nil -> Cons:Nil via[Let] :: S:0 -> S:0 -> Cons:Nil -> Cons:Nil -> Cons:Nil -> Cons:Nil null_!EQ :: True:False:null_!EQ:null_and:null_member[Ite]:null_eqEdge[Ite]:null_eqEdge null_and :: True:False:null_!EQ:null_and:null_member[Ite]:null_eqEdge[Ite]:null_eqEdge null_member[Ite] :: True:False:null_!EQ:null_and:null_member[Ite]:null_eqEdge[Ite]:null_eqEdge null_eqEdge[Ite] :: True:False:null_!EQ:null_and:null_member[Ite]:null_eqEdge[Ite]:null_eqEdge null_eqEdge :: True:False:null_!EQ:null_and:null_member[Ite]:null_eqEdge[Ite]:null_eqEdge const :: E Rewrite Strategy: INNERMOST ---------------------------------------- (13) NarrowingProof (BOTH BOUNDS(ID, ID)) Narrowed the inner basic terms of all right-hand sides by a single narrowing step. ---------------------------------------- (14) Obligation: Runtime Complexity Weighted TRS where critical functions are completely defined. The underlying TRS is: Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules: getNodeFromEdge(S(S(x')), E(x, y)) -> y [1] via(S(x''), v, Cons(E(S(y'), y), xs), edges) -> via[Ite](!EQ(x'', y'), S(x''), v, Cons(E(S(y'), y), xs), edges) [1] via(0, v, Cons(E(S(y''), y), xs), edges) -> via[Ite](False, 0, v, Cons(E(S(y''), y), xs), edges) [1] via(S(x1), v, Cons(E(0, y), xs), edges) -> via[Ite](False, S(x1), v, Cons(E(0, y), xs), edges) [1] via(0, v, Cons(E(0, y), xs), edges) -> via[Ite](True, 0, v, Cons(E(0, y), xs), edges) [1] via(u, v, Cons(E(x, y), xs), edges) -> via[Ite](null_!EQ, u, v, Cons(E(x, y), xs), edges) [1] getNodeFromEdge(S(0), E(x, y)) -> x [1] member(E(e11', e12'), Cons(E(e21', e22'), xs)) -> member[Ite](eqEdge[Ite](and(!EQ(e11', e21'), !EQ(e12', e22')), e21', e22', e11', e12'), E(e11', e12'), Cons(E(e21', e22'), xs)) [2] member(x', Cons(x, xs)) -> member[Ite](null_eqEdge, x', Cons(x, xs)) [1] getNodeFromEdge(0, E(x, y)) -> x [1] eqEdge(E(e11, e12), E(e21, e22)) -> eqEdge[Ite](and(!EQ(e11, e21), !EQ(e12, e22)), e21, e22, e11, e12) [1] via(u, v, Nil, edges) -> Nil [1] notEmpty(Cons(x, xs)) -> True [1] notEmpty(Nil) -> False [1] member(x, Nil) -> False [1] reach(u, v, Cons(x14, xs'')) -> reach[Ite](member[Ite](eqEdge(E(u, v), x14), E(u, v), Cons(x14, xs'')), u, v, Cons(x14, xs'')) [2] reach(u, v, Nil) -> reach[Ite](False, u, v, Nil) [2] goal(u, v, edges) -> reach(u, v, edges) [1] !EQ(S(x), S(y)) -> !EQ(x, y) [0] !EQ(0, S(y)) -> False [0] !EQ(S(x), 0) -> False [0] !EQ(0, 0) -> True [0] and(False, False) -> False [0] and(True, False) -> False [0] and(False, True) -> False [0] and(True, True) -> True [0] via[Ite](True, u, v, Cons(E(x, y), xs), edges) -> via[Let](u, v, Cons(E(x, y), xs), edges, reach[Ite](member(E(y, v), edges), y, v, edges)) [1] via[Let](u, v, Cons(x, xs), edges, Nil) -> via(u, v, xs, edges) [0] via[Let](u, v, Cons(x, xs), edges, Cons(x', xs')) -> Cons(x, Cons(x', xs')) [0] via[Ite](False, u, v, Cons(x, xs), edges) -> via(u, v, xs, edges) [0] member[Ite](False, x', Cons(x, xs)) -> member(x', xs) [0] reach[Ite](False, u, v, edges) -> via(u, v, edges, edges) [0] reach[Ite](True, u, v, edges) -> Cons(E(u, v), Nil) [0] member[Ite](True, x, xs) -> True [0] eqEdge[Ite](False, e21, e22, e11, e12) -> False [0] eqEdge[Ite](True, e21, e22, e11, e12) -> True [0] !EQ(v0, v1) -> null_!EQ [0] and(v0, v1) -> null_and [0] via[Ite](v0, v1, v2, v3, v4) -> Nil [0] via[Let](v0, v1, v2, v3, v4) -> Nil [0] member[Ite](v0, v1, v2) -> null_member[Ite] [0] reach[Ite](v0, v1, v2, v3) -> Nil [0] eqEdge[Ite](v0, v1, v2, v3, v4) -> null_eqEdge[Ite] [0] eqEdge(v0, v1) -> null_eqEdge [0] via(v0, v1, v2, v3) -> Nil [0] The TRS has the following type information: getNodeFromEdge :: S:0 -> E -> S:0 S :: S:0 -> S:0 E :: S:0 -> S:0 -> E via :: S:0 -> S:0 -> Cons:Nil -> Cons:Nil -> Cons:Nil Cons :: E -> Cons:Nil -> Cons:Nil via[Ite] :: True:False:null_!EQ:null_and:null_member[Ite]:null_eqEdge[Ite]:null_eqEdge -> S:0 -> S:0 -> Cons:Nil -> Cons:Nil -> Cons:Nil !EQ :: S:0 -> S:0 -> True:False:null_!EQ:null_and:null_member[Ite]:null_eqEdge[Ite]:null_eqEdge 0 :: S:0 member :: E -> Cons:Nil -> True:False:null_!EQ:null_and:null_member[Ite]:null_eqEdge[Ite]:null_eqEdge member[Ite] :: True:False:null_!EQ:null_and:null_member[Ite]:null_eqEdge[Ite]:null_eqEdge -> E -> Cons:Nil -> True:False:null_!EQ:null_and:null_member[Ite]:null_eqEdge[Ite]:null_eqEdge eqEdge :: E -> E -> True:False:null_!EQ:null_and:null_member[Ite]:null_eqEdge[Ite]:null_eqEdge eqEdge[Ite] :: True:False:null_!EQ:null_and:null_member[Ite]:null_eqEdge[Ite]:null_eqEdge -> S:0 -> S:0 -> S:0 -> S:0 -> True:False:null_!EQ:null_and:null_member[Ite]:null_eqEdge[Ite]:null_eqEdge and :: True:False:null_!EQ:null_and:null_member[Ite]:null_eqEdge[Ite]:null_eqEdge -> True:False:null_!EQ:null_and:null_member[Ite]:null_eqEdge[Ite]:null_eqEdge -> True:False:null_!EQ:null_and:null_member[Ite]:null_eqEdge[Ite]:null_eqEdge Nil :: Cons:Nil notEmpty :: Cons:Nil -> True:False:null_!EQ:null_and:null_member[Ite]:null_eqEdge[Ite]:null_eqEdge True :: True:False:null_!EQ:null_and:null_member[Ite]:null_eqEdge[Ite]:null_eqEdge False :: True:False:null_!EQ:null_and:null_member[Ite]:null_eqEdge[Ite]:null_eqEdge reach :: S:0 -> S:0 -> Cons:Nil -> Cons:Nil reach[Ite] :: True:False:null_!EQ:null_and:null_member[Ite]:null_eqEdge[Ite]:null_eqEdge -> S:0 -> S:0 -> Cons:Nil -> Cons:Nil goal :: S:0 -> S:0 -> Cons:Nil -> Cons:Nil via[Let] :: S:0 -> S:0 -> Cons:Nil -> Cons:Nil -> Cons:Nil -> Cons:Nil null_!EQ :: True:False:null_!EQ:null_and:null_member[Ite]:null_eqEdge[Ite]:null_eqEdge null_and :: True:False:null_!EQ:null_and:null_member[Ite]:null_eqEdge[Ite]:null_eqEdge null_member[Ite] :: True:False:null_!EQ:null_and:null_member[Ite]:null_eqEdge[Ite]:null_eqEdge null_eqEdge[Ite] :: True:False:null_!EQ:null_and:null_member[Ite]:null_eqEdge[Ite]:null_eqEdge null_eqEdge :: True:False:null_!EQ:null_and:null_member[Ite]:null_eqEdge[Ite]:null_eqEdge const :: E Rewrite Strategy: INNERMOST ---------------------------------------- (15) CpxTypedWeightedTrsToRntsProof (UPPER BOUND(ID)) Transformed the TRS into an over-approximating RNTS by (improved) Size Abstraction. The constant constructors are abstracted as follows: 0 => 0 Nil => 0 True => 2 False => 1 null_!EQ => 0 null_and => 0 null_member[Ite] => 0 null_eqEdge[Ite] => 0 null_eqEdge => 0 const => 0 ---------------------------------------- (16) Obligation: Complexity RNTS consisting of the following rules: !EQ(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 !EQ(z, z') -{ 0 }-> 1 :|: z' = 1 + y, y >= 0, z = 0 !EQ(z, z') -{ 0 }-> 1 :|: x >= 0, z = 1 + x, z' = 0 !EQ(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 !EQ(z, z') -{ 0 }-> !EQ(x, y) :|: z' = 1 + y, x >= 0, y >= 0, z = 1 + x and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 and(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 eqEdge(z, z') -{ 1 }-> eqEdge[Ite](and(!EQ(e11, e21), !EQ(e12, e22)), e21, e22, e11, e12) :|: e21 >= 0, z = 1 + e11 + e12, e11 >= 0, e22 >= 0, e12 >= 0, z' = 1 + e21 + e22 eqEdge(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 eqEdge[Ite](z, z', z'', z1, z2) -{ 0 }-> 2 :|: z = 2, e21 >= 0, z2 = e12, e11 >= 0, e22 >= 0, z'' = e22, z1 = e11, e12 >= 0, z' = e21 eqEdge[Ite](z, z', z'', z1, z2) -{ 0 }-> 1 :|: e21 >= 0, z = 1, z2 = e12, e11 >= 0, e22 >= 0, z'' = e22, z1 = e11, e12 >= 0, z' = e21 eqEdge[Ite](z, z', z'', z1, z2) -{ 0 }-> 0 :|: z1 = v3, v0 >= 0, v4 >= 0, z'' = v2, v1 >= 0, z = v0, z' = v1, z2 = v4, v2 >= 0, v3 >= 0 getNodeFromEdge(z, z') -{ 1 }-> x :|: z' = 1 + x + y, z = 1 + 0, x >= 0, y >= 0 getNodeFromEdge(z, z') -{ 1 }-> x :|: z' = 1 + x + y, x >= 0, y >= 0, z = 0 getNodeFromEdge(z, z') -{ 1 }-> y :|: z' = 1 + x + y, x' >= 0, x >= 0, y >= 0, z = 1 + (1 + x') goal(z, z', z'') -{ 1 }-> reach(u, v, edges) :|: v >= 0, z'' = edges, z = u, z' = v, edges >= 0, u >= 0 member(z, z') -{ 2 }-> member[Ite](eqEdge[Ite](and(!EQ(e11', e21'), !EQ(e12', e22')), e21', e22', e11', e12'), 1 + e11' + e12', 1 + (1 + e21' + e22') + xs) :|: xs >= 0, z = 1 + e11' + e12', z' = 1 + (1 + e21' + e22') + xs, e11' >= 0, e12' >= 0, e21' >= 0, e22' >= 0 member(z, z') -{ 1 }-> member[Ite](0, x', 1 + x + xs) :|: xs >= 0, z' = 1 + x + xs, x' >= 0, x >= 0, z = x' member(z, z') -{ 1 }-> 1 :|: x >= 0, z = x, z' = 0 member[Ite](z, z', z'') -{ 0 }-> member(x', xs) :|: z' = x', xs >= 0, z = 1, x' >= 0, x >= 0, z'' = 1 + x + xs member[Ite](z, z', z'') -{ 0 }-> 2 :|: z = 2, xs >= 0, z' = x, x >= 0, z'' = xs member[Ite](z, z', z'') -{ 0 }-> 0 :|: v0 >= 0, z'' = v2, v1 >= 0, z = v0, z' = v1, v2 >= 0 notEmpty(z) -{ 1 }-> 2 :|: z = 1 + x + xs, xs >= 0, x >= 0 notEmpty(z) -{ 1 }-> 1 :|: z = 0 reach(z, z', z'') -{ 2 }-> reach[Ite](member[Ite](eqEdge(1 + u + v, x14), 1 + u + v, 1 + x14 + xs''), u, v, 1 + x14 + xs'') :|: v >= 0, xs'' >= 0, z = u, z' = v, z'' = 1 + x14 + xs'', x14 >= 0, u >= 0 reach(z, z', z'') -{ 2 }-> reach[Ite](1, u, v, 0) :|: z'' = 0, v >= 0, z = u, z' = v, u >= 0 reach[Ite](z, z', z'', z1) -{ 0 }-> via(u, v, edges, edges) :|: z'' = v, v >= 0, z = 1, z' = u, edges >= 0, z1 = edges, u >= 0 reach[Ite](z, z', z'', z1) -{ 0 }-> 0 :|: z1 = v3, v0 >= 0, z'' = v2, v1 >= 0, z = v0, z' = v1, v2 >= 0, v3 >= 0 reach[Ite](z, z', z'', z1) -{ 0 }-> 1 + (1 + u + v) + 0 :|: z = 2, z'' = v, v >= 0, z' = u, edges >= 0, z1 = edges, u >= 0 via(z, z', z'', z1) -{ 1 }-> via[Ite](2, 0, v, 1 + (1 + 0 + y) + xs, edges) :|: z'' = 1 + (1 + 0 + y) + xs, xs >= 0, v >= 0, y >= 0, z' = v, edges >= 0, z1 = edges, z = 0 via(z, z', z'', z1) -{ 1 }-> via[Ite](1, 0, v, 1 + (1 + (1 + y'') + y) + xs, edges) :|: xs >= 0, v >= 0, y >= 0, z' = v, z'' = 1 + (1 + (1 + y'') + y) + xs, edges >= 0, y'' >= 0, z1 = edges, z = 0 via(z, z', z'', z1) -{ 1 }-> via[Ite](1, 1 + x1, v, 1 + (1 + 0 + y) + xs, edges) :|: z'' = 1 + (1 + 0 + y) + xs, xs >= 0, x1 >= 0, v >= 0, y >= 0, z' = v, edges >= 0, z = 1 + x1, z1 = edges via(z, z', z'', z1) -{ 1 }-> via[Ite](0, u, v, 1 + (1 + x + y) + xs, edges) :|: xs >= 0, v >= 0, x >= 0, y >= 0, z = u, z' = v, edges >= 0, z1 = edges, z'' = 1 + (1 + x + y) + xs, u >= 0 via(z, z', z'', z1) -{ 1 }-> via[Ite](!EQ(x'', y'), 1 + x'', v, 1 + (1 + (1 + y') + y) + xs, edges) :|: z = 1 + x'', xs >= 0, v >= 0, y >= 0, z' = v, edges >= 0, y' >= 0, z1 = edges, z'' = 1 + (1 + (1 + y') + y) + xs, x'' >= 0 via(z, z', z'', z1) -{ 1 }-> 0 :|: z'' = 0, v >= 0, z = u, z' = v, edges >= 0, z1 = edges, u >= 0 via(z, z', z'', z1) -{ 0 }-> 0 :|: z1 = v3, v0 >= 0, z'' = v2, v1 >= 0, z = v0, z' = v1, v2 >= 0, v3 >= 0 via[Ite](z, z', z'', z1, z2) -{ 1 }-> via[Let](u, v, 1 + (1 + x + y) + xs, edges, reach[Ite](member(1 + y + v, edges), y, v, edges)) :|: z = 2, z'' = v, xs >= 0, v >= 0, z' = u, x >= 0, y >= 0, edges >= 0, z1 = 1 + (1 + x + y) + xs, z2 = edges, u >= 0 via[Ite](z, z', z'', z1, z2) -{ 0 }-> via(u, v, xs, edges) :|: z'' = v, xs >= 0, v >= 0, z1 = 1 + x + xs, z = 1, z' = u, x >= 0, edges >= 0, z2 = edges, u >= 0 via[Ite](z, z', z'', z1, z2) -{ 0 }-> 0 :|: z1 = v3, v0 >= 0, v4 >= 0, z'' = v2, v1 >= 0, z = v0, z' = v1, z2 = v4, v2 >= 0, v3 >= 0 via[Let](z, z', z'', z1, z2) -{ 0 }-> via(u, v, xs, edges) :|: xs >= 0, v >= 0, z2 = 0, x >= 0, z = u, z' = v, edges >= 0, z1 = edges, z'' = 1 + x + xs, u >= 0 via[Let](z, z', z'', z1, z2) -{ 0 }-> 0 :|: z1 = v3, v0 >= 0, v4 >= 0, z'' = v2, v1 >= 0, z = v0, z' = v1, z2 = v4, v2 >= 0, v3 >= 0 via[Let](z, z', z'', z1, z2) -{ 0 }-> 1 + x + (1 + x' + xs') :|: xs >= 0, v >= 0, x >= 0, x' >= 0, xs' >= 0, z = u, z' = v, edges >= 0, z1 = edges, z'' = 1 + x + xs, z2 = 1 + x' + xs', u >= 0 ---------------------------------------- (17) InliningProof (UPPER BOUND(ID)) Inlined the following terminating rules on right-hand sides where appropriate: and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 and(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 eqEdge[Ite](z, z', z'', z1, z2) -{ 0 }-> 2 :|: z = 2, e21 >= 0, z2 = e12, e11 >= 0, e22 >= 0, z'' = e22, z1 = e11, e12 >= 0, z' = e21 eqEdge[Ite](z, z', z'', z1, z2) -{ 0 }-> 0 :|: z1 = v3, v0 >= 0, v4 >= 0, z'' = v2, v1 >= 0, z = v0, z' = v1, z2 = v4, v2 >= 0, v3 >= 0 eqEdge[Ite](z, z', z'', z1, z2) -{ 0 }-> 1 :|: e21 >= 0, z = 1, z2 = e12, e11 >= 0, e22 >= 0, z'' = e22, z1 = e11, e12 >= 0, z' = e21 ---------------------------------------- (18) Obligation: Complexity RNTS consisting of the following rules: !EQ(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 !EQ(z, z') -{ 0 }-> 1 :|: z' = 1 + y, y >= 0, z = 0 !EQ(z, z') -{ 0 }-> 1 :|: x >= 0, z = 1 + x, z' = 0 !EQ(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 !EQ(z, z') -{ 0 }-> !EQ(x, y) :|: z' = 1 + y, x >= 0, y >= 0, z = 1 + x and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 and(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 eqEdge(z, z') -{ 1 }-> eqEdge[Ite](and(!EQ(e11, e21), !EQ(e12, e22)), e21, e22, e11, e12) :|: e21 >= 0, z = 1 + e11 + e12, e11 >= 0, e22 >= 0, e12 >= 0, z' = 1 + e21 + e22 eqEdge(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 eqEdge[Ite](z, z', z'', z1, z2) -{ 0 }-> 2 :|: z = 2, e21 >= 0, z2 = e12, e11 >= 0, e22 >= 0, z'' = e22, z1 = e11, e12 >= 0, z' = e21 eqEdge[Ite](z, z', z'', z1, z2) -{ 0 }-> 1 :|: e21 >= 0, z = 1, z2 = e12, e11 >= 0, e22 >= 0, z'' = e22, z1 = e11, e12 >= 0, z' = e21 eqEdge[Ite](z, z', z'', z1, z2) -{ 0 }-> 0 :|: z1 = v3, v0 >= 0, v4 >= 0, z'' = v2, v1 >= 0, z = v0, z' = v1, z2 = v4, v2 >= 0, v3 >= 0 getNodeFromEdge(z, z') -{ 1 }-> x :|: z' = 1 + x + y, z = 1 + 0, x >= 0, y >= 0 getNodeFromEdge(z, z') -{ 1 }-> x :|: z' = 1 + x + y, x >= 0, y >= 0, z = 0 getNodeFromEdge(z, z') -{ 1 }-> y :|: z' = 1 + x + y, x' >= 0, x >= 0, y >= 0, z = 1 + (1 + x') goal(z, z', z'') -{ 1 }-> reach(u, v, edges) :|: v >= 0, z'' = edges, z = u, z' = v, edges >= 0, u >= 0 member(z, z') -{ 2 }-> member[Ite](eqEdge[Ite](and(!EQ(e11', e21'), !EQ(e12', e22')), e21', e22', e11', e12'), 1 + e11' + e12', 1 + (1 + e21' + e22') + xs) :|: xs >= 0, z = 1 + e11' + e12', z' = 1 + (1 + e21' + e22') + xs, e11' >= 0, e12' >= 0, e21' >= 0, e22' >= 0 member(z, z') -{ 1 }-> member[Ite](0, x', 1 + x + xs) :|: xs >= 0, z' = 1 + x + xs, x' >= 0, x >= 0, z = x' member(z, z') -{ 1 }-> 1 :|: x >= 0, z = x, z' = 0 member[Ite](z, z', z'') -{ 0 }-> member(x', xs) :|: z' = x', xs >= 0, z = 1, x' >= 0, x >= 0, z'' = 1 + x + xs member[Ite](z, z', z'') -{ 0 }-> 2 :|: z = 2, xs >= 0, z' = x, x >= 0, z'' = xs member[Ite](z, z', z'') -{ 0 }-> 0 :|: v0 >= 0, z'' = v2, v1 >= 0, z = v0, z' = v1, v2 >= 0 notEmpty(z) -{ 1 }-> 2 :|: z = 1 + x + xs, xs >= 0, x >= 0 notEmpty(z) -{ 1 }-> 1 :|: z = 0 reach(z, z', z'') -{ 2 }-> reach[Ite](member[Ite](eqEdge(1 + u + v, x14), 1 + u + v, 1 + x14 + xs''), u, v, 1 + x14 + xs'') :|: v >= 0, xs'' >= 0, z = u, z' = v, z'' = 1 + x14 + xs'', x14 >= 0, u >= 0 reach(z, z', z'') -{ 2 }-> reach[Ite](1, u, v, 0) :|: z'' = 0, v >= 0, z = u, z' = v, u >= 0 reach[Ite](z, z', z'', z1) -{ 0 }-> via(u, v, edges, edges) :|: z'' = v, v >= 0, z = 1, z' = u, edges >= 0, z1 = edges, u >= 0 reach[Ite](z, z', z'', z1) -{ 0 }-> 0 :|: z1 = v3, v0 >= 0, z'' = v2, v1 >= 0, z = v0, z' = v1, v2 >= 0, v3 >= 0 reach[Ite](z, z', z'', z1) -{ 0 }-> 1 + (1 + u + v) + 0 :|: z = 2, z'' = v, v >= 0, z' = u, edges >= 0, z1 = edges, u >= 0 via(z, z', z'', z1) -{ 1 }-> via[Ite](2, 0, v, 1 + (1 + 0 + y) + xs, edges) :|: z'' = 1 + (1 + 0 + y) + xs, xs >= 0, v >= 0, y >= 0, z' = v, edges >= 0, z1 = edges, z = 0 via(z, z', z'', z1) -{ 1 }-> via[Ite](1, 0, v, 1 + (1 + (1 + y'') + y) + xs, edges) :|: xs >= 0, v >= 0, y >= 0, z' = v, z'' = 1 + (1 + (1 + y'') + y) + xs, edges >= 0, y'' >= 0, z1 = edges, z = 0 via(z, z', z'', z1) -{ 1 }-> via[Ite](1, 1 + x1, v, 1 + (1 + 0 + y) + xs, edges) :|: z'' = 1 + (1 + 0 + y) + xs, xs >= 0, x1 >= 0, v >= 0, y >= 0, z' = v, edges >= 0, z = 1 + x1, z1 = edges via(z, z', z'', z1) -{ 1 }-> via[Ite](0, u, v, 1 + (1 + x + y) + xs, edges) :|: xs >= 0, v >= 0, x >= 0, y >= 0, z = u, z' = v, edges >= 0, z1 = edges, z'' = 1 + (1 + x + y) + xs, u >= 0 via(z, z', z'', z1) -{ 1 }-> via[Ite](!EQ(x'', y'), 1 + x'', v, 1 + (1 + (1 + y') + y) + xs, edges) :|: z = 1 + x'', xs >= 0, v >= 0, y >= 0, z' = v, edges >= 0, y' >= 0, z1 = edges, z'' = 1 + (1 + (1 + y') + y) + xs, x'' >= 0 via(z, z', z'', z1) -{ 1 }-> 0 :|: z'' = 0, v >= 0, z = u, z' = v, edges >= 0, z1 = edges, u >= 0 via(z, z', z'', z1) -{ 0 }-> 0 :|: z1 = v3, v0 >= 0, z'' = v2, v1 >= 0, z = v0, z' = v1, v2 >= 0, v3 >= 0 via[Ite](z, z', z'', z1, z2) -{ 1 }-> via[Let](u, v, 1 + (1 + x + y) + xs, edges, reach[Ite](member(1 + y + v, edges), y, v, edges)) :|: z = 2, z'' = v, xs >= 0, v >= 0, z' = u, x >= 0, y >= 0, edges >= 0, z1 = 1 + (1 + x + y) + xs, z2 = edges, u >= 0 via[Ite](z, z', z'', z1, z2) -{ 0 }-> via(u, v, xs, edges) :|: z'' = v, xs >= 0, v >= 0, z1 = 1 + x + xs, z = 1, z' = u, x >= 0, edges >= 0, z2 = edges, u >= 0 via[Ite](z, z', z'', z1, z2) -{ 0 }-> 0 :|: z1 = v3, v0 >= 0, v4 >= 0, z'' = v2, v1 >= 0, z = v0, z' = v1, z2 = v4, v2 >= 0, v3 >= 0 via[Let](z, z', z'', z1, z2) -{ 0 }-> via(u, v, xs, edges) :|: xs >= 0, v >= 0, z2 = 0, x >= 0, z = u, z' = v, edges >= 0, z1 = edges, z'' = 1 + x + xs, u >= 0 via[Let](z, z', z'', z1, z2) -{ 0 }-> 0 :|: z1 = v3, v0 >= 0, v4 >= 0, z'' = v2, v1 >= 0, z = v0, z' = v1, z2 = v4, v2 >= 0, v3 >= 0 via[Let](z, z', z'', z1, z2) -{ 0 }-> 1 + x + (1 + x' + xs') :|: xs >= 0, v >= 0, x >= 0, x' >= 0, xs' >= 0, z = u, z' = v, edges >= 0, z1 = edges, z'' = 1 + x + xs, z2 = 1 + x' + xs', u >= 0 ---------------------------------------- (19) SimplificationProof (BOTH BOUNDS(ID, ID)) Simplified the RNTS by moving equalities from the constraints into the right-hand sides. ---------------------------------------- (20) Obligation: Complexity RNTS consisting of the following rules: !EQ(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 !EQ(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 !EQ(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 !EQ(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 !EQ(z, z') -{ 0 }-> !EQ(z - 1, z' - 1) :|: z - 1 >= 0, z' - 1 >= 0 and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 eqEdge(z, z') -{ 1 }-> eqEdge[Ite](and(!EQ(e11, e21), !EQ(e12, e22)), e21, e22, e11, e12) :|: e21 >= 0, z = 1 + e11 + e12, e11 >= 0, e22 >= 0, e12 >= 0, z' = 1 + e21 + e22 eqEdge(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 eqEdge[Ite](z, z', z'', z1, z2) -{ 0 }-> 2 :|: z = 2, z' >= 0, z1 >= 0, z'' >= 0, z2 >= 0 eqEdge[Ite](z, z', z'', z1, z2) -{ 0 }-> 1 :|: z' >= 0, z = 1, z1 >= 0, z'' >= 0, z2 >= 0 eqEdge[Ite](z, z', z'', z1, z2) -{ 0 }-> 0 :|: z >= 0, z2 >= 0, z' >= 0, z'' >= 0, z1 >= 0 getNodeFromEdge(z, z') -{ 1 }-> x :|: z' = 1 + x + y, z = 1 + 0, x >= 0, y >= 0 getNodeFromEdge(z, z') -{ 1 }-> x :|: z' = 1 + x + y, x >= 0, y >= 0, z = 0 getNodeFromEdge(z, z') -{ 1 }-> y :|: z' = 1 + x + y, z - 2 >= 0, x >= 0, y >= 0 goal(z, z', z'') -{ 1 }-> reach(z, z', z'') :|: z' >= 0, z'' >= 0, z >= 0 member(z, z') -{ 2 }-> member[Ite](eqEdge[Ite](and(!EQ(e11', e21'), !EQ(e12', e22')), e21', e22', e11', e12'), 1 + e11' + e12', 1 + (1 + e21' + e22') + xs) :|: xs >= 0, z = 1 + e11' + e12', z' = 1 + (1 + e21' + e22') + xs, e11' >= 0, e12' >= 0, e21' >= 0, e22' >= 0 member(z, z') -{ 1 }-> member[Ite](0, z, 1 + x + xs) :|: xs >= 0, z' = 1 + x + xs, z >= 0, x >= 0 member(z, z') -{ 1 }-> 1 :|: z >= 0, z' = 0 member[Ite](z, z', z'') -{ 0 }-> member(z', xs) :|: xs >= 0, z = 1, z' >= 0, x >= 0, z'' = 1 + x + xs member[Ite](z, z', z'') -{ 0 }-> 2 :|: z = 2, z'' >= 0, z' >= 0 member[Ite](z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 notEmpty(z) -{ 1 }-> 2 :|: z = 1 + x + xs, xs >= 0, x >= 0 notEmpty(z) -{ 1 }-> 1 :|: z = 0 reach(z, z', z'') -{ 2 }-> reach[Ite](member[Ite](eqEdge(1 + z + z', x14), 1 + z + z', 1 + x14 + xs''), z, z', 1 + x14 + xs'') :|: z' >= 0, xs'' >= 0, z'' = 1 + x14 + xs'', x14 >= 0, z >= 0 reach(z, z', z'') -{ 2 }-> reach[Ite](1, z, z', 0) :|: z'' = 0, z' >= 0, z >= 0 reach[Ite](z, z', z'', z1) -{ 0 }-> via(z', z'', z1, z1) :|: z'' >= 0, z = 1, z1 >= 0, z' >= 0 reach[Ite](z, z', z'', z1) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0 reach[Ite](z, z', z'', z1) -{ 0 }-> 1 + (1 + z' + z'') + 0 :|: z = 2, z'' >= 0, z1 >= 0, z' >= 0 via(z, z', z'', z1) -{ 1 }-> via[Ite](2, 0, z', 1 + (1 + 0 + y) + xs, z1) :|: z'' = 1 + (1 + 0 + y) + xs, xs >= 0, z' >= 0, y >= 0, z1 >= 0, z = 0 via(z, z', z'', z1) -{ 1 }-> via[Ite](1, 0, z', 1 + (1 + (1 + y'') + y) + xs, z1) :|: xs >= 0, z' >= 0, y >= 0, z'' = 1 + (1 + (1 + y'') + y) + xs, z1 >= 0, y'' >= 0, z = 0 via(z, z', z'', z1) -{ 1 }-> via[Ite](1, 1 + (z - 1), z', 1 + (1 + 0 + y) + xs, z1) :|: z'' = 1 + (1 + 0 + y) + xs, xs >= 0, z - 1 >= 0, z' >= 0, y >= 0, z1 >= 0 via(z, z', z'', z1) -{ 1 }-> via[Ite](0, z, z', 1 + (1 + x + y) + xs, z1) :|: xs >= 0, z' >= 0, x >= 0, y >= 0, z1 >= 0, z'' = 1 + (1 + x + y) + xs, z >= 0 via(z, z', z'', z1) -{ 1 }-> via[Ite](!EQ(z - 1, y'), 1 + (z - 1), z', 1 + (1 + (1 + y') + y) + xs, z1) :|: xs >= 0, z' >= 0, y >= 0, z1 >= 0, y' >= 0, z'' = 1 + (1 + (1 + y') + y) + xs, z - 1 >= 0 via(z, z', z'', z1) -{ 1 }-> 0 :|: z'' = 0, z' >= 0, z1 >= 0, z >= 0 via(z, z', z'', z1) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0 via[Ite](z, z', z'', z1, z2) -{ 1 }-> via[Let](z', z'', 1 + (1 + x + y) + xs, z2, reach[Ite](member(1 + y + z'', z2), y, z'', z2)) :|: z = 2, xs >= 0, z'' >= 0, x >= 0, y >= 0, z2 >= 0, z1 = 1 + (1 + x + y) + xs, z' >= 0 via[Ite](z, z', z'', z1, z2) -{ 0 }-> via(z', z'', xs, z2) :|: xs >= 0, z'' >= 0, z1 = 1 + x + xs, z = 1, x >= 0, z2 >= 0, z' >= 0 via[Ite](z, z', z'', z1, z2) -{ 0 }-> 0 :|: z >= 0, z2 >= 0, z' >= 0, z'' >= 0, z1 >= 0 via[Let](z, z', z'', z1, z2) -{ 0 }-> via(z, z', xs, z1) :|: xs >= 0, z' >= 0, z2 = 0, x >= 0, z1 >= 0, z'' = 1 + x + xs, z >= 0 via[Let](z, z', z'', z1, z2) -{ 0 }-> 0 :|: z >= 0, z2 >= 0, z' >= 0, z'' >= 0, z1 >= 0 via[Let](z, z', z'', z1, z2) -{ 0 }-> 1 + x + (1 + x' + xs') :|: xs >= 0, z' >= 0, x >= 0, x' >= 0, xs' >= 0, z1 >= 0, z'' = 1 + x + xs, z2 = 1 + x' + xs', z >= 0 ---------------------------------------- (21) CompletionProof (UPPER BOUND(ID)) The TRS is a completely defined constructor system, as every type has a constant constructor and the following rules were added: !EQ(v0, v1) -> null_!EQ [0] and(v0, v1) -> null_and [0] via[Ite](v0, v1, v2, v3, v4) -> null_via[Ite] [0] via[Let](v0, v1, v2, v3, v4) -> null_via[Let] [0] member[Ite](v0, v1, v2) -> null_member[Ite] [0] reach[Ite](v0, v1, v2, v3) -> null_reach[Ite] [0] eqEdge[Ite](v0, v1, v2, v3, v4) -> null_eqEdge[Ite] [0] getNodeFromEdge(v0, v1) -> null_getNodeFromEdge [0] via(v0, v1, v2, v3) -> null_via [0] member(v0, v1) -> null_member [0] eqEdge(v0, v1) -> null_eqEdge [0] notEmpty(v0) -> null_notEmpty [0] And the following fresh constants: null_!EQ, null_and, null_via[Ite], null_via[Let], null_member[Ite], null_reach[Ite], null_eqEdge[Ite], null_getNodeFromEdge, null_via, null_member, null_eqEdge, null_notEmpty, const ---------------------------------------- (22) Obligation: Runtime Complexity Weighted TRS where all functions are completely defined. The underlying TRS is: Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules: getNodeFromEdge(S(S(x')), E(x, y)) -> y [1] via(u, v, Cons(E(x, y), xs), edges) -> via[Ite](!EQ(u, x), u, v, Cons(E(x, y), xs), edges) [1] getNodeFromEdge(S(0), E(x, y)) -> x [1] member(x', Cons(x, xs)) -> member[Ite](eqEdge(x', x), x', Cons(x, xs)) [1] getNodeFromEdge(0, E(x, y)) -> x [1] eqEdge(E(e11, e12), E(e21, e22)) -> eqEdge[Ite](and(!EQ(e11, e21), !EQ(e12, e22)), e21, e22, e11, e12) [1] via(u, v, Nil, edges) -> Nil [1] notEmpty(Cons(x, xs)) -> True [1] notEmpty(Nil) -> False [1] member(x, Nil) -> False [1] reach(u, v, edges) -> reach[Ite](member(E(u, v), edges), u, v, edges) [1] goal(u, v, edges) -> reach(u, v, edges) [1] !EQ(S(x), S(y)) -> !EQ(x, y) [0] !EQ(0, S(y)) -> False [0] !EQ(S(x), 0) -> False [0] !EQ(0, 0) -> True [0] and(False, False) -> False [0] and(True, False) -> False [0] and(False, True) -> False [0] and(True, True) -> True [0] via[Ite](True, u, v, Cons(E(x, y), xs), edges) -> via[Let](u, v, Cons(E(x, y), xs), edges, reach(y, v, edges)) [0] via[Let](u, v, Cons(x, xs), edges, Nil) -> via(u, v, xs, edges) [0] via[Let](u, v, Cons(x, xs), edges, Cons(x', xs')) -> Cons(x, Cons(x', xs')) [0] via[Ite](False, u, v, Cons(x, xs), edges) -> via(u, v, xs, edges) [0] member[Ite](False, x', Cons(x, xs)) -> member(x', xs) [0] reach[Ite](False, u, v, edges) -> via(u, v, edges, edges) [0] reach[Ite](True, u, v, edges) -> Cons(E(u, v), Nil) [0] member[Ite](True, x, xs) -> True [0] eqEdge[Ite](False, e21, e22, e11, e12) -> False [0] eqEdge[Ite](True, e21, e22, e11, e12) -> True [0] !EQ(v0, v1) -> null_!EQ [0] and(v0, v1) -> null_and [0] via[Ite](v0, v1, v2, v3, v4) -> null_via[Ite] [0] via[Let](v0, v1, v2, v3, v4) -> null_via[Let] [0] member[Ite](v0, v1, v2) -> null_member[Ite] [0] reach[Ite](v0, v1, v2, v3) -> null_reach[Ite] [0] eqEdge[Ite](v0, v1, v2, v3, v4) -> null_eqEdge[Ite] [0] getNodeFromEdge(v0, v1) -> null_getNodeFromEdge [0] via(v0, v1, v2, v3) -> null_via [0] member(v0, v1) -> null_member [0] eqEdge(v0, v1) -> null_eqEdge [0] notEmpty(v0) -> null_notEmpty [0] The TRS has the following type information: getNodeFromEdge :: S:0:null_getNodeFromEdge -> E -> S:0:null_getNodeFromEdge S :: S:0:null_getNodeFromEdge -> S:0:null_getNodeFromEdge E :: S:0:null_getNodeFromEdge -> S:0:null_getNodeFromEdge -> E via :: S:0:null_getNodeFromEdge -> S:0:null_getNodeFromEdge -> Cons:Nil:null_via[Ite]:null_via[Let]:null_reach[Ite]:null_via -> Cons:Nil:null_via[Ite]:null_via[Let]:null_reach[Ite]:null_via -> Cons:Nil:null_via[Ite]:null_via[Let]:null_reach[Ite]:null_via Cons :: E -> Cons:Nil:null_via[Ite]:null_via[Let]:null_reach[Ite]:null_via -> Cons:Nil:null_via[Ite]:null_via[Let]:null_reach[Ite]:null_via via[Ite] :: True:False:null_!EQ:null_and:null_member[Ite]:null_eqEdge[Ite]:null_member:null_eqEdge:null_notEmpty -> S:0:null_getNodeFromEdge -> S:0:null_getNodeFromEdge -> Cons:Nil:null_via[Ite]:null_via[Let]:null_reach[Ite]:null_via -> Cons:Nil:null_via[Ite]:null_via[Let]:null_reach[Ite]:null_via -> Cons:Nil:null_via[Ite]:null_via[Let]:null_reach[Ite]:null_via !EQ :: S:0:null_getNodeFromEdge -> S:0:null_getNodeFromEdge -> True:False:null_!EQ:null_and:null_member[Ite]:null_eqEdge[Ite]:null_member:null_eqEdge:null_notEmpty 0 :: S:0:null_getNodeFromEdge member :: E -> Cons:Nil:null_via[Ite]:null_via[Let]:null_reach[Ite]:null_via -> True:False:null_!EQ:null_and:null_member[Ite]:null_eqEdge[Ite]:null_member:null_eqEdge:null_notEmpty member[Ite] :: True:False:null_!EQ:null_and:null_member[Ite]:null_eqEdge[Ite]:null_member:null_eqEdge:null_notEmpty -> E -> Cons:Nil:null_via[Ite]:null_via[Let]:null_reach[Ite]:null_via -> True:False:null_!EQ:null_and:null_member[Ite]:null_eqEdge[Ite]:null_member:null_eqEdge:null_notEmpty eqEdge :: E -> E -> True:False:null_!EQ:null_and:null_member[Ite]:null_eqEdge[Ite]:null_member:null_eqEdge:null_notEmpty eqEdge[Ite] :: True:False:null_!EQ:null_and:null_member[Ite]:null_eqEdge[Ite]:null_member:null_eqEdge:null_notEmpty -> S:0:null_getNodeFromEdge -> S:0:null_getNodeFromEdge -> S:0:null_getNodeFromEdge -> S:0:null_getNodeFromEdge -> True:False:null_!EQ:null_and:null_member[Ite]:null_eqEdge[Ite]:null_member:null_eqEdge:null_notEmpty and :: True:False:null_!EQ:null_and:null_member[Ite]:null_eqEdge[Ite]:null_member:null_eqEdge:null_notEmpty -> True:False:null_!EQ:null_and:null_member[Ite]:null_eqEdge[Ite]:null_member:null_eqEdge:null_notEmpty -> True:False:null_!EQ:null_and:null_member[Ite]:null_eqEdge[Ite]:null_member:null_eqEdge:null_notEmpty Nil :: Cons:Nil:null_via[Ite]:null_via[Let]:null_reach[Ite]:null_via notEmpty :: Cons:Nil:null_via[Ite]:null_via[Let]:null_reach[Ite]:null_via -> True:False:null_!EQ:null_and:null_member[Ite]:null_eqEdge[Ite]:null_member:null_eqEdge:null_notEmpty True :: True:False:null_!EQ:null_and:null_member[Ite]:null_eqEdge[Ite]:null_member:null_eqEdge:null_notEmpty False :: True:False:null_!EQ:null_and:null_member[Ite]:null_eqEdge[Ite]:null_member:null_eqEdge:null_notEmpty reach :: S:0:null_getNodeFromEdge -> S:0:null_getNodeFromEdge -> Cons:Nil:null_via[Ite]:null_via[Let]:null_reach[Ite]:null_via -> Cons:Nil:null_via[Ite]:null_via[Let]:null_reach[Ite]:null_via reach[Ite] :: True:False:null_!EQ:null_and:null_member[Ite]:null_eqEdge[Ite]:null_member:null_eqEdge:null_notEmpty -> S:0:null_getNodeFromEdge -> S:0:null_getNodeFromEdge -> Cons:Nil:null_via[Ite]:null_via[Let]:null_reach[Ite]:null_via -> Cons:Nil:null_via[Ite]:null_via[Let]:null_reach[Ite]:null_via goal :: S:0:null_getNodeFromEdge -> S:0:null_getNodeFromEdge -> Cons:Nil:null_via[Ite]:null_via[Let]:null_reach[Ite]:null_via -> Cons:Nil:null_via[Ite]:null_via[Let]:null_reach[Ite]:null_via via[Let] :: S:0:null_getNodeFromEdge -> S:0:null_getNodeFromEdge -> Cons:Nil:null_via[Ite]:null_via[Let]:null_reach[Ite]:null_via -> Cons:Nil:null_via[Ite]:null_via[Let]:null_reach[Ite]:null_via -> Cons:Nil:null_via[Ite]:null_via[Let]:null_reach[Ite]:null_via -> Cons:Nil:null_via[Ite]:null_via[Let]:null_reach[Ite]:null_via null_!EQ :: True:False:null_!EQ:null_and:null_member[Ite]:null_eqEdge[Ite]:null_member:null_eqEdge:null_notEmpty null_and :: True:False:null_!EQ:null_and:null_member[Ite]:null_eqEdge[Ite]:null_member:null_eqEdge:null_notEmpty null_via[Ite] :: Cons:Nil:null_via[Ite]:null_via[Let]:null_reach[Ite]:null_via null_via[Let] :: Cons:Nil:null_via[Ite]:null_via[Let]:null_reach[Ite]:null_via null_member[Ite] :: True:False:null_!EQ:null_and:null_member[Ite]:null_eqEdge[Ite]:null_member:null_eqEdge:null_notEmpty null_reach[Ite] :: Cons:Nil:null_via[Ite]:null_via[Let]:null_reach[Ite]:null_via null_eqEdge[Ite] :: True:False:null_!EQ:null_and:null_member[Ite]:null_eqEdge[Ite]:null_member:null_eqEdge:null_notEmpty null_getNodeFromEdge :: S:0:null_getNodeFromEdge null_via :: Cons:Nil:null_via[Ite]:null_via[Let]:null_reach[Ite]:null_via null_member :: True:False:null_!EQ:null_and:null_member[Ite]:null_eqEdge[Ite]:null_member:null_eqEdge:null_notEmpty null_eqEdge :: True:False:null_!EQ:null_and:null_member[Ite]:null_eqEdge[Ite]:null_member:null_eqEdge:null_notEmpty null_notEmpty :: True:False:null_!EQ:null_and:null_member[Ite]:null_eqEdge[Ite]:null_member:null_eqEdge:null_notEmpty const :: E Rewrite Strategy: INNERMOST ---------------------------------------- (23) CpxTypedWeightedTrsToRntsProof (UPPER BOUND(ID)) Transformed the TRS into an over-approximating RNTS by (improved) Size Abstraction. The constant constructors are abstracted as follows: 0 => 0 Nil => 0 True => 2 False => 1 null_!EQ => 0 null_and => 0 null_via[Ite] => 0 null_via[Let] => 0 null_member[Ite] => 0 null_reach[Ite] => 0 null_eqEdge[Ite] => 0 null_getNodeFromEdge => 0 null_via => 0 null_member => 0 null_eqEdge => 0 null_notEmpty => 0 const => 0 ---------------------------------------- (24) Obligation: Complexity RNTS consisting of the following rules: !EQ(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 !EQ(z, z') -{ 0 }-> 1 :|: z' = 1 + y, y >= 0, z = 0 !EQ(z, z') -{ 0 }-> 1 :|: x >= 0, z = 1 + x, z' = 0 !EQ(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 !EQ(z, z') -{ 0 }-> !EQ(x, y) :|: z' = 1 + y, x >= 0, y >= 0, z = 1 + x and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 and(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 eqEdge(z, z') -{ 1 }-> eqEdge[Ite](and(!EQ(e11, e21), !EQ(e12, e22)), e21, e22, e11, e12) :|: e21 >= 0, z = 1 + e11 + e12, e11 >= 0, e22 >= 0, e12 >= 0, z' = 1 + e21 + e22 eqEdge(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 eqEdge[Ite](z, z', z'', z1, z2) -{ 0 }-> 2 :|: z = 2, e21 >= 0, z2 = e12, e11 >= 0, e22 >= 0, z'' = e22, z1 = e11, e12 >= 0, z' = e21 eqEdge[Ite](z, z', z'', z1, z2) -{ 0 }-> 1 :|: e21 >= 0, z = 1, z2 = e12, e11 >= 0, e22 >= 0, z'' = e22, z1 = e11, e12 >= 0, z' = e21 eqEdge[Ite](z, z', z'', z1, z2) -{ 0 }-> 0 :|: z1 = v3, v0 >= 0, v4 >= 0, z'' = v2, v1 >= 0, z = v0, z' = v1, z2 = v4, v2 >= 0, v3 >= 0 getNodeFromEdge(z, z') -{ 1 }-> x :|: z' = 1 + x + y, z = 1 + 0, x >= 0, y >= 0 getNodeFromEdge(z, z') -{ 1 }-> x :|: z' = 1 + x + y, x >= 0, y >= 0, z = 0 getNodeFromEdge(z, z') -{ 1 }-> y :|: z' = 1 + x + y, x' >= 0, x >= 0, y >= 0, z = 1 + (1 + x') getNodeFromEdge(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 goal(z, z', z'') -{ 1 }-> reach(u, v, edges) :|: v >= 0, z'' = edges, z = u, z' = v, edges >= 0, u >= 0 member(z, z') -{ 1 }-> member[Ite](eqEdge(x', x), x', 1 + x + xs) :|: xs >= 0, z' = 1 + x + xs, x' >= 0, x >= 0, z = x' member(z, z') -{ 1 }-> 1 :|: x >= 0, z = x, z' = 0 member(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 member[Ite](z, z', z'') -{ 0 }-> member(x', xs) :|: z' = x', xs >= 0, z = 1, x' >= 0, x >= 0, z'' = 1 + x + xs member[Ite](z, z', z'') -{ 0 }-> 2 :|: z = 2, xs >= 0, z' = x, x >= 0, z'' = xs member[Ite](z, z', z'') -{ 0 }-> 0 :|: v0 >= 0, z'' = v2, v1 >= 0, z = v0, z' = v1, v2 >= 0 notEmpty(z) -{ 1 }-> 2 :|: z = 1 + x + xs, xs >= 0, x >= 0 notEmpty(z) -{ 1 }-> 1 :|: z = 0 notEmpty(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 reach(z, z', z'') -{ 1 }-> reach[Ite](member(1 + u + v, edges), u, v, edges) :|: v >= 0, z'' = edges, z = u, z' = v, edges >= 0, u >= 0 reach[Ite](z, z', z'', z1) -{ 0 }-> via(u, v, edges, edges) :|: z'' = v, v >= 0, z = 1, z' = u, edges >= 0, z1 = edges, u >= 0 reach[Ite](z, z', z'', z1) -{ 0 }-> 0 :|: z1 = v3, v0 >= 0, z'' = v2, v1 >= 0, z = v0, z' = v1, v2 >= 0, v3 >= 0 reach[Ite](z, z', z'', z1) -{ 0 }-> 1 + (1 + u + v) + 0 :|: z = 2, z'' = v, v >= 0, z' = u, edges >= 0, z1 = edges, u >= 0 via(z, z', z'', z1) -{ 1 }-> via[Ite](!EQ(u, x), u, v, 1 + (1 + x + y) + xs, edges) :|: xs >= 0, v >= 0, x >= 0, y >= 0, z = u, z' = v, edges >= 0, z1 = edges, z'' = 1 + (1 + x + y) + xs, u >= 0 via(z, z', z'', z1) -{ 1 }-> 0 :|: z'' = 0, v >= 0, z = u, z' = v, edges >= 0, z1 = edges, u >= 0 via(z, z', z'', z1) -{ 0 }-> 0 :|: z1 = v3, v0 >= 0, z'' = v2, v1 >= 0, z = v0, z' = v1, v2 >= 0, v3 >= 0 via[Ite](z, z', z'', z1, z2) -{ 0 }-> via[Let](u, v, 1 + (1 + x + y) + xs, edges, reach(y, v, edges)) :|: z = 2, z'' = v, xs >= 0, v >= 0, z' = u, x >= 0, y >= 0, edges >= 0, z1 = 1 + (1 + x + y) + xs, z2 = edges, u >= 0 via[Ite](z, z', z'', z1, z2) -{ 0 }-> via(u, v, xs, edges) :|: z'' = v, xs >= 0, v >= 0, z1 = 1 + x + xs, z = 1, z' = u, x >= 0, edges >= 0, z2 = edges, u >= 0 via[Ite](z, z', z'', z1, z2) -{ 0 }-> 0 :|: z1 = v3, v0 >= 0, v4 >= 0, z'' = v2, v1 >= 0, z = v0, z' = v1, z2 = v4, v2 >= 0, v3 >= 0 via[Let](z, z', z'', z1, z2) -{ 0 }-> via(u, v, xs, edges) :|: xs >= 0, v >= 0, z2 = 0, x >= 0, z = u, z' = v, edges >= 0, z1 = edges, z'' = 1 + x + xs, u >= 0 via[Let](z, z', z'', z1, z2) -{ 0 }-> 0 :|: z1 = v3, v0 >= 0, v4 >= 0, z'' = v2, v1 >= 0, z = v0, z' = v1, z2 = v4, v2 >= 0, v3 >= 0 via[Let](z, z', z'', z1, z2) -{ 0 }-> 1 + x + (1 + x' + xs') :|: xs >= 0, v >= 0, x >= 0, x' >= 0, xs' >= 0, z = u, z' = v, edges >= 0, z1 = edges, z'' = 1 + x + xs, z2 = 1 + x' + xs', u >= 0 Only complete derivations are relevant for the runtime complexity. ---------------------------------------- (25) CpxTrsToCdtProof (UPPER BOUND(ID)) Converted Cpx (relative) TRS with rewrite strategy PARALLEL_INNERMOST to CDT ---------------------------------------- (26) Obligation: Complexity Dependency Tuples Problem Rules: !EQ(S(z0), S(z1)) -> !EQ(z0, z1) !EQ(0, S(z0)) -> False !EQ(S(z0), 0) -> False !EQ(0, 0) -> True and(False, False) -> False and(True, False) -> False and(False, True) -> False and(True, True) -> True via[Ite](True, z0, z1, Cons(E(z2, z3), z4), z5) -> via[Let](z0, z1, Cons(E(z2, z3), z4), z5, reach(z3, z1, z5)) via[Ite](False, z0, z1, Cons(z2, z3), z4) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Nil) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Cons(z5, z6)) -> Cons(z2, Cons(z5, z6)) member[Ite](False, z0, Cons(z1, z2)) -> member(z0, z2) member[Ite](True, z0, z1) -> True reach[Ite](False, z0, z1, z2) -> via(z0, z1, z2, z2) reach[Ite](True, z0, z1, z2) -> Cons(E(z0, z1), Nil) eqEdge[Ite](False, z0, z1, z2, z3) -> False eqEdge[Ite](True, z0, z1, z2, z3) -> True getNodeFromEdge(S(S(z0)), E(z1, z2)) -> z2 getNodeFromEdge(S(0), E(z0, z1)) -> z0 getNodeFromEdge(0, E(z0, z1)) -> z0 via(z0, z1, Cons(E(z2, z3), z4), z5) -> via[Ite](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5) via(z0, z1, Nil, z2) -> Nil member(z0, Cons(z1, z2)) -> member[Ite](eqEdge(z0, z1), z0, Cons(z1, z2)) member(z0, Nil) -> False eqEdge(E(z0, z1), E(z2, z3)) -> eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1) notEmpty(Cons(z0, z1)) -> True notEmpty(Nil) -> False reach(z0, z1, z2) -> reach[Ite](member(E(z0, z1), z2), z0, z1, z2) goal(z0, z1, z2) -> reach(z0, z1, z2) Tuples: !EQ'(S(z0), S(z1)) -> c(!EQ'(z0, z1)) !EQ'(0, S(z0)) -> c1 !EQ'(S(z0), 0) -> c2 !EQ'(0, 0) -> c3 AND(False, False) -> c4 AND(True, False) -> c5 AND(False, True) -> c6 AND(True, True) -> c7 VIA[ITE](True, z0, z1, Cons(E(z2, z3), z4), z5) -> c8(VIA[LET](z0, z1, Cons(E(z2, z3), z4), z5, reach(z3, z1, z5)), REACH(z3, z1, z5)) VIA[ITE](False, z0, z1, Cons(z2, z3), z4) -> c9(VIA(z0, z1, z3, z4)) VIA[LET](z0, z1, Cons(z2, z3), z4, Nil) -> c10(VIA(z0, z1, z3, z4)) VIA[LET](z0, z1, Cons(z2, z3), z4, Cons(z5, z6)) -> c11 MEMBER[ITE](False, z0, Cons(z1, z2)) -> c12(MEMBER(z0, z2)) MEMBER[ITE](True, z0, z1) -> c13 REACH[ITE](False, z0, z1, z2) -> c14(VIA(z0, z1, z2, z2)) REACH[ITE](True, z0, z1, z2) -> c15 EQEDGE[ITE](False, z0, z1, z2, z3) -> c16 EQEDGE[ITE](True, z0, z1, z2, z3) -> c17 GETNODEFROMEDGE(S(S(z0)), E(z1, z2)) -> c18 GETNODEFROMEDGE(S(0), E(z0, z1)) -> c19 GETNODEFROMEDGE(0, E(z0, z1)) -> c20 VIA(z0, z1, Cons(E(z2, z3), z4), z5) -> c21(VIA[ITE](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5), !EQ'(z0, z2)) VIA(z0, z1, Nil, z2) -> c22 MEMBER(z0, Cons(z1, z2)) -> c23(MEMBER[ITE](eqEdge(z0, z1), z0, Cons(z1, z2)), EQEDGE(z0, z1)) MEMBER(z0, Nil) -> c24 EQEDGE(E(z0, z1), E(z2, z3)) -> c25(EQEDGE[ITE](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1), AND(!EQ(z0, z2), !EQ(z1, z3)), !EQ'(z0, z2)) EQEDGE(E(z0, z1), E(z2, z3)) -> c26(EQEDGE[ITE](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1), AND(!EQ(z0, z2), !EQ(z1, z3)), !EQ'(z1, z3)) NOTEMPTY(Cons(z0, z1)) -> c27 NOTEMPTY(Nil) -> c28 REACH(z0, z1, z2) -> c29(REACH[ITE](member(E(z0, z1), z2), z0, z1, z2), MEMBER(E(z0, z1), z2)) GOAL(z0, z1, z2) -> c30(REACH(z0, z1, z2)) S tuples: GETNODEFROMEDGE(S(S(z0)), E(z1, z2)) -> c18 GETNODEFROMEDGE(S(0), E(z0, z1)) -> c19 GETNODEFROMEDGE(0, E(z0, z1)) -> c20 VIA(z0, z1, Cons(E(z2, z3), z4), z5) -> c21(VIA[ITE](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5), !EQ'(z0, z2)) VIA(z0, z1, Nil, z2) -> c22 MEMBER(z0, Cons(z1, z2)) -> c23(MEMBER[ITE](eqEdge(z0, z1), z0, Cons(z1, z2)), EQEDGE(z0, z1)) MEMBER(z0, Nil) -> c24 EQEDGE(E(z0, z1), E(z2, z3)) -> c25(EQEDGE[ITE](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1), AND(!EQ(z0, z2), !EQ(z1, z3)), !EQ'(z0, z2)) EQEDGE(E(z0, z1), E(z2, z3)) -> c26(EQEDGE[ITE](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1), AND(!EQ(z0, z2), !EQ(z1, z3)), !EQ'(z1, z3)) NOTEMPTY(Cons(z0, z1)) -> c27 NOTEMPTY(Nil) -> c28 REACH(z0, z1, z2) -> c29(REACH[ITE](member(E(z0, z1), z2), z0, z1, z2), MEMBER(E(z0, z1), z2)) GOAL(z0, z1, z2) -> c30(REACH(z0, z1, z2)) K tuples:none Defined Rule Symbols: getNodeFromEdge_2, via_4, member_2, eqEdge_2, notEmpty_1, reach_3, goal_3, !EQ_2, and_2, via[Ite]_5, via[Let]_5, member[Ite]_3, reach[Ite]_4, eqEdge[Ite]_5 Defined Pair Symbols: !EQ'_2, AND_2, VIA[ITE]_5, VIA[LET]_5, MEMBER[ITE]_3, REACH[ITE]_4, EQEDGE[ITE]_5, GETNODEFROMEDGE_2, VIA_4, MEMBER_2, EQEDGE_2, NOTEMPTY_1, REACH_3, GOAL_3 Compound Symbols: c_1, c1, c2, c3, c4, c5, c6, c7, c8_2, c9_1, c10_1, c11, c12_1, c13, c14_1, c15, c16, c17, c18, c19, c20, c21_2, c22, c23_2, c24, c25_3, c26_3, c27, c28, c29_2, c30_1 ---------------------------------------- (27) CdtLeafRemovalProof (ComplexityIfPolyImplication) Removed 1 leading nodes: GOAL(z0, z1, z2) -> c30(REACH(z0, z1, z2)) Removed 17 trailing nodes: VIA[LET](z0, z1, Cons(z2, z3), z4, Cons(z5, z6)) -> c11 !EQ'(0, S(z0)) -> c1 AND(True, True) -> c7 REACH[ITE](True, z0, z1, z2) -> c15 AND(True, False) -> c5 !EQ'(S(z0), 0) -> c2 EQEDGE[ITE](False, z0, z1, z2, z3) -> c16 GETNODEFROMEDGE(S(S(z0)), E(z1, z2)) -> c18 EQEDGE[ITE](True, z0, z1, z2, z3) -> c17 AND(False, False) -> c4 GETNODEFROMEDGE(S(0), E(z0, z1)) -> c19 !EQ'(0, 0) -> c3 GETNODEFROMEDGE(0, E(z0, z1)) -> c20 NOTEMPTY(Cons(z0, z1)) -> c27 NOTEMPTY(Nil) -> c28 MEMBER[ITE](True, z0, z1) -> c13 AND(False, True) -> c6 ---------------------------------------- (28) Obligation: Complexity Dependency Tuples Problem Rules: !EQ(S(z0), S(z1)) -> !EQ(z0, z1) !EQ(0, S(z0)) -> False !EQ(S(z0), 0) -> False !EQ(0, 0) -> True and(False, False) -> False and(True, False) -> False and(False, True) -> False and(True, True) -> True via[Ite](True, z0, z1, Cons(E(z2, z3), z4), z5) -> via[Let](z0, z1, Cons(E(z2, z3), z4), z5, reach(z3, z1, z5)) via[Ite](False, z0, z1, Cons(z2, z3), z4) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Nil) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Cons(z5, z6)) -> Cons(z2, Cons(z5, z6)) member[Ite](False, z0, Cons(z1, z2)) -> member(z0, z2) member[Ite](True, z0, z1) -> True reach[Ite](False, z0, z1, z2) -> via(z0, z1, z2, z2) reach[Ite](True, z0, z1, z2) -> Cons(E(z0, z1), Nil) eqEdge[Ite](False, z0, z1, z2, z3) -> False eqEdge[Ite](True, z0, z1, z2, z3) -> True getNodeFromEdge(S(S(z0)), E(z1, z2)) -> z2 getNodeFromEdge(S(0), E(z0, z1)) -> z0 getNodeFromEdge(0, E(z0, z1)) -> z0 via(z0, z1, Cons(E(z2, z3), z4), z5) -> via[Ite](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5) via(z0, z1, Nil, z2) -> Nil member(z0, Cons(z1, z2)) -> member[Ite](eqEdge(z0, z1), z0, Cons(z1, z2)) member(z0, Nil) -> False eqEdge(E(z0, z1), E(z2, z3)) -> eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1) notEmpty(Cons(z0, z1)) -> True notEmpty(Nil) -> False reach(z0, z1, z2) -> reach[Ite](member(E(z0, z1), z2), z0, z1, z2) goal(z0, z1, z2) -> reach(z0, z1, z2) Tuples: !EQ'(S(z0), S(z1)) -> c(!EQ'(z0, z1)) VIA[ITE](True, z0, z1, Cons(E(z2, z3), z4), z5) -> c8(VIA[LET](z0, z1, Cons(E(z2, z3), z4), z5, reach(z3, z1, z5)), REACH(z3, z1, z5)) VIA[ITE](False, z0, z1, Cons(z2, z3), z4) -> c9(VIA(z0, z1, z3, z4)) VIA[LET](z0, z1, Cons(z2, z3), z4, Nil) -> c10(VIA(z0, z1, z3, z4)) MEMBER[ITE](False, z0, Cons(z1, z2)) -> c12(MEMBER(z0, z2)) REACH[ITE](False, z0, z1, z2) -> c14(VIA(z0, z1, z2, z2)) VIA(z0, z1, Cons(E(z2, z3), z4), z5) -> c21(VIA[ITE](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5), !EQ'(z0, z2)) VIA(z0, z1, Nil, z2) -> c22 MEMBER(z0, Cons(z1, z2)) -> c23(MEMBER[ITE](eqEdge(z0, z1), z0, Cons(z1, z2)), EQEDGE(z0, z1)) MEMBER(z0, Nil) -> c24 EQEDGE(E(z0, z1), E(z2, z3)) -> c25(EQEDGE[ITE](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1), AND(!EQ(z0, z2), !EQ(z1, z3)), !EQ'(z0, z2)) EQEDGE(E(z0, z1), E(z2, z3)) -> c26(EQEDGE[ITE](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1), AND(!EQ(z0, z2), !EQ(z1, z3)), !EQ'(z1, z3)) REACH(z0, z1, z2) -> c29(REACH[ITE](member(E(z0, z1), z2), z0, z1, z2), MEMBER(E(z0, z1), z2)) S tuples: VIA(z0, z1, Cons(E(z2, z3), z4), z5) -> c21(VIA[ITE](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5), !EQ'(z0, z2)) VIA(z0, z1, Nil, z2) -> c22 MEMBER(z0, Cons(z1, z2)) -> c23(MEMBER[ITE](eqEdge(z0, z1), z0, Cons(z1, z2)), EQEDGE(z0, z1)) MEMBER(z0, Nil) -> c24 EQEDGE(E(z0, z1), E(z2, z3)) -> c25(EQEDGE[ITE](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1), AND(!EQ(z0, z2), !EQ(z1, z3)), !EQ'(z0, z2)) EQEDGE(E(z0, z1), E(z2, z3)) -> c26(EQEDGE[ITE](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1), AND(!EQ(z0, z2), !EQ(z1, z3)), !EQ'(z1, z3)) REACH(z0, z1, z2) -> c29(REACH[ITE](member(E(z0, z1), z2), z0, z1, z2), MEMBER(E(z0, z1), z2)) K tuples:none Defined Rule Symbols: getNodeFromEdge_2, via_4, member_2, eqEdge_2, notEmpty_1, reach_3, goal_3, !EQ_2, and_2, via[Ite]_5, via[Let]_5, member[Ite]_3, reach[Ite]_4, eqEdge[Ite]_5 Defined Pair Symbols: !EQ'_2, VIA[ITE]_5, VIA[LET]_5, MEMBER[ITE]_3, REACH[ITE]_4, VIA_4, MEMBER_2, EQEDGE_2, REACH_3 Compound Symbols: c_1, c8_2, c9_1, c10_1, c12_1, c14_1, c21_2, c22, c23_2, c24, c25_3, c26_3, c29_2 ---------------------------------------- (29) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (30) Obligation: Complexity Dependency Tuples Problem Rules: !EQ(S(z0), S(z1)) -> !EQ(z0, z1) !EQ(0, S(z0)) -> False !EQ(S(z0), 0) -> False !EQ(0, 0) -> True and(False, False) -> False and(True, False) -> False and(False, True) -> False and(True, True) -> True via[Ite](True, z0, z1, Cons(E(z2, z3), z4), z5) -> via[Let](z0, z1, Cons(E(z2, z3), z4), z5, reach(z3, z1, z5)) via[Ite](False, z0, z1, Cons(z2, z3), z4) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Nil) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Cons(z5, z6)) -> Cons(z2, Cons(z5, z6)) member[Ite](False, z0, Cons(z1, z2)) -> member(z0, z2) member[Ite](True, z0, z1) -> True reach[Ite](False, z0, z1, z2) -> via(z0, z1, z2, z2) reach[Ite](True, z0, z1, z2) -> Cons(E(z0, z1), Nil) eqEdge[Ite](False, z0, z1, z2, z3) -> False eqEdge[Ite](True, z0, z1, z2, z3) -> True getNodeFromEdge(S(S(z0)), E(z1, z2)) -> z2 getNodeFromEdge(S(0), E(z0, z1)) -> z0 getNodeFromEdge(0, E(z0, z1)) -> z0 via(z0, z1, Cons(E(z2, z3), z4), z5) -> via[Ite](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5) via(z0, z1, Nil, z2) -> Nil member(z0, Cons(z1, z2)) -> member[Ite](eqEdge(z0, z1), z0, Cons(z1, z2)) member(z0, Nil) -> False eqEdge(E(z0, z1), E(z2, z3)) -> eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1) notEmpty(Cons(z0, z1)) -> True notEmpty(Nil) -> False reach(z0, z1, z2) -> reach[Ite](member(E(z0, z1), z2), z0, z1, z2) goal(z0, z1, z2) -> reach(z0, z1, z2) Tuples: !EQ'(S(z0), S(z1)) -> c(!EQ'(z0, z1)) VIA[ITE](True, z0, z1, Cons(E(z2, z3), z4), z5) -> c8(VIA[LET](z0, z1, Cons(E(z2, z3), z4), z5, reach(z3, z1, z5)), REACH(z3, z1, z5)) VIA[ITE](False, z0, z1, Cons(z2, z3), z4) -> c9(VIA(z0, z1, z3, z4)) VIA[LET](z0, z1, Cons(z2, z3), z4, Nil) -> c10(VIA(z0, z1, z3, z4)) MEMBER[ITE](False, z0, Cons(z1, z2)) -> c12(MEMBER(z0, z2)) REACH[ITE](False, z0, z1, z2) -> c14(VIA(z0, z1, z2, z2)) VIA(z0, z1, Cons(E(z2, z3), z4), z5) -> c21(VIA[ITE](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5), !EQ'(z0, z2)) VIA(z0, z1, Nil, z2) -> c22 MEMBER(z0, Cons(z1, z2)) -> c23(MEMBER[ITE](eqEdge(z0, z1), z0, Cons(z1, z2)), EQEDGE(z0, z1)) MEMBER(z0, Nil) -> c24 REACH(z0, z1, z2) -> c29(REACH[ITE](member(E(z0, z1), z2), z0, z1, z2), MEMBER(E(z0, z1), z2)) EQEDGE(E(z0, z1), E(z2, z3)) -> c25(!EQ'(z0, z2)) EQEDGE(E(z0, z1), E(z2, z3)) -> c26(!EQ'(z1, z3)) S tuples: VIA(z0, z1, Cons(E(z2, z3), z4), z5) -> c21(VIA[ITE](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5), !EQ'(z0, z2)) VIA(z0, z1, Nil, z2) -> c22 MEMBER(z0, Cons(z1, z2)) -> c23(MEMBER[ITE](eqEdge(z0, z1), z0, Cons(z1, z2)), EQEDGE(z0, z1)) MEMBER(z0, Nil) -> c24 REACH(z0, z1, z2) -> c29(REACH[ITE](member(E(z0, z1), z2), z0, z1, z2), MEMBER(E(z0, z1), z2)) EQEDGE(E(z0, z1), E(z2, z3)) -> c25(!EQ'(z0, z2)) EQEDGE(E(z0, z1), E(z2, z3)) -> c26(!EQ'(z1, z3)) K tuples:none Defined Rule Symbols: getNodeFromEdge_2, via_4, member_2, eqEdge_2, notEmpty_1, reach_3, goal_3, !EQ_2, and_2, via[Ite]_5, via[Let]_5, member[Ite]_3, reach[Ite]_4, eqEdge[Ite]_5 Defined Pair Symbols: !EQ'_2, VIA[ITE]_5, VIA[LET]_5, MEMBER[ITE]_3, REACH[ITE]_4, VIA_4, MEMBER_2, REACH_3, EQEDGE_2 Compound Symbols: c_1, c8_2, c9_1, c10_1, c12_1, c14_1, c21_2, c22, c23_2, c24, c29_2, c25_1, c26_1 ---------------------------------------- (31) CdtUsableRulesProof (BOTH BOUNDS(ID, ID)) The following rules are not usable and were removed: getNodeFromEdge(S(S(z0)), E(z1, z2)) -> z2 getNodeFromEdge(S(0), E(z0, z1)) -> z0 getNodeFromEdge(0, E(z0, z1)) -> z0 notEmpty(Cons(z0, z1)) -> True notEmpty(Nil) -> False goal(z0, z1, z2) -> reach(z0, z1, z2) ---------------------------------------- (32) Obligation: Complexity Dependency Tuples Problem Rules: reach(z0, z1, z2) -> reach[Ite](member(E(z0, z1), z2), z0, z1, z2) reach[Ite](False, z0, z1, z2) -> via(z0, z1, z2, z2) reach[Ite](True, z0, z1, z2) -> Cons(E(z0, z1), Nil) member(z0, Cons(z1, z2)) -> member[Ite](eqEdge(z0, z1), z0, Cons(z1, z2)) member(z0, Nil) -> False member[Ite](False, z0, Cons(z1, z2)) -> member(z0, z2) member[Ite](True, z0, z1) -> True eqEdge(E(z0, z1), E(z2, z3)) -> eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1) eqEdge[Ite](False, z0, z1, z2, z3) -> False eqEdge[Ite](True, z0, z1, z2, z3) -> True and(False, False) -> False and(True, False) -> False and(False, True) -> False and(True, True) -> True !EQ(S(z0), S(z1)) -> !EQ(z0, z1) !EQ(0, S(z0)) -> False !EQ(S(z0), 0) -> False !EQ(0, 0) -> True via(z0, z1, Cons(E(z2, z3), z4), z5) -> via[Ite](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5) via(z0, z1, Nil, z2) -> Nil via[Ite](True, z0, z1, Cons(E(z2, z3), z4), z5) -> via[Let](z0, z1, Cons(E(z2, z3), z4), z5, reach(z3, z1, z5)) via[Ite](False, z0, z1, Cons(z2, z3), z4) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Nil) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Cons(z5, z6)) -> Cons(z2, Cons(z5, z6)) Tuples: !EQ'(S(z0), S(z1)) -> c(!EQ'(z0, z1)) VIA[ITE](True, z0, z1, Cons(E(z2, z3), z4), z5) -> c8(VIA[LET](z0, z1, Cons(E(z2, z3), z4), z5, reach(z3, z1, z5)), REACH(z3, z1, z5)) VIA[ITE](False, z0, z1, Cons(z2, z3), z4) -> c9(VIA(z0, z1, z3, z4)) VIA[LET](z0, z1, Cons(z2, z3), z4, Nil) -> c10(VIA(z0, z1, z3, z4)) MEMBER[ITE](False, z0, Cons(z1, z2)) -> c12(MEMBER(z0, z2)) REACH[ITE](False, z0, z1, z2) -> c14(VIA(z0, z1, z2, z2)) VIA(z0, z1, Cons(E(z2, z3), z4), z5) -> c21(VIA[ITE](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5), !EQ'(z0, z2)) VIA(z0, z1, Nil, z2) -> c22 MEMBER(z0, Cons(z1, z2)) -> c23(MEMBER[ITE](eqEdge(z0, z1), z0, Cons(z1, z2)), EQEDGE(z0, z1)) MEMBER(z0, Nil) -> c24 REACH(z0, z1, z2) -> c29(REACH[ITE](member(E(z0, z1), z2), z0, z1, z2), MEMBER(E(z0, z1), z2)) EQEDGE(E(z0, z1), E(z2, z3)) -> c25(!EQ'(z0, z2)) EQEDGE(E(z0, z1), E(z2, z3)) -> c26(!EQ'(z1, z3)) S tuples: VIA(z0, z1, Cons(E(z2, z3), z4), z5) -> c21(VIA[ITE](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5), !EQ'(z0, z2)) VIA(z0, z1, Nil, z2) -> c22 MEMBER(z0, Cons(z1, z2)) -> c23(MEMBER[ITE](eqEdge(z0, z1), z0, Cons(z1, z2)), EQEDGE(z0, z1)) MEMBER(z0, Nil) -> c24 REACH(z0, z1, z2) -> c29(REACH[ITE](member(E(z0, z1), z2), z0, z1, z2), MEMBER(E(z0, z1), z2)) EQEDGE(E(z0, z1), E(z2, z3)) -> c25(!EQ'(z0, z2)) EQEDGE(E(z0, z1), E(z2, z3)) -> c26(!EQ'(z1, z3)) K tuples:none Defined Rule Symbols: reach_3, reach[Ite]_4, member_2, member[Ite]_3, eqEdge_2, eqEdge[Ite]_5, and_2, !EQ_2, via_4, via[Ite]_5, via[Let]_5 Defined Pair Symbols: !EQ'_2, VIA[ITE]_5, VIA[LET]_5, MEMBER[ITE]_3, REACH[ITE]_4, VIA_4, MEMBER_2, REACH_3, EQEDGE_2 Compound Symbols: c_1, c8_2, c9_1, c10_1, c12_1, c14_1, c21_2, c22, c23_2, c24, c29_2, c25_1, c26_1 ---------------------------------------- (33) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace VIA[ITE](True, z0, z1, Cons(E(z2, z3), z4), z5) -> c8(VIA[LET](z0, z1, Cons(E(z2, z3), z4), z5, reach(z3, z1, z5)), REACH(z3, z1, z5)) by VIA[ITE](True, x0, z1, Cons(E(x2, z0), x4), z2) -> c8(VIA[LET](x0, z1, Cons(E(x2, z0), x4), z2, reach[Ite](member(E(z0, z1), z2), z0, z1, z2)), REACH(z0, z1, z2)) ---------------------------------------- (34) Obligation: Complexity Dependency Tuples Problem Rules: reach(z0, z1, z2) -> reach[Ite](member(E(z0, z1), z2), z0, z1, z2) reach[Ite](False, z0, z1, z2) -> via(z0, z1, z2, z2) reach[Ite](True, z0, z1, z2) -> Cons(E(z0, z1), Nil) member(z0, Cons(z1, z2)) -> member[Ite](eqEdge(z0, z1), z0, Cons(z1, z2)) member(z0, Nil) -> False member[Ite](False, z0, Cons(z1, z2)) -> member(z0, z2) member[Ite](True, z0, z1) -> True eqEdge(E(z0, z1), E(z2, z3)) -> eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1) eqEdge[Ite](False, z0, z1, z2, z3) -> False eqEdge[Ite](True, z0, z1, z2, z3) -> True and(False, False) -> False and(True, False) -> False and(False, True) -> False and(True, True) -> True !EQ(S(z0), S(z1)) -> !EQ(z0, z1) !EQ(0, S(z0)) -> False !EQ(S(z0), 0) -> False !EQ(0, 0) -> True via(z0, z1, Cons(E(z2, z3), z4), z5) -> via[Ite](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5) via(z0, z1, Nil, z2) -> Nil via[Ite](True, z0, z1, Cons(E(z2, z3), z4), z5) -> via[Let](z0, z1, Cons(E(z2, z3), z4), z5, reach(z3, z1, z5)) via[Ite](False, z0, z1, Cons(z2, z3), z4) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Nil) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Cons(z5, z6)) -> Cons(z2, Cons(z5, z6)) Tuples: !EQ'(S(z0), S(z1)) -> c(!EQ'(z0, z1)) VIA[ITE](False, z0, z1, Cons(z2, z3), z4) -> c9(VIA(z0, z1, z3, z4)) VIA[LET](z0, z1, Cons(z2, z3), z4, Nil) -> c10(VIA(z0, z1, z3, z4)) MEMBER[ITE](False, z0, Cons(z1, z2)) -> c12(MEMBER(z0, z2)) REACH[ITE](False, z0, z1, z2) -> c14(VIA(z0, z1, z2, z2)) VIA(z0, z1, Cons(E(z2, z3), z4), z5) -> c21(VIA[ITE](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5), !EQ'(z0, z2)) VIA(z0, z1, Nil, z2) -> c22 MEMBER(z0, Cons(z1, z2)) -> c23(MEMBER[ITE](eqEdge(z0, z1), z0, Cons(z1, z2)), EQEDGE(z0, z1)) MEMBER(z0, Nil) -> c24 REACH(z0, z1, z2) -> c29(REACH[ITE](member(E(z0, z1), z2), z0, z1, z2), MEMBER(E(z0, z1), z2)) EQEDGE(E(z0, z1), E(z2, z3)) -> c25(!EQ'(z0, z2)) EQEDGE(E(z0, z1), E(z2, z3)) -> c26(!EQ'(z1, z3)) VIA[ITE](True, x0, z1, Cons(E(x2, z0), x4), z2) -> c8(VIA[LET](x0, z1, Cons(E(x2, z0), x4), z2, reach[Ite](member(E(z0, z1), z2), z0, z1, z2)), REACH(z0, z1, z2)) S tuples: VIA(z0, z1, Cons(E(z2, z3), z4), z5) -> c21(VIA[ITE](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5), !EQ'(z0, z2)) VIA(z0, z1, Nil, z2) -> c22 MEMBER(z0, Cons(z1, z2)) -> c23(MEMBER[ITE](eqEdge(z0, z1), z0, Cons(z1, z2)), EQEDGE(z0, z1)) MEMBER(z0, Nil) -> c24 REACH(z0, z1, z2) -> c29(REACH[ITE](member(E(z0, z1), z2), z0, z1, z2), MEMBER(E(z0, z1), z2)) EQEDGE(E(z0, z1), E(z2, z3)) -> c25(!EQ'(z0, z2)) EQEDGE(E(z0, z1), E(z2, z3)) -> c26(!EQ'(z1, z3)) K tuples:none Defined Rule Symbols: reach_3, reach[Ite]_4, member_2, member[Ite]_3, eqEdge_2, eqEdge[Ite]_5, and_2, !EQ_2, via_4, via[Ite]_5, via[Let]_5 Defined Pair Symbols: !EQ'_2, VIA[ITE]_5, VIA[LET]_5, MEMBER[ITE]_3, REACH[ITE]_4, VIA_4, MEMBER_2, REACH_3, EQEDGE_2 Compound Symbols: c_1, c9_1, c10_1, c12_1, c14_1, c21_2, c22, c23_2, c24, c29_2, c25_1, c26_1, c8_2 ---------------------------------------- (35) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace VIA(z0, z1, Cons(E(z2, z3), z4), z5) -> c21(VIA[ITE](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5), !EQ'(z0, z2)) by VIA(S(z0), x1, Cons(E(S(z1), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(z0), x1, Cons(E(S(z1), x3), x4), x5), !EQ'(S(z0), S(z1))) VIA(0, x1, Cons(E(S(z0), x3), x4), x5) -> c21(VIA[ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5), !EQ'(0, S(z0))) VIA(S(z0), x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5), !EQ'(S(z0), 0)) VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5), !EQ'(0, 0)) ---------------------------------------- (36) Obligation: Complexity Dependency Tuples Problem Rules: reach(z0, z1, z2) -> reach[Ite](member(E(z0, z1), z2), z0, z1, z2) reach[Ite](False, z0, z1, z2) -> via(z0, z1, z2, z2) reach[Ite](True, z0, z1, z2) -> Cons(E(z0, z1), Nil) member(z0, Cons(z1, z2)) -> member[Ite](eqEdge(z0, z1), z0, Cons(z1, z2)) member(z0, Nil) -> False member[Ite](False, z0, Cons(z1, z2)) -> member(z0, z2) member[Ite](True, z0, z1) -> True eqEdge(E(z0, z1), E(z2, z3)) -> eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1) eqEdge[Ite](False, z0, z1, z2, z3) -> False eqEdge[Ite](True, z0, z1, z2, z3) -> True and(False, False) -> False and(True, False) -> False and(False, True) -> False and(True, True) -> True !EQ(S(z0), S(z1)) -> !EQ(z0, z1) !EQ(0, S(z0)) -> False !EQ(S(z0), 0) -> False !EQ(0, 0) -> True via(z0, z1, Cons(E(z2, z3), z4), z5) -> via[Ite](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5) via(z0, z1, Nil, z2) -> Nil via[Ite](True, z0, z1, Cons(E(z2, z3), z4), z5) -> via[Let](z0, z1, Cons(E(z2, z3), z4), z5, reach(z3, z1, z5)) via[Ite](False, z0, z1, Cons(z2, z3), z4) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Nil) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Cons(z5, z6)) -> Cons(z2, Cons(z5, z6)) Tuples: !EQ'(S(z0), S(z1)) -> c(!EQ'(z0, z1)) VIA[ITE](False, z0, z1, Cons(z2, z3), z4) -> c9(VIA(z0, z1, z3, z4)) VIA[LET](z0, z1, Cons(z2, z3), z4, Nil) -> c10(VIA(z0, z1, z3, z4)) MEMBER[ITE](False, z0, Cons(z1, z2)) -> c12(MEMBER(z0, z2)) REACH[ITE](False, z0, z1, z2) -> c14(VIA(z0, z1, z2, z2)) VIA(z0, z1, Nil, z2) -> c22 MEMBER(z0, Cons(z1, z2)) -> c23(MEMBER[ITE](eqEdge(z0, z1), z0, Cons(z1, z2)), EQEDGE(z0, z1)) MEMBER(z0, Nil) -> c24 REACH(z0, z1, z2) -> c29(REACH[ITE](member(E(z0, z1), z2), z0, z1, z2), MEMBER(E(z0, z1), z2)) EQEDGE(E(z0, z1), E(z2, z3)) -> c25(!EQ'(z0, z2)) EQEDGE(E(z0, z1), E(z2, z3)) -> c26(!EQ'(z1, z3)) VIA[ITE](True, x0, z1, Cons(E(x2, z0), x4), z2) -> c8(VIA[LET](x0, z1, Cons(E(x2, z0), x4), z2, reach[Ite](member(E(z0, z1), z2), z0, z1, z2)), REACH(z0, z1, z2)) VIA(S(z0), x1, Cons(E(S(z1), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(z0), x1, Cons(E(S(z1), x3), x4), x5), !EQ'(S(z0), S(z1))) VIA(0, x1, Cons(E(S(z0), x3), x4), x5) -> c21(VIA[ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5), !EQ'(0, S(z0))) VIA(S(z0), x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5), !EQ'(S(z0), 0)) VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5), !EQ'(0, 0)) S tuples: VIA(z0, z1, Nil, z2) -> c22 MEMBER(z0, Cons(z1, z2)) -> c23(MEMBER[ITE](eqEdge(z0, z1), z0, Cons(z1, z2)), EQEDGE(z0, z1)) MEMBER(z0, Nil) -> c24 REACH(z0, z1, z2) -> c29(REACH[ITE](member(E(z0, z1), z2), z0, z1, z2), MEMBER(E(z0, z1), z2)) EQEDGE(E(z0, z1), E(z2, z3)) -> c25(!EQ'(z0, z2)) EQEDGE(E(z0, z1), E(z2, z3)) -> c26(!EQ'(z1, z3)) VIA(S(z0), x1, Cons(E(S(z1), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(z0), x1, Cons(E(S(z1), x3), x4), x5), !EQ'(S(z0), S(z1))) VIA(0, x1, Cons(E(S(z0), x3), x4), x5) -> c21(VIA[ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5), !EQ'(0, S(z0))) VIA(S(z0), x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5), !EQ'(S(z0), 0)) VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5), !EQ'(0, 0)) K tuples:none Defined Rule Symbols: reach_3, reach[Ite]_4, member_2, member[Ite]_3, eqEdge_2, eqEdge[Ite]_5, and_2, !EQ_2, via_4, via[Ite]_5, via[Let]_5 Defined Pair Symbols: !EQ'_2, VIA[ITE]_5, VIA[LET]_5, MEMBER[ITE]_3, REACH[ITE]_4, VIA_4, MEMBER_2, REACH_3, EQEDGE_2 Compound Symbols: c_1, c9_1, c10_1, c12_1, c14_1, c22, c23_2, c24, c29_2, c25_1, c26_1, c8_2, c21_2 ---------------------------------------- (37) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing tuple parts ---------------------------------------- (38) Obligation: Complexity Dependency Tuples Problem Rules: reach(z0, z1, z2) -> reach[Ite](member(E(z0, z1), z2), z0, z1, z2) reach[Ite](False, z0, z1, z2) -> via(z0, z1, z2, z2) reach[Ite](True, z0, z1, z2) -> Cons(E(z0, z1), Nil) member(z0, Cons(z1, z2)) -> member[Ite](eqEdge(z0, z1), z0, Cons(z1, z2)) member(z0, Nil) -> False member[Ite](False, z0, Cons(z1, z2)) -> member(z0, z2) member[Ite](True, z0, z1) -> True eqEdge(E(z0, z1), E(z2, z3)) -> eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1) eqEdge[Ite](False, z0, z1, z2, z3) -> False eqEdge[Ite](True, z0, z1, z2, z3) -> True and(False, False) -> False and(True, False) -> False and(False, True) -> False and(True, True) -> True !EQ(S(z0), S(z1)) -> !EQ(z0, z1) !EQ(0, S(z0)) -> False !EQ(S(z0), 0) -> False !EQ(0, 0) -> True via(z0, z1, Cons(E(z2, z3), z4), z5) -> via[Ite](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5) via(z0, z1, Nil, z2) -> Nil via[Ite](True, z0, z1, Cons(E(z2, z3), z4), z5) -> via[Let](z0, z1, Cons(E(z2, z3), z4), z5, reach(z3, z1, z5)) via[Ite](False, z0, z1, Cons(z2, z3), z4) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Nil) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Cons(z5, z6)) -> Cons(z2, Cons(z5, z6)) Tuples: !EQ'(S(z0), S(z1)) -> c(!EQ'(z0, z1)) VIA[ITE](False, z0, z1, Cons(z2, z3), z4) -> c9(VIA(z0, z1, z3, z4)) VIA[LET](z0, z1, Cons(z2, z3), z4, Nil) -> c10(VIA(z0, z1, z3, z4)) MEMBER[ITE](False, z0, Cons(z1, z2)) -> c12(MEMBER(z0, z2)) REACH[ITE](False, z0, z1, z2) -> c14(VIA(z0, z1, z2, z2)) VIA(z0, z1, Nil, z2) -> c22 MEMBER(z0, Cons(z1, z2)) -> c23(MEMBER[ITE](eqEdge(z0, z1), z0, Cons(z1, z2)), EQEDGE(z0, z1)) MEMBER(z0, Nil) -> c24 REACH(z0, z1, z2) -> c29(REACH[ITE](member(E(z0, z1), z2), z0, z1, z2), MEMBER(E(z0, z1), z2)) EQEDGE(E(z0, z1), E(z2, z3)) -> c25(!EQ'(z0, z2)) EQEDGE(E(z0, z1), E(z2, z3)) -> c26(!EQ'(z1, z3)) VIA[ITE](True, x0, z1, Cons(E(x2, z0), x4), z2) -> c8(VIA[LET](x0, z1, Cons(E(x2, z0), x4), z2, reach[Ite](member(E(z0, z1), z2), z0, z1, z2)), REACH(z0, z1, z2)) VIA(S(z0), x1, Cons(E(S(z1), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(z0), x1, Cons(E(S(z1), x3), x4), x5), !EQ'(S(z0), S(z1))) VIA(0, x1, Cons(E(S(z0), x3), x4), x5) -> c21(VIA[ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) VIA(S(z0), x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) S tuples: VIA(z0, z1, Nil, z2) -> c22 MEMBER(z0, Cons(z1, z2)) -> c23(MEMBER[ITE](eqEdge(z0, z1), z0, Cons(z1, z2)), EQEDGE(z0, z1)) MEMBER(z0, Nil) -> c24 REACH(z0, z1, z2) -> c29(REACH[ITE](member(E(z0, z1), z2), z0, z1, z2), MEMBER(E(z0, z1), z2)) EQEDGE(E(z0, z1), E(z2, z3)) -> c25(!EQ'(z0, z2)) EQEDGE(E(z0, z1), E(z2, z3)) -> c26(!EQ'(z1, z3)) VIA(S(z0), x1, Cons(E(S(z1), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(z0), x1, Cons(E(S(z1), x3), x4), x5), !EQ'(S(z0), S(z1))) VIA(0, x1, Cons(E(S(z0), x3), x4), x5) -> c21(VIA[ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) VIA(S(z0), x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) K tuples:none Defined Rule Symbols: reach_3, reach[Ite]_4, member_2, member[Ite]_3, eqEdge_2, eqEdge[Ite]_5, and_2, !EQ_2, via_4, via[Ite]_5, via[Let]_5 Defined Pair Symbols: !EQ'_2, VIA[ITE]_5, VIA[LET]_5, MEMBER[ITE]_3, REACH[ITE]_4, VIA_4, MEMBER_2, REACH_3, EQEDGE_2 Compound Symbols: c_1, c9_1, c10_1, c12_1, c14_1, c22, c23_2, c24, c29_2, c25_1, c26_1, c8_2, c21_2, c21_1 ---------------------------------------- (39) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MEMBER(z0, Cons(z1, z2)) -> c23(MEMBER[ITE](eqEdge(z0, z1), z0, Cons(z1, z2)), EQEDGE(z0, z1)) by MEMBER(E(z0, z1), Cons(E(z2, z3), x2)) -> c23(MEMBER[ITE](eqEdge[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))) ---------------------------------------- (40) Obligation: Complexity Dependency Tuples Problem Rules: reach(z0, z1, z2) -> reach[Ite](member(E(z0, z1), z2), z0, z1, z2) reach[Ite](False, z0, z1, z2) -> via(z0, z1, z2, z2) reach[Ite](True, z0, z1, z2) -> Cons(E(z0, z1), Nil) member(z0, Cons(z1, z2)) -> member[Ite](eqEdge(z0, z1), z0, Cons(z1, z2)) member(z0, Nil) -> False member[Ite](False, z0, Cons(z1, z2)) -> member(z0, z2) member[Ite](True, z0, z1) -> True eqEdge(E(z0, z1), E(z2, z3)) -> eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1) eqEdge[Ite](False, z0, z1, z2, z3) -> False eqEdge[Ite](True, z0, z1, z2, z3) -> True and(False, False) -> False and(True, False) -> False and(False, True) -> False and(True, True) -> True !EQ(S(z0), S(z1)) -> !EQ(z0, z1) !EQ(0, S(z0)) -> False !EQ(S(z0), 0) -> False !EQ(0, 0) -> True via(z0, z1, Cons(E(z2, z3), z4), z5) -> via[Ite](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5) via(z0, z1, Nil, z2) -> Nil via[Ite](True, z0, z1, Cons(E(z2, z3), z4), z5) -> via[Let](z0, z1, Cons(E(z2, z3), z4), z5, reach(z3, z1, z5)) via[Ite](False, z0, z1, Cons(z2, z3), z4) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Nil) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Cons(z5, z6)) -> Cons(z2, Cons(z5, z6)) Tuples: !EQ'(S(z0), S(z1)) -> c(!EQ'(z0, z1)) VIA[ITE](False, z0, z1, Cons(z2, z3), z4) -> c9(VIA(z0, z1, z3, z4)) VIA[LET](z0, z1, Cons(z2, z3), z4, Nil) -> c10(VIA(z0, z1, z3, z4)) MEMBER[ITE](False, z0, Cons(z1, z2)) -> c12(MEMBER(z0, z2)) REACH[ITE](False, z0, z1, z2) -> c14(VIA(z0, z1, z2, z2)) VIA(z0, z1, Nil, z2) -> c22 MEMBER(z0, Nil) -> c24 REACH(z0, z1, z2) -> c29(REACH[ITE](member(E(z0, z1), z2), z0, z1, z2), MEMBER(E(z0, z1), z2)) EQEDGE(E(z0, z1), E(z2, z3)) -> c25(!EQ'(z0, z2)) EQEDGE(E(z0, z1), E(z2, z3)) -> c26(!EQ'(z1, z3)) VIA[ITE](True, x0, z1, Cons(E(x2, z0), x4), z2) -> c8(VIA[LET](x0, z1, Cons(E(x2, z0), x4), z2, reach[Ite](member(E(z0, z1), z2), z0, z1, z2)), REACH(z0, z1, z2)) VIA(S(z0), x1, Cons(E(S(z1), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(z0), x1, Cons(E(S(z1), x3), x4), x5), !EQ'(S(z0), S(z1))) VIA(0, x1, Cons(E(S(z0), x3), x4), x5) -> c21(VIA[ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) VIA(S(z0), x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) MEMBER(E(z0, z1), Cons(E(z2, z3), x2)) -> c23(MEMBER[ITE](eqEdge[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))) S tuples: VIA(z0, z1, Nil, z2) -> c22 MEMBER(z0, Nil) -> c24 REACH(z0, z1, z2) -> c29(REACH[ITE](member(E(z0, z1), z2), z0, z1, z2), MEMBER(E(z0, z1), z2)) EQEDGE(E(z0, z1), E(z2, z3)) -> c25(!EQ'(z0, z2)) EQEDGE(E(z0, z1), E(z2, z3)) -> c26(!EQ'(z1, z3)) VIA(S(z0), x1, Cons(E(S(z1), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(z0), x1, Cons(E(S(z1), x3), x4), x5), !EQ'(S(z0), S(z1))) VIA(0, x1, Cons(E(S(z0), x3), x4), x5) -> c21(VIA[ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) VIA(S(z0), x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) MEMBER(E(z0, z1), Cons(E(z2, z3), x2)) -> c23(MEMBER[ITE](eqEdge[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 Defined Rule Symbols: reach_3, reach[Ite]_4, member_2, member[Ite]_3, eqEdge_2, eqEdge[Ite]_5, and_2, !EQ_2, via_4, via[Ite]_5, via[Let]_5 Defined Pair Symbols: !EQ'_2, VIA[ITE]_5, VIA[LET]_5, MEMBER[ITE]_3, REACH[ITE]_4, VIA_4, MEMBER_2, REACH_3, EQEDGE_2 Compound Symbols: c_1, c9_1, c10_1, c12_1, c14_1, c22, c24, c29_2, c25_1, c26_1, c8_2, c21_2, c21_1, c23_2 ---------------------------------------- (41) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace REACH(z0, z1, z2) -> c29(REACH[ITE](member(E(z0, z1), z2), z0, z1, z2), MEMBER(E(z0, z1), z2)) by REACH(x0, x1, Cons(z1, z2)) -> c29(REACH[ITE](member[Ite](eqEdge(E(x0, x1), z1), E(x0, x1), Cons(z1, z2)), x0, x1, Cons(z1, z2)), MEMBER(E(x0, x1), Cons(z1, z2))) REACH(x0, x1, Nil) -> c29(REACH[ITE](False, x0, x1, Nil), MEMBER(E(x0, x1), Nil)) REACH(x0, x1, x2) -> c29(MEMBER(E(x0, x1), x2)) ---------------------------------------- (42) Obligation: Complexity Dependency Tuples Problem Rules: reach(z0, z1, z2) -> reach[Ite](member(E(z0, z1), z2), z0, z1, z2) reach[Ite](False, z0, z1, z2) -> via(z0, z1, z2, z2) reach[Ite](True, z0, z1, z2) -> Cons(E(z0, z1), Nil) member(z0, Cons(z1, z2)) -> member[Ite](eqEdge(z0, z1), z0, Cons(z1, z2)) member(z0, Nil) -> False member[Ite](False, z0, Cons(z1, z2)) -> member(z0, z2) member[Ite](True, z0, z1) -> True eqEdge(E(z0, z1), E(z2, z3)) -> eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1) eqEdge[Ite](False, z0, z1, z2, z3) -> False eqEdge[Ite](True, z0, z1, z2, z3) -> True and(False, False) -> False and(True, False) -> False and(False, True) -> False and(True, True) -> True !EQ(S(z0), S(z1)) -> !EQ(z0, z1) !EQ(0, S(z0)) -> False !EQ(S(z0), 0) -> False !EQ(0, 0) -> True via(z0, z1, Cons(E(z2, z3), z4), z5) -> via[Ite](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5) via(z0, z1, Nil, z2) -> Nil via[Ite](True, z0, z1, Cons(E(z2, z3), z4), z5) -> via[Let](z0, z1, Cons(E(z2, z3), z4), z5, reach(z3, z1, z5)) via[Ite](False, z0, z1, Cons(z2, z3), z4) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Nil) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Cons(z5, z6)) -> Cons(z2, Cons(z5, z6)) Tuples: !EQ'(S(z0), S(z1)) -> c(!EQ'(z0, z1)) VIA[ITE](False, z0, z1, Cons(z2, z3), z4) -> c9(VIA(z0, z1, z3, z4)) VIA[LET](z0, z1, Cons(z2, z3), z4, Nil) -> c10(VIA(z0, z1, z3, z4)) MEMBER[ITE](False, z0, Cons(z1, z2)) -> c12(MEMBER(z0, z2)) REACH[ITE](False, z0, z1, z2) -> c14(VIA(z0, z1, z2, z2)) VIA(z0, z1, Nil, z2) -> c22 MEMBER(z0, Nil) -> c24 EQEDGE(E(z0, z1), E(z2, z3)) -> c25(!EQ'(z0, z2)) EQEDGE(E(z0, z1), E(z2, z3)) -> c26(!EQ'(z1, z3)) VIA[ITE](True, x0, z1, Cons(E(x2, z0), x4), z2) -> c8(VIA[LET](x0, z1, Cons(E(x2, z0), x4), z2, reach[Ite](member(E(z0, z1), z2), z0, z1, z2)), REACH(z0, z1, z2)) VIA(S(z0), x1, Cons(E(S(z1), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(z0), x1, Cons(E(S(z1), x3), x4), x5), !EQ'(S(z0), S(z1))) VIA(0, x1, Cons(E(S(z0), x3), x4), x5) -> c21(VIA[ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) VIA(S(z0), x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) MEMBER(E(z0, z1), Cons(E(z2, z3), x2)) -> c23(MEMBER[ITE](eqEdge[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))) REACH(x0, x1, Cons(z1, z2)) -> c29(REACH[ITE](member[Ite](eqEdge(E(x0, x1), z1), E(x0, x1), Cons(z1, z2)), x0, x1, Cons(z1, z2)), MEMBER(E(x0, x1), Cons(z1, z2))) REACH(x0, x1, Nil) -> c29(REACH[ITE](False, x0, x1, Nil), MEMBER(E(x0, x1), Nil)) REACH(x0, x1, x2) -> c29(MEMBER(E(x0, x1), x2)) S tuples: VIA(z0, z1, Nil, z2) -> c22 MEMBER(z0, Nil) -> c24 EQEDGE(E(z0, z1), E(z2, z3)) -> c25(!EQ'(z0, z2)) EQEDGE(E(z0, z1), E(z2, z3)) -> c26(!EQ'(z1, z3)) VIA(S(z0), x1, Cons(E(S(z1), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(z0), x1, Cons(E(S(z1), x3), x4), x5), !EQ'(S(z0), S(z1))) VIA(0, x1, Cons(E(S(z0), x3), x4), x5) -> c21(VIA[ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) VIA(S(z0), x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) MEMBER(E(z0, z1), Cons(E(z2, z3), x2)) -> c23(MEMBER[ITE](eqEdge[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))) REACH(x0, x1, Cons(z1, z2)) -> c29(REACH[ITE](member[Ite](eqEdge(E(x0, x1), z1), E(x0, x1), Cons(z1, z2)), x0, x1, Cons(z1, z2)), MEMBER(E(x0, x1), Cons(z1, z2))) REACH(x0, x1, Nil) -> c29(REACH[ITE](False, x0, x1, Nil), MEMBER(E(x0, x1), Nil)) REACH(x0, x1, x2) -> c29(MEMBER(E(x0, x1), x2)) K tuples:none Defined Rule Symbols: reach_3, reach[Ite]_4, member_2, member[Ite]_3, eqEdge_2, eqEdge[Ite]_5, and_2, !EQ_2, via_4, via[Ite]_5, via[Let]_5 Defined Pair Symbols: !EQ'_2, VIA[ITE]_5, VIA[LET]_5, MEMBER[ITE]_3, REACH[ITE]_4, VIA_4, MEMBER_2, EQEDGE_2, REACH_3 Compound Symbols: c_1, c9_1, c10_1, c12_1, c14_1, c22, c24, c25_1, c26_1, c8_2, c21_2, c21_1, c23_2, c29_2, c29_1 ---------------------------------------- (43) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace VIA[ITE](True, x0, z1, Cons(E(x2, z0), x4), z2) -> c8(VIA[LET](x0, z1, Cons(E(x2, z0), x4), z2, reach[Ite](member(E(z0, z1), z2), z0, z1, z2)), REACH(z0, z1, z2)) by VIA[ITE](True, x0, x1, Cons(E(x2, x3), x4), Cons(z1, z2)) -> c8(VIA[LET](x0, x1, Cons(E(x2, x3), x4), Cons(z1, z2), reach[Ite](member[Ite](eqEdge(E(x3, x1), z1), E(x3, x1), Cons(z1, z2)), x3, x1, Cons(z1, z2))), REACH(x3, x1, Cons(z1, z2))) VIA[ITE](True, x0, x1, Cons(E(x2, x3), x4), Nil) -> c8(VIA[LET](x0, x1, Cons(E(x2, x3), x4), Nil, reach[Ite](False, x3, x1, Nil)), REACH(x3, x1, Nil)) VIA[ITE](True, x0, x1, Cons(E(x2, x3), x4), x5) -> c8(REACH(x3, x1, x5)) ---------------------------------------- (44) Obligation: Complexity Dependency Tuples Problem Rules: reach(z0, z1, z2) -> reach[Ite](member(E(z0, z1), z2), z0, z1, z2) reach[Ite](False, z0, z1, z2) -> via(z0, z1, z2, z2) reach[Ite](True, z0, z1, z2) -> Cons(E(z0, z1), Nil) member(z0, Cons(z1, z2)) -> member[Ite](eqEdge(z0, z1), z0, Cons(z1, z2)) member(z0, Nil) -> False member[Ite](False, z0, Cons(z1, z2)) -> member(z0, z2) member[Ite](True, z0, z1) -> True eqEdge(E(z0, z1), E(z2, z3)) -> eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1) eqEdge[Ite](False, z0, z1, z2, z3) -> False eqEdge[Ite](True, z0, z1, z2, z3) -> True and(False, False) -> False and(True, False) -> False and(False, True) -> False and(True, True) -> True !EQ(S(z0), S(z1)) -> !EQ(z0, z1) !EQ(0, S(z0)) -> False !EQ(S(z0), 0) -> False !EQ(0, 0) -> True via(z0, z1, Cons(E(z2, z3), z4), z5) -> via[Ite](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5) via(z0, z1, Nil, z2) -> Nil via[Ite](True, z0, z1, Cons(E(z2, z3), z4), z5) -> via[Let](z0, z1, Cons(E(z2, z3), z4), z5, reach(z3, z1, z5)) via[Ite](False, z0, z1, Cons(z2, z3), z4) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Nil) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Cons(z5, z6)) -> Cons(z2, Cons(z5, z6)) Tuples: !EQ'(S(z0), S(z1)) -> c(!EQ'(z0, z1)) VIA[ITE](False, z0, z1, Cons(z2, z3), z4) -> c9(VIA(z0, z1, z3, z4)) VIA[LET](z0, z1, Cons(z2, z3), z4, Nil) -> c10(VIA(z0, z1, z3, z4)) MEMBER[ITE](False, z0, Cons(z1, z2)) -> c12(MEMBER(z0, z2)) REACH[ITE](False, z0, z1, z2) -> c14(VIA(z0, z1, z2, z2)) VIA(z0, z1, Nil, z2) -> c22 MEMBER(z0, Nil) -> c24 EQEDGE(E(z0, z1), E(z2, z3)) -> c25(!EQ'(z0, z2)) EQEDGE(E(z0, z1), E(z2, z3)) -> c26(!EQ'(z1, z3)) VIA(S(z0), x1, Cons(E(S(z1), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(z0), x1, Cons(E(S(z1), x3), x4), x5), !EQ'(S(z0), S(z1))) VIA(0, x1, Cons(E(S(z0), x3), x4), x5) -> c21(VIA[ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) VIA(S(z0), x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) MEMBER(E(z0, z1), Cons(E(z2, z3), x2)) -> c23(MEMBER[ITE](eqEdge[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))) REACH(x0, x1, Cons(z1, z2)) -> c29(REACH[ITE](member[Ite](eqEdge(E(x0, x1), z1), E(x0, x1), Cons(z1, z2)), x0, x1, Cons(z1, z2)), MEMBER(E(x0, x1), Cons(z1, z2))) REACH(x0, x1, Nil) -> c29(REACH[ITE](False, x0, x1, Nil), MEMBER(E(x0, x1), Nil)) REACH(x0, x1, x2) -> c29(MEMBER(E(x0, x1), x2)) VIA[ITE](True, x0, x1, Cons(E(x2, x3), x4), Cons(z1, z2)) -> c8(VIA[LET](x0, x1, Cons(E(x2, x3), x4), Cons(z1, z2), reach[Ite](member[Ite](eqEdge(E(x3, x1), z1), E(x3, x1), Cons(z1, z2)), x3, x1, Cons(z1, z2))), REACH(x3, x1, Cons(z1, z2))) VIA[ITE](True, x0, x1, Cons(E(x2, x3), x4), Nil) -> c8(VIA[LET](x0, x1, Cons(E(x2, x3), x4), Nil, reach[Ite](False, x3, x1, Nil)), REACH(x3, x1, Nil)) VIA[ITE](True, x0, x1, Cons(E(x2, x3), x4), x5) -> c8(REACH(x3, x1, x5)) S tuples: VIA(z0, z1, Nil, z2) -> c22 MEMBER(z0, Nil) -> c24 EQEDGE(E(z0, z1), E(z2, z3)) -> c25(!EQ'(z0, z2)) EQEDGE(E(z0, z1), E(z2, z3)) -> c26(!EQ'(z1, z3)) VIA(S(z0), x1, Cons(E(S(z1), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(z0), x1, Cons(E(S(z1), x3), x4), x5), !EQ'(S(z0), S(z1))) VIA(0, x1, Cons(E(S(z0), x3), x4), x5) -> c21(VIA[ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) VIA(S(z0), x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) MEMBER(E(z0, z1), Cons(E(z2, z3), x2)) -> c23(MEMBER[ITE](eqEdge[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))) REACH(x0, x1, Cons(z1, z2)) -> c29(REACH[ITE](member[Ite](eqEdge(E(x0, x1), z1), E(x0, x1), Cons(z1, z2)), x0, x1, Cons(z1, z2)), MEMBER(E(x0, x1), Cons(z1, z2))) REACH(x0, x1, Nil) -> c29(REACH[ITE](False, x0, x1, Nil), MEMBER(E(x0, x1), Nil)) REACH(x0, x1, x2) -> c29(MEMBER(E(x0, x1), x2)) K tuples:none Defined Rule Symbols: reach_3, reach[Ite]_4, member_2, member[Ite]_3, eqEdge_2, eqEdge[Ite]_5, and_2, !EQ_2, via_4, via[Ite]_5, via[Let]_5 Defined Pair Symbols: !EQ'_2, VIA[ITE]_5, VIA[LET]_5, MEMBER[ITE]_3, REACH[ITE]_4, VIA_4, MEMBER_2, EQEDGE_2, REACH_3 Compound Symbols: c_1, c9_1, c10_1, c12_1, c14_1, c22, c24, c25_1, c26_1, c21_2, c21_1, c23_2, c29_2, c29_1, c8_2, c8_1 ---------------------------------------- (45) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace VIA(S(z0), x1, Cons(E(S(z1), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(z0), x1, Cons(E(S(z1), x3), x4), x5), !EQ'(S(z0), S(z1))) by VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5), !EQ'(S(0), S(S(z0)))) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(S(z0)), S(0))) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(0), S(0))) VIA(S(x0), x1, Cons(E(S(x2), x3), x4), x5) -> c21(!EQ'(S(x0), S(x2))) ---------------------------------------- (46) Obligation: Complexity Dependency Tuples Problem Rules: reach(z0, z1, z2) -> reach[Ite](member(E(z0, z1), z2), z0, z1, z2) reach[Ite](False, z0, z1, z2) -> via(z0, z1, z2, z2) reach[Ite](True, z0, z1, z2) -> Cons(E(z0, z1), Nil) member(z0, Cons(z1, z2)) -> member[Ite](eqEdge(z0, z1), z0, Cons(z1, z2)) member(z0, Nil) -> False member[Ite](False, z0, Cons(z1, z2)) -> member(z0, z2) member[Ite](True, z0, z1) -> True eqEdge(E(z0, z1), E(z2, z3)) -> eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1) eqEdge[Ite](False, z0, z1, z2, z3) -> False eqEdge[Ite](True, z0, z1, z2, z3) -> True and(False, False) -> False and(True, False) -> False and(False, True) -> False and(True, True) -> True !EQ(S(z0), S(z1)) -> !EQ(z0, z1) !EQ(0, S(z0)) -> False !EQ(S(z0), 0) -> False !EQ(0, 0) -> True via(z0, z1, Cons(E(z2, z3), z4), z5) -> via[Ite](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5) via(z0, z1, Nil, z2) -> Nil via[Ite](True, z0, z1, Cons(E(z2, z3), z4), z5) -> via[Let](z0, z1, Cons(E(z2, z3), z4), z5, reach(z3, z1, z5)) via[Ite](False, z0, z1, Cons(z2, z3), z4) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Nil) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Cons(z5, z6)) -> Cons(z2, Cons(z5, z6)) Tuples: !EQ'(S(z0), S(z1)) -> c(!EQ'(z0, z1)) VIA[ITE](False, z0, z1, Cons(z2, z3), z4) -> c9(VIA(z0, z1, z3, z4)) VIA[LET](z0, z1, Cons(z2, z3), z4, Nil) -> c10(VIA(z0, z1, z3, z4)) MEMBER[ITE](False, z0, Cons(z1, z2)) -> c12(MEMBER(z0, z2)) REACH[ITE](False, z0, z1, z2) -> c14(VIA(z0, z1, z2, z2)) VIA(z0, z1, Nil, z2) -> c22 MEMBER(z0, Nil) -> c24 EQEDGE(E(z0, z1), E(z2, z3)) -> c25(!EQ'(z0, z2)) EQEDGE(E(z0, z1), E(z2, z3)) -> c26(!EQ'(z1, z3)) VIA(0, x1, Cons(E(S(z0), x3), x4), x5) -> c21(VIA[ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) VIA(S(z0), x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) MEMBER(E(z0, z1), Cons(E(z2, z3), x2)) -> c23(MEMBER[ITE](eqEdge[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))) REACH(x0, x1, Cons(z1, z2)) -> c29(REACH[ITE](member[Ite](eqEdge(E(x0, x1), z1), E(x0, x1), Cons(z1, z2)), x0, x1, Cons(z1, z2)), MEMBER(E(x0, x1), Cons(z1, z2))) REACH(x0, x1, Nil) -> c29(REACH[ITE](False, x0, x1, Nil), MEMBER(E(x0, x1), Nil)) REACH(x0, x1, x2) -> c29(MEMBER(E(x0, x1), x2)) VIA[ITE](True, x0, x1, Cons(E(x2, x3), x4), Cons(z1, z2)) -> c8(VIA[LET](x0, x1, Cons(E(x2, x3), x4), Cons(z1, z2), reach[Ite](member[Ite](eqEdge(E(x3, x1), z1), E(x3, x1), Cons(z1, z2)), x3, x1, Cons(z1, z2))), REACH(x3, x1, Cons(z1, z2))) VIA[ITE](True, x0, x1, Cons(E(x2, x3), x4), Nil) -> c8(VIA[LET](x0, x1, Cons(E(x2, x3), x4), Nil, reach[Ite](False, x3, x1, Nil)), REACH(x3, x1, Nil)) VIA[ITE](True, x0, x1, Cons(E(x2, x3), x4), x5) -> c8(REACH(x3, x1, x5)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5), !EQ'(S(0), S(S(z0)))) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(S(z0)), S(0))) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(0), S(0))) VIA(S(x0), x1, Cons(E(S(x2), x3), x4), x5) -> c21(!EQ'(S(x0), S(x2))) S tuples: VIA(z0, z1, Nil, z2) -> c22 MEMBER(z0, Nil) -> c24 EQEDGE(E(z0, z1), E(z2, z3)) -> c25(!EQ'(z0, z2)) EQEDGE(E(z0, z1), E(z2, z3)) -> c26(!EQ'(z1, z3)) VIA(0, x1, Cons(E(S(z0), x3), x4), x5) -> c21(VIA[ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) VIA(S(z0), x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) MEMBER(E(z0, z1), Cons(E(z2, z3), x2)) -> c23(MEMBER[ITE](eqEdge[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))) REACH(x0, x1, Cons(z1, z2)) -> c29(REACH[ITE](member[Ite](eqEdge(E(x0, x1), z1), E(x0, x1), Cons(z1, z2)), x0, x1, Cons(z1, z2)), MEMBER(E(x0, x1), Cons(z1, z2))) REACH(x0, x1, Nil) -> c29(REACH[ITE](False, x0, x1, Nil), MEMBER(E(x0, x1), Nil)) REACH(x0, x1, x2) -> c29(MEMBER(E(x0, x1), x2)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5), !EQ'(S(0), S(S(z0)))) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(S(z0)), S(0))) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(0), S(0))) VIA(S(x0), x1, Cons(E(S(x2), x3), x4), x5) -> c21(!EQ'(S(x0), S(x2))) K tuples:none Defined Rule Symbols: reach_3, reach[Ite]_4, member_2, member[Ite]_3, eqEdge_2, eqEdge[Ite]_5, and_2, !EQ_2, via_4, via[Ite]_5, via[Let]_5 Defined Pair Symbols: !EQ'_2, VIA[ITE]_5, VIA[LET]_5, MEMBER[ITE]_3, REACH[ITE]_4, VIA_4, MEMBER_2, EQEDGE_2, REACH_3 Compound Symbols: c_1, c9_1, c10_1, c12_1, c14_1, c22, c24, c25_1, c26_1, c21_1, c23_2, c29_2, c29_1, c8_2, c8_1, c21_2 ---------------------------------------- (47) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MEMBER(E(z0, z1), Cons(E(z2, z3), x2)) -> c23(MEMBER[ITE](eqEdge[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))) by MEMBER(E(x0, S(z0)), Cons(E(x2, S(z1)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), !EQ(z0, z1)), x2, S(z1), x0, S(z0)), E(x0, S(z0)), Cons(E(x2, S(z1)), x4)), EQEDGE(E(x0, S(z0)), E(x2, S(z1)))) MEMBER(E(x0, 0), Cons(E(x2, S(z0)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, S(z0), x0, 0), E(x0, 0), Cons(E(x2, S(z0)), x4)), EQEDGE(E(x0, 0), E(x2, S(z0)))) MEMBER(E(x0, S(z0)), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, 0, x0, S(z0)), E(x0, S(z0)), Cons(E(x2, 0), x4)), EQEDGE(E(x0, S(z0)), E(x2, 0))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) MEMBER(E(x0, x1), Cons(E(x2, x3), x4)) -> c23(EQEDGE(E(x0, x1), E(x2, x3))) ---------------------------------------- (48) Obligation: Complexity Dependency Tuples Problem Rules: reach(z0, z1, z2) -> reach[Ite](member(E(z0, z1), z2), z0, z1, z2) reach[Ite](False, z0, z1, z2) -> via(z0, z1, z2, z2) reach[Ite](True, z0, z1, z2) -> Cons(E(z0, z1), Nil) member(z0, Cons(z1, z2)) -> member[Ite](eqEdge(z0, z1), z0, Cons(z1, z2)) member(z0, Nil) -> False member[Ite](False, z0, Cons(z1, z2)) -> member(z0, z2) member[Ite](True, z0, z1) -> True eqEdge(E(z0, z1), E(z2, z3)) -> eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1) eqEdge[Ite](False, z0, z1, z2, z3) -> False eqEdge[Ite](True, z0, z1, z2, z3) -> True and(False, False) -> False and(True, False) -> False and(False, True) -> False and(True, True) -> True !EQ(S(z0), S(z1)) -> !EQ(z0, z1) !EQ(0, S(z0)) -> False !EQ(S(z0), 0) -> False !EQ(0, 0) -> True via(z0, z1, Cons(E(z2, z3), z4), z5) -> via[Ite](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5) via(z0, z1, Nil, z2) -> Nil via[Ite](True, z0, z1, Cons(E(z2, z3), z4), z5) -> via[Let](z0, z1, Cons(E(z2, z3), z4), z5, reach(z3, z1, z5)) via[Ite](False, z0, z1, Cons(z2, z3), z4) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Nil) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Cons(z5, z6)) -> Cons(z2, Cons(z5, z6)) Tuples: !EQ'(S(z0), S(z1)) -> c(!EQ'(z0, z1)) VIA[ITE](False, z0, z1, Cons(z2, z3), z4) -> c9(VIA(z0, z1, z3, z4)) VIA[LET](z0, z1, Cons(z2, z3), z4, Nil) -> c10(VIA(z0, z1, z3, z4)) MEMBER[ITE](False, z0, Cons(z1, z2)) -> c12(MEMBER(z0, z2)) REACH[ITE](False, z0, z1, z2) -> c14(VIA(z0, z1, z2, z2)) VIA(z0, z1, Nil, z2) -> c22 MEMBER(z0, Nil) -> c24 EQEDGE(E(z0, z1), E(z2, z3)) -> c25(!EQ'(z0, z2)) EQEDGE(E(z0, z1), E(z2, z3)) -> c26(!EQ'(z1, z3)) VIA(0, x1, Cons(E(S(z0), x3), x4), x5) -> c21(VIA[ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) VIA(S(z0), x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) REACH(x0, x1, Cons(z1, z2)) -> c29(REACH[ITE](member[Ite](eqEdge(E(x0, x1), z1), E(x0, x1), Cons(z1, z2)), x0, x1, Cons(z1, z2)), MEMBER(E(x0, x1), Cons(z1, z2))) REACH(x0, x1, Nil) -> c29(REACH[ITE](False, x0, x1, Nil), MEMBER(E(x0, x1), Nil)) REACH(x0, x1, x2) -> c29(MEMBER(E(x0, x1), x2)) VIA[ITE](True, x0, x1, Cons(E(x2, x3), x4), Cons(z1, z2)) -> c8(VIA[LET](x0, x1, Cons(E(x2, x3), x4), Cons(z1, z2), reach[Ite](member[Ite](eqEdge(E(x3, x1), z1), E(x3, x1), Cons(z1, z2)), x3, x1, Cons(z1, z2))), REACH(x3, x1, Cons(z1, z2))) VIA[ITE](True, x0, x1, Cons(E(x2, x3), x4), Nil) -> c8(VIA[LET](x0, x1, Cons(E(x2, x3), x4), Nil, reach[Ite](False, x3, x1, Nil)), REACH(x3, x1, Nil)) VIA[ITE](True, x0, x1, Cons(E(x2, x3), x4), x5) -> c8(REACH(x3, x1, x5)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5), !EQ'(S(0), S(S(z0)))) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(S(z0)), S(0))) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(0), S(0))) VIA(S(x0), x1, Cons(E(S(x2), x3), x4), x5) -> c21(!EQ'(S(x0), S(x2))) MEMBER(E(x0, S(z0)), Cons(E(x2, S(z1)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), !EQ(z0, z1)), x2, S(z1), x0, S(z0)), E(x0, S(z0)), Cons(E(x2, S(z1)), x4)), EQEDGE(E(x0, S(z0)), E(x2, S(z1)))) MEMBER(E(x0, 0), Cons(E(x2, S(z0)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, S(z0), x0, 0), E(x0, 0), Cons(E(x2, S(z0)), x4)), EQEDGE(E(x0, 0), E(x2, S(z0)))) MEMBER(E(x0, S(z0)), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, 0, x0, S(z0)), E(x0, S(z0)), Cons(E(x2, 0), x4)), EQEDGE(E(x0, S(z0)), E(x2, 0))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) MEMBER(E(x0, x1), Cons(E(x2, x3), x4)) -> c23(EQEDGE(E(x0, x1), E(x2, x3))) S tuples: VIA(z0, z1, Nil, z2) -> c22 MEMBER(z0, Nil) -> c24 EQEDGE(E(z0, z1), E(z2, z3)) -> c25(!EQ'(z0, z2)) EQEDGE(E(z0, z1), E(z2, z3)) -> c26(!EQ'(z1, z3)) VIA(0, x1, Cons(E(S(z0), x3), x4), x5) -> c21(VIA[ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) VIA(S(z0), x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) REACH(x0, x1, Cons(z1, z2)) -> c29(REACH[ITE](member[Ite](eqEdge(E(x0, x1), z1), E(x0, x1), Cons(z1, z2)), x0, x1, Cons(z1, z2)), MEMBER(E(x0, x1), Cons(z1, z2))) REACH(x0, x1, Nil) -> c29(REACH[ITE](False, x0, x1, Nil), MEMBER(E(x0, x1), Nil)) REACH(x0, x1, x2) -> c29(MEMBER(E(x0, x1), x2)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5), !EQ'(S(0), S(S(z0)))) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(S(z0)), S(0))) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(0), S(0))) VIA(S(x0), x1, Cons(E(S(x2), x3), x4), x5) -> c21(!EQ'(S(x0), S(x2))) MEMBER(E(x0, S(z0)), Cons(E(x2, S(z1)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), !EQ(z0, z1)), x2, S(z1), x0, S(z0)), E(x0, S(z0)), Cons(E(x2, S(z1)), x4)), EQEDGE(E(x0, S(z0)), E(x2, S(z1)))) MEMBER(E(x0, 0), Cons(E(x2, S(z0)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, S(z0), x0, 0), E(x0, 0), Cons(E(x2, S(z0)), x4)), EQEDGE(E(x0, 0), E(x2, S(z0)))) MEMBER(E(x0, S(z0)), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, 0, x0, S(z0)), E(x0, S(z0)), Cons(E(x2, 0), x4)), EQEDGE(E(x0, S(z0)), E(x2, 0))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) MEMBER(E(x0, x1), Cons(E(x2, x3), x4)) -> c23(EQEDGE(E(x0, x1), E(x2, x3))) K tuples:none Defined Rule Symbols: reach_3, reach[Ite]_4, member_2, member[Ite]_3, eqEdge_2, eqEdge[Ite]_5, and_2, !EQ_2, via_4, via[Ite]_5, via[Let]_5 Defined Pair Symbols: !EQ'_2, VIA[ITE]_5, VIA[LET]_5, MEMBER[ITE]_3, REACH[ITE]_4, VIA_4, MEMBER_2, EQEDGE_2, REACH_3 Compound Symbols: c_1, c9_1, c10_1, c12_1, c14_1, c22, c24, c25_1, c26_1, c21_1, c29_2, c29_1, c8_2, c8_1, c21_2, c23_2, c23_1 ---------------------------------------- (49) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace REACH(x0, x1, Cons(z1, z2)) -> c29(REACH[ITE](member[Ite](eqEdge(E(x0, x1), z1), E(x0, x1), Cons(z1, z2)), x0, x1, Cons(z1, z2)), MEMBER(E(x0, x1), Cons(z1, z2))) by REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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))) ---------------------------------------- (50) Obligation: Complexity Dependency Tuples Problem Rules: reach(z0, z1, z2) -> reach[Ite](member(E(z0, z1), z2), z0, z1, z2) reach[Ite](False, z0, z1, z2) -> via(z0, z1, z2, z2) reach[Ite](True, z0, z1, z2) -> Cons(E(z0, z1), Nil) member(z0, Cons(z1, z2)) -> member[Ite](eqEdge(z0, z1), z0, Cons(z1, z2)) member(z0, Nil) -> False member[Ite](False, z0, Cons(z1, z2)) -> member(z0, z2) member[Ite](True, z0, z1) -> True eqEdge(E(z0, z1), E(z2, z3)) -> eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1) eqEdge[Ite](False, z0, z1, z2, z3) -> False eqEdge[Ite](True, z0, z1, z2, z3) -> True and(False, False) -> False and(True, False) -> False and(False, True) -> False and(True, True) -> True !EQ(S(z0), S(z1)) -> !EQ(z0, z1) !EQ(0, S(z0)) -> False !EQ(S(z0), 0) -> False !EQ(0, 0) -> True via(z0, z1, Cons(E(z2, z3), z4), z5) -> via[Ite](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5) via(z0, z1, Nil, z2) -> Nil via[Ite](True, z0, z1, Cons(E(z2, z3), z4), z5) -> via[Let](z0, z1, Cons(E(z2, z3), z4), z5, reach(z3, z1, z5)) via[Ite](False, z0, z1, Cons(z2, z3), z4) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Nil) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Cons(z5, z6)) -> Cons(z2, Cons(z5, z6)) Tuples: !EQ'(S(z0), S(z1)) -> c(!EQ'(z0, z1)) VIA[ITE](False, z0, z1, Cons(z2, z3), z4) -> c9(VIA(z0, z1, z3, z4)) VIA[LET](z0, z1, Cons(z2, z3), z4, Nil) -> c10(VIA(z0, z1, z3, z4)) MEMBER[ITE](False, z0, Cons(z1, z2)) -> c12(MEMBER(z0, z2)) REACH[ITE](False, z0, z1, z2) -> c14(VIA(z0, z1, z2, z2)) VIA(z0, z1, Nil, z2) -> c22 MEMBER(z0, Nil) -> c24 EQEDGE(E(z0, z1), E(z2, z3)) -> c25(!EQ'(z0, z2)) EQEDGE(E(z0, z1), E(z2, z3)) -> c26(!EQ'(z1, z3)) VIA(0, x1, Cons(E(S(z0), x3), x4), x5) -> c21(VIA[ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) VIA(S(z0), x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) REACH(x0, x1, Nil) -> c29(REACH[ITE](False, x0, x1, Nil), MEMBER(E(x0, x1), Nil)) REACH(x0, x1, x2) -> c29(MEMBER(E(x0, x1), x2)) VIA[ITE](True, x0, x1, Cons(E(x2, x3), x4), Cons(z1, z2)) -> c8(VIA[LET](x0, x1, Cons(E(x2, x3), x4), Cons(z1, z2), reach[Ite](member[Ite](eqEdge(E(x3, x1), z1), E(x3, x1), Cons(z1, z2)), x3, x1, Cons(z1, z2))), REACH(x3, x1, Cons(z1, z2))) VIA[ITE](True, x0, x1, Cons(E(x2, x3), x4), Nil) -> c8(VIA[LET](x0, x1, Cons(E(x2, x3), x4), Nil, reach[Ite](False, x3, x1, Nil)), REACH(x3, x1, Nil)) VIA[ITE](True, x0, x1, Cons(E(x2, x3), x4), x5) -> c8(REACH(x3, x1, x5)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5), !EQ'(S(0), S(S(z0)))) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(S(z0)), S(0))) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(0), S(0))) VIA(S(x0), x1, Cons(E(S(x2), x3), x4), x5) -> c21(!EQ'(S(x0), S(x2))) MEMBER(E(x0, S(z0)), Cons(E(x2, S(z1)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), !EQ(z0, z1)), x2, S(z1), x0, S(z0)), E(x0, S(z0)), Cons(E(x2, S(z1)), x4)), EQEDGE(E(x0, S(z0)), E(x2, S(z1)))) MEMBER(E(x0, 0), Cons(E(x2, S(z0)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, S(z0), x0, 0), E(x0, 0), Cons(E(x2, S(z0)), x4)), EQEDGE(E(x0, 0), E(x2, S(z0)))) MEMBER(E(x0, S(z0)), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, 0, x0, S(z0)), E(x0, S(z0)), Cons(E(x2, 0), x4)), EQEDGE(E(x0, S(z0)), E(x2, 0))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) MEMBER(E(x0, x1), Cons(E(x2, x3), x4)) -> c23(EQEDGE(E(x0, x1), E(x2, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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))) S tuples: VIA(z0, z1, Nil, z2) -> c22 MEMBER(z0, Nil) -> c24 EQEDGE(E(z0, z1), E(z2, z3)) -> c25(!EQ'(z0, z2)) EQEDGE(E(z0, z1), E(z2, z3)) -> c26(!EQ'(z1, z3)) VIA(0, x1, Cons(E(S(z0), x3), x4), x5) -> c21(VIA[ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) VIA(S(z0), x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) REACH(x0, x1, Nil) -> c29(REACH[ITE](False, x0, x1, Nil), MEMBER(E(x0, x1), Nil)) REACH(x0, x1, x2) -> c29(MEMBER(E(x0, x1), x2)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5), !EQ'(S(0), S(S(z0)))) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(S(z0)), S(0))) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(0), S(0))) VIA(S(x0), x1, Cons(E(S(x2), x3), x4), x5) -> c21(!EQ'(S(x0), S(x2))) MEMBER(E(x0, S(z0)), Cons(E(x2, S(z1)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), !EQ(z0, z1)), x2, S(z1), x0, S(z0)), E(x0, S(z0)), Cons(E(x2, S(z1)), x4)), EQEDGE(E(x0, S(z0)), E(x2, S(z1)))) MEMBER(E(x0, 0), Cons(E(x2, S(z0)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, S(z0), x0, 0), E(x0, 0), Cons(E(x2, S(z0)), x4)), EQEDGE(E(x0, 0), E(x2, S(z0)))) MEMBER(E(x0, S(z0)), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, 0, x0, S(z0)), E(x0, S(z0)), Cons(E(x2, 0), x4)), EQEDGE(E(x0, S(z0)), E(x2, 0))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) MEMBER(E(x0, x1), Cons(E(x2, x3), x4)) -> c23(EQEDGE(E(x0, x1), E(x2, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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:none Defined Rule Symbols: reach_3, reach[Ite]_4, member_2, member[Ite]_3, eqEdge_2, eqEdge[Ite]_5, and_2, !EQ_2, via_4, via[Ite]_5, via[Let]_5 Defined Pair Symbols: !EQ'_2, VIA[ITE]_5, VIA[LET]_5, MEMBER[ITE]_3, REACH[ITE]_4, VIA_4, MEMBER_2, EQEDGE_2, REACH_3 Compound Symbols: c_1, c9_1, c10_1, c12_1, c14_1, c22, c24, c25_1, c26_1, c21_1, c29_2, c29_1, c8_2, c8_1, c21_2, c23_2, c23_1 ---------------------------------------- (51) CdtInstantiationProof (BOTH BOUNDS(ID, ID)) Use instantiation to replace VIA[ITE](False, z0, z1, Cons(z2, z3), z4) -> c9(VIA(z0, z1, z3, z4)) by VIA[ITE](False, 0, x0, Cons(E(S(x1), x2), x3), x4) -> c9(VIA(0, x0, x3, x4)) VIA[ITE](False, S(x0), x1, Cons(E(0, x2), x3), x4) -> c9(VIA(S(x0), x1, x3, x4)) VIA[ITE](False, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), x5) -> c9(VIA(S(S(x0)), x1, x4, x5)) VIA[ITE](False, S(0), x0, Cons(E(S(S(x1)), x2), x3), x4) -> c9(VIA(S(0), x0, x3, x4)) VIA[ITE](False, S(S(x0)), x1, Cons(E(S(0), x2), x3), x4) -> c9(VIA(S(S(x0)), x1, x3, x4)) ---------------------------------------- (52) Obligation: Complexity Dependency Tuples Problem Rules: reach(z0, z1, z2) -> reach[Ite](member(E(z0, z1), z2), z0, z1, z2) reach[Ite](False, z0, z1, z2) -> via(z0, z1, z2, z2) reach[Ite](True, z0, z1, z2) -> Cons(E(z0, z1), Nil) member(z0, Cons(z1, z2)) -> member[Ite](eqEdge(z0, z1), z0, Cons(z1, z2)) member(z0, Nil) -> False member[Ite](False, z0, Cons(z1, z2)) -> member(z0, z2) member[Ite](True, z0, z1) -> True eqEdge(E(z0, z1), E(z2, z3)) -> eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1) eqEdge[Ite](False, z0, z1, z2, z3) -> False eqEdge[Ite](True, z0, z1, z2, z3) -> True and(False, False) -> False and(True, False) -> False and(False, True) -> False and(True, True) -> True !EQ(S(z0), S(z1)) -> !EQ(z0, z1) !EQ(0, S(z0)) -> False !EQ(S(z0), 0) -> False !EQ(0, 0) -> True via(z0, z1, Cons(E(z2, z3), z4), z5) -> via[Ite](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5) via(z0, z1, Nil, z2) -> Nil via[Ite](True, z0, z1, Cons(E(z2, z3), z4), z5) -> via[Let](z0, z1, Cons(E(z2, z3), z4), z5, reach(z3, z1, z5)) via[Ite](False, z0, z1, Cons(z2, z3), z4) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Nil) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Cons(z5, z6)) -> Cons(z2, Cons(z5, z6)) Tuples: !EQ'(S(z0), S(z1)) -> c(!EQ'(z0, z1)) VIA[LET](z0, z1, Cons(z2, z3), z4, Nil) -> c10(VIA(z0, z1, z3, z4)) MEMBER[ITE](False, z0, Cons(z1, z2)) -> c12(MEMBER(z0, z2)) REACH[ITE](False, z0, z1, z2) -> c14(VIA(z0, z1, z2, z2)) VIA(z0, z1, Nil, z2) -> c22 MEMBER(z0, Nil) -> c24 EQEDGE(E(z0, z1), E(z2, z3)) -> c25(!EQ'(z0, z2)) EQEDGE(E(z0, z1), E(z2, z3)) -> c26(!EQ'(z1, z3)) VIA(0, x1, Cons(E(S(z0), x3), x4), x5) -> c21(VIA[ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) VIA(S(z0), x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) REACH(x0, x1, Nil) -> c29(REACH[ITE](False, x0, x1, Nil), MEMBER(E(x0, x1), Nil)) REACH(x0, x1, x2) -> c29(MEMBER(E(x0, x1), x2)) VIA[ITE](True, x0, x1, Cons(E(x2, x3), x4), Cons(z1, z2)) -> c8(VIA[LET](x0, x1, Cons(E(x2, x3), x4), Cons(z1, z2), reach[Ite](member[Ite](eqEdge(E(x3, x1), z1), E(x3, x1), Cons(z1, z2)), x3, x1, Cons(z1, z2))), REACH(x3, x1, Cons(z1, z2))) VIA[ITE](True, x0, x1, Cons(E(x2, x3), x4), Nil) -> c8(VIA[LET](x0, x1, Cons(E(x2, x3), x4), Nil, reach[Ite](False, x3, x1, Nil)), REACH(x3, x1, Nil)) VIA[ITE](True, x0, x1, Cons(E(x2, x3), x4), x5) -> c8(REACH(x3, x1, x5)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5), !EQ'(S(0), S(S(z0)))) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(S(z0)), S(0))) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(0), S(0))) VIA(S(x0), x1, Cons(E(S(x2), x3), x4), x5) -> c21(!EQ'(S(x0), S(x2))) MEMBER(E(x0, S(z0)), Cons(E(x2, S(z1)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), !EQ(z0, z1)), x2, S(z1), x0, S(z0)), E(x0, S(z0)), Cons(E(x2, S(z1)), x4)), EQEDGE(E(x0, S(z0)), E(x2, S(z1)))) MEMBER(E(x0, 0), Cons(E(x2, S(z0)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, S(z0), x0, 0), E(x0, 0), Cons(E(x2, S(z0)), x4)), EQEDGE(E(x0, 0), E(x2, S(z0)))) MEMBER(E(x0, S(z0)), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, 0, x0, S(z0)), E(x0, S(z0)), Cons(E(x2, 0), x4)), EQEDGE(E(x0, S(z0)), E(x2, 0))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) MEMBER(E(x0, x1), Cons(E(x2, x3), x4)) -> c23(EQEDGE(E(x0, x1), E(x2, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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))) VIA[ITE](False, 0, x0, Cons(E(S(x1), x2), x3), x4) -> c9(VIA(0, x0, x3, x4)) VIA[ITE](False, S(x0), x1, Cons(E(0, x2), x3), x4) -> c9(VIA(S(x0), x1, x3, x4)) VIA[ITE](False, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), x5) -> c9(VIA(S(S(x0)), x1, x4, x5)) VIA[ITE](False, S(0), x0, Cons(E(S(S(x1)), x2), x3), x4) -> c9(VIA(S(0), x0, x3, x4)) VIA[ITE](False, S(S(x0)), x1, Cons(E(S(0), x2), x3), x4) -> c9(VIA(S(S(x0)), x1, x3, x4)) S tuples: VIA(z0, z1, Nil, z2) -> c22 MEMBER(z0, Nil) -> c24 EQEDGE(E(z0, z1), E(z2, z3)) -> c25(!EQ'(z0, z2)) EQEDGE(E(z0, z1), E(z2, z3)) -> c26(!EQ'(z1, z3)) VIA(0, x1, Cons(E(S(z0), x3), x4), x5) -> c21(VIA[ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) VIA(S(z0), x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) REACH(x0, x1, Nil) -> c29(REACH[ITE](False, x0, x1, Nil), MEMBER(E(x0, x1), Nil)) REACH(x0, x1, x2) -> c29(MEMBER(E(x0, x1), x2)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5), !EQ'(S(0), S(S(z0)))) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(S(z0)), S(0))) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(0), S(0))) VIA(S(x0), x1, Cons(E(S(x2), x3), x4), x5) -> c21(!EQ'(S(x0), S(x2))) MEMBER(E(x0, S(z0)), Cons(E(x2, S(z1)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), !EQ(z0, z1)), x2, S(z1), x0, S(z0)), E(x0, S(z0)), Cons(E(x2, S(z1)), x4)), EQEDGE(E(x0, S(z0)), E(x2, S(z1)))) MEMBER(E(x0, 0), Cons(E(x2, S(z0)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, S(z0), x0, 0), E(x0, 0), Cons(E(x2, S(z0)), x4)), EQEDGE(E(x0, 0), E(x2, S(z0)))) MEMBER(E(x0, S(z0)), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, 0, x0, S(z0)), E(x0, S(z0)), Cons(E(x2, 0), x4)), EQEDGE(E(x0, S(z0)), E(x2, 0))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) MEMBER(E(x0, x1), Cons(E(x2, x3), x4)) -> c23(EQEDGE(E(x0, x1), E(x2, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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:none Defined Rule Symbols: reach_3, reach[Ite]_4, member_2, member[Ite]_3, eqEdge_2, eqEdge[Ite]_5, and_2, !EQ_2, via_4, via[Ite]_5, via[Let]_5 Defined Pair Symbols: !EQ'_2, VIA[LET]_5, MEMBER[ITE]_3, REACH[ITE]_4, VIA_4, MEMBER_2, EQEDGE_2, REACH_3, VIA[ITE]_5 Compound Symbols: c_1, c10_1, c12_1, c14_1, c22, c24, c25_1, c26_1, c21_1, c29_2, c29_1, c8_2, c8_1, c21_2, c23_2, c23_1, c9_1 ---------------------------------------- (53) CdtRewritingProof (BOTH BOUNDS(ID, ID)) Used rewriting to replace VIA[ITE](True, x0, x1, Cons(E(x2, x3), x4), Nil) -> c8(VIA[LET](x0, x1, Cons(E(x2, x3), x4), Nil, reach[Ite](False, x3, x1, Nil)), REACH(x3, x1, Nil)) by VIA[ITE](True, z0, z1, Cons(E(z2, z3), z4), Nil) -> c8(VIA[LET](z0, z1, Cons(E(z2, z3), z4), Nil, via(z3, z1, Nil, Nil)), REACH(z3, z1, Nil)) ---------------------------------------- (54) Obligation: Complexity Dependency Tuples Problem Rules: reach(z0, z1, z2) -> reach[Ite](member(E(z0, z1), z2), z0, z1, z2) reach[Ite](False, z0, z1, z2) -> via(z0, z1, z2, z2) reach[Ite](True, z0, z1, z2) -> Cons(E(z0, z1), Nil) member(z0, Cons(z1, z2)) -> member[Ite](eqEdge(z0, z1), z0, Cons(z1, z2)) member(z0, Nil) -> False member[Ite](False, z0, Cons(z1, z2)) -> member(z0, z2) member[Ite](True, z0, z1) -> True eqEdge(E(z0, z1), E(z2, z3)) -> eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1) eqEdge[Ite](False, z0, z1, z2, z3) -> False eqEdge[Ite](True, z0, z1, z2, z3) -> True and(False, False) -> False and(True, False) -> False and(False, True) -> False and(True, True) -> True !EQ(S(z0), S(z1)) -> !EQ(z0, z1) !EQ(0, S(z0)) -> False !EQ(S(z0), 0) -> False !EQ(0, 0) -> True via(z0, z1, Cons(E(z2, z3), z4), z5) -> via[Ite](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5) via(z0, z1, Nil, z2) -> Nil via[Ite](True, z0, z1, Cons(E(z2, z3), z4), z5) -> via[Let](z0, z1, Cons(E(z2, z3), z4), z5, reach(z3, z1, z5)) via[Ite](False, z0, z1, Cons(z2, z3), z4) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Nil) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Cons(z5, z6)) -> Cons(z2, Cons(z5, z6)) Tuples: !EQ'(S(z0), S(z1)) -> c(!EQ'(z0, z1)) VIA[LET](z0, z1, Cons(z2, z3), z4, Nil) -> c10(VIA(z0, z1, z3, z4)) MEMBER[ITE](False, z0, Cons(z1, z2)) -> c12(MEMBER(z0, z2)) REACH[ITE](False, z0, z1, z2) -> c14(VIA(z0, z1, z2, z2)) VIA(z0, z1, Nil, z2) -> c22 MEMBER(z0, Nil) -> c24 EQEDGE(E(z0, z1), E(z2, z3)) -> c25(!EQ'(z0, z2)) EQEDGE(E(z0, z1), E(z2, z3)) -> c26(!EQ'(z1, z3)) VIA(0, x1, Cons(E(S(z0), x3), x4), x5) -> c21(VIA[ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) VIA(S(z0), x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) REACH(x0, x1, Nil) -> c29(REACH[ITE](False, x0, x1, Nil), MEMBER(E(x0, x1), Nil)) REACH(x0, x1, x2) -> c29(MEMBER(E(x0, x1), x2)) VIA[ITE](True, x0, x1, Cons(E(x2, x3), x4), Cons(z1, z2)) -> c8(VIA[LET](x0, x1, Cons(E(x2, x3), x4), Cons(z1, z2), reach[Ite](member[Ite](eqEdge(E(x3, x1), z1), E(x3, x1), Cons(z1, z2)), x3, x1, Cons(z1, z2))), REACH(x3, x1, Cons(z1, z2))) VIA[ITE](True, x0, x1, Cons(E(x2, x3), x4), x5) -> c8(REACH(x3, x1, x5)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5), !EQ'(S(0), S(S(z0)))) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(S(z0)), S(0))) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(0), S(0))) VIA(S(x0), x1, Cons(E(S(x2), x3), x4), x5) -> c21(!EQ'(S(x0), S(x2))) MEMBER(E(x0, S(z0)), Cons(E(x2, S(z1)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), !EQ(z0, z1)), x2, S(z1), x0, S(z0)), E(x0, S(z0)), Cons(E(x2, S(z1)), x4)), EQEDGE(E(x0, S(z0)), E(x2, S(z1)))) MEMBER(E(x0, 0), Cons(E(x2, S(z0)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, S(z0), x0, 0), E(x0, 0), Cons(E(x2, S(z0)), x4)), EQEDGE(E(x0, 0), E(x2, S(z0)))) MEMBER(E(x0, S(z0)), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, 0, x0, S(z0)), E(x0, S(z0)), Cons(E(x2, 0), x4)), EQEDGE(E(x0, S(z0)), E(x2, 0))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) MEMBER(E(x0, x1), Cons(E(x2, x3), x4)) -> c23(EQEDGE(E(x0, x1), E(x2, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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))) VIA[ITE](False, 0, x0, Cons(E(S(x1), x2), x3), x4) -> c9(VIA(0, x0, x3, x4)) VIA[ITE](False, S(x0), x1, Cons(E(0, x2), x3), x4) -> c9(VIA(S(x0), x1, x3, x4)) VIA[ITE](False, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), x5) -> c9(VIA(S(S(x0)), x1, x4, x5)) VIA[ITE](False, S(0), x0, Cons(E(S(S(x1)), x2), x3), x4) -> c9(VIA(S(0), x0, x3, x4)) VIA[ITE](False, S(S(x0)), x1, Cons(E(S(0), x2), x3), x4) -> c9(VIA(S(S(x0)), x1, x3, x4)) VIA[ITE](True, z0, z1, Cons(E(z2, z3), z4), Nil) -> c8(VIA[LET](z0, z1, Cons(E(z2, z3), z4), Nil, via(z3, z1, Nil, Nil)), REACH(z3, z1, Nil)) S tuples: VIA(z0, z1, Nil, z2) -> c22 MEMBER(z0, Nil) -> c24 EQEDGE(E(z0, z1), E(z2, z3)) -> c25(!EQ'(z0, z2)) EQEDGE(E(z0, z1), E(z2, z3)) -> c26(!EQ'(z1, z3)) VIA(0, x1, Cons(E(S(z0), x3), x4), x5) -> c21(VIA[ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) VIA(S(z0), x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) REACH(x0, x1, Nil) -> c29(REACH[ITE](False, x0, x1, Nil), MEMBER(E(x0, x1), Nil)) REACH(x0, x1, x2) -> c29(MEMBER(E(x0, x1), x2)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5), !EQ'(S(0), S(S(z0)))) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(S(z0)), S(0))) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(0), S(0))) VIA(S(x0), x1, Cons(E(S(x2), x3), x4), x5) -> c21(!EQ'(S(x0), S(x2))) MEMBER(E(x0, S(z0)), Cons(E(x2, S(z1)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), !EQ(z0, z1)), x2, S(z1), x0, S(z0)), E(x0, S(z0)), Cons(E(x2, S(z1)), x4)), EQEDGE(E(x0, S(z0)), E(x2, S(z1)))) MEMBER(E(x0, 0), Cons(E(x2, S(z0)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, S(z0), x0, 0), E(x0, 0), Cons(E(x2, S(z0)), x4)), EQEDGE(E(x0, 0), E(x2, S(z0)))) MEMBER(E(x0, S(z0)), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, 0, x0, S(z0)), E(x0, S(z0)), Cons(E(x2, 0), x4)), EQEDGE(E(x0, S(z0)), E(x2, 0))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) MEMBER(E(x0, x1), Cons(E(x2, x3), x4)) -> c23(EQEDGE(E(x0, x1), E(x2, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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:none Defined Rule Symbols: reach_3, reach[Ite]_4, member_2, member[Ite]_3, eqEdge_2, eqEdge[Ite]_5, and_2, !EQ_2, via_4, via[Ite]_5, via[Let]_5 Defined Pair Symbols: !EQ'_2, VIA[LET]_5, MEMBER[ITE]_3, REACH[ITE]_4, VIA_4, MEMBER_2, EQEDGE_2, REACH_3, VIA[ITE]_5 Compound Symbols: c_1, c10_1, c12_1, c14_1, c22, c24, c25_1, c26_1, c21_1, c29_2, c29_1, c8_2, c8_1, c21_2, c23_2, c23_1, c9_1 ---------------------------------------- (55) CdtInstantiationProof (BOTH BOUNDS(ID, ID)) Use instantiation to replace VIA[LET](z0, z1, Cons(z2, z3), z4, Nil) -> c10(VIA(z0, z1, z3, z4)) by VIA[LET](x0, x1, Cons(E(x2, x3), x4), Cons(x5, x6), Nil) -> c10(VIA(x0, x1, x4, Cons(x5, x6))) VIA[LET](x0, x1, Cons(E(x2, x3), x4), Nil, Nil) -> c10(VIA(x0, x1, x4, Nil)) ---------------------------------------- (56) Obligation: Complexity Dependency Tuples Problem Rules: reach(z0, z1, z2) -> reach[Ite](member(E(z0, z1), z2), z0, z1, z2) reach[Ite](False, z0, z1, z2) -> via(z0, z1, z2, z2) reach[Ite](True, z0, z1, z2) -> Cons(E(z0, z1), Nil) member(z0, Cons(z1, z2)) -> member[Ite](eqEdge(z0, z1), z0, Cons(z1, z2)) member(z0, Nil) -> False member[Ite](False, z0, Cons(z1, z2)) -> member(z0, z2) member[Ite](True, z0, z1) -> True eqEdge(E(z0, z1), E(z2, z3)) -> eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1) eqEdge[Ite](False, z0, z1, z2, z3) -> False eqEdge[Ite](True, z0, z1, z2, z3) -> True and(False, False) -> False and(True, False) -> False and(False, True) -> False and(True, True) -> True !EQ(S(z0), S(z1)) -> !EQ(z0, z1) !EQ(0, S(z0)) -> False !EQ(S(z0), 0) -> False !EQ(0, 0) -> True via(z0, z1, Cons(E(z2, z3), z4), z5) -> via[Ite](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5) via(z0, z1, Nil, z2) -> Nil via[Ite](True, z0, z1, Cons(E(z2, z3), z4), z5) -> via[Let](z0, z1, Cons(E(z2, z3), z4), z5, reach(z3, z1, z5)) via[Ite](False, z0, z1, Cons(z2, z3), z4) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Nil) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Cons(z5, z6)) -> Cons(z2, Cons(z5, z6)) Tuples: !EQ'(S(z0), S(z1)) -> c(!EQ'(z0, z1)) MEMBER[ITE](False, z0, Cons(z1, z2)) -> c12(MEMBER(z0, z2)) REACH[ITE](False, z0, z1, z2) -> c14(VIA(z0, z1, z2, z2)) VIA(z0, z1, Nil, z2) -> c22 MEMBER(z0, Nil) -> c24 EQEDGE(E(z0, z1), E(z2, z3)) -> c25(!EQ'(z0, z2)) EQEDGE(E(z0, z1), E(z2, z3)) -> c26(!EQ'(z1, z3)) VIA(0, x1, Cons(E(S(z0), x3), x4), x5) -> c21(VIA[ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) VIA(S(z0), x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) REACH(x0, x1, Nil) -> c29(REACH[ITE](False, x0, x1, Nil), MEMBER(E(x0, x1), Nil)) REACH(x0, x1, x2) -> c29(MEMBER(E(x0, x1), x2)) VIA[ITE](True, x0, x1, Cons(E(x2, x3), x4), Cons(z1, z2)) -> c8(VIA[LET](x0, x1, Cons(E(x2, x3), x4), Cons(z1, z2), reach[Ite](member[Ite](eqEdge(E(x3, x1), z1), E(x3, x1), Cons(z1, z2)), x3, x1, Cons(z1, z2))), REACH(x3, x1, Cons(z1, z2))) VIA[ITE](True, x0, x1, Cons(E(x2, x3), x4), x5) -> c8(REACH(x3, x1, x5)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5), !EQ'(S(0), S(S(z0)))) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(S(z0)), S(0))) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(0), S(0))) VIA(S(x0), x1, Cons(E(S(x2), x3), x4), x5) -> c21(!EQ'(S(x0), S(x2))) MEMBER(E(x0, S(z0)), Cons(E(x2, S(z1)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), !EQ(z0, z1)), x2, S(z1), x0, S(z0)), E(x0, S(z0)), Cons(E(x2, S(z1)), x4)), EQEDGE(E(x0, S(z0)), E(x2, S(z1)))) MEMBER(E(x0, 0), Cons(E(x2, S(z0)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, S(z0), x0, 0), E(x0, 0), Cons(E(x2, S(z0)), x4)), EQEDGE(E(x0, 0), E(x2, S(z0)))) MEMBER(E(x0, S(z0)), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, 0, x0, S(z0)), E(x0, S(z0)), Cons(E(x2, 0), x4)), EQEDGE(E(x0, S(z0)), E(x2, 0))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) MEMBER(E(x0, x1), Cons(E(x2, x3), x4)) -> c23(EQEDGE(E(x0, x1), E(x2, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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))) VIA[ITE](False, 0, x0, Cons(E(S(x1), x2), x3), x4) -> c9(VIA(0, x0, x3, x4)) VIA[ITE](False, S(x0), x1, Cons(E(0, x2), x3), x4) -> c9(VIA(S(x0), x1, x3, x4)) VIA[ITE](False, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), x5) -> c9(VIA(S(S(x0)), x1, x4, x5)) VIA[ITE](False, S(0), x0, Cons(E(S(S(x1)), x2), x3), x4) -> c9(VIA(S(0), x0, x3, x4)) VIA[ITE](False, S(S(x0)), x1, Cons(E(S(0), x2), x3), x4) -> c9(VIA(S(S(x0)), x1, x3, x4)) VIA[ITE](True, z0, z1, Cons(E(z2, z3), z4), Nil) -> c8(VIA[LET](z0, z1, Cons(E(z2, z3), z4), Nil, via(z3, z1, Nil, Nil)), REACH(z3, z1, Nil)) VIA[LET](x0, x1, Cons(E(x2, x3), x4), Cons(x5, x6), Nil) -> c10(VIA(x0, x1, x4, Cons(x5, x6))) VIA[LET](x0, x1, Cons(E(x2, x3), x4), Nil, Nil) -> c10(VIA(x0, x1, x4, Nil)) S tuples: VIA(z0, z1, Nil, z2) -> c22 MEMBER(z0, Nil) -> c24 EQEDGE(E(z0, z1), E(z2, z3)) -> c25(!EQ'(z0, z2)) EQEDGE(E(z0, z1), E(z2, z3)) -> c26(!EQ'(z1, z3)) VIA(0, x1, Cons(E(S(z0), x3), x4), x5) -> c21(VIA[ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) VIA(S(z0), x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) REACH(x0, x1, Nil) -> c29(REACH[ITE](False, x0, x1, Nil), MEMBER(E(x0, x1), Nil)) REACH(x0, x1, x2) -> c29(MEMBER(E(x0, x1), x2)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5), !EQ'(S(0), S(S(z0)))) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(S(z0)), S(0))) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(0), S(0))) VIA(S(x0), x1, Cons(E(S(x2), x3), x4), x5) -> c21(!EQ'(S(x0), S(x2))) MEMBER(E(x0, S(z0)), Cons(E(x2, S(z1)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), !EQ(z0, z1)), x2, S(z1), x0, S(z0)), E(x0, S(z0)), Cons(E(x2, S(z1)), x4)), EQEDGE(E(x0, S(z0)), E(x2, S(z1)))) MEMBER(E(x0, 0), Cons(E(x2, S(z0)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, S(z0), x0, 0), E(x0, 0), Cons(E(x2, S(z0)), x4)), EQEDGE(E(x0, 0), E(x2, S(z0)))) MEMBER(E(x0, S(z0)), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, 0, x0, S(z0)), E(x0, S(z0)), Cons(E(x2, 0), x4)), EQEDGE(E(x0, S(z0)), E(x2, 0))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) MEMBER(E(x0, x1), Cons(E(x2, x3), x4)) -> c23(EQEDGE(E(x0, x1), E(x2, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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:none Defined Rule Symbols: reach_3, reach[Ite]_4, member_2, member[Ite]_3, eqEdge_2, eqEdge[Ite]_5, and_2, !EQ_2, via_4, via[Ite]_5, via[Let]_5 Defined Pair Symbols: !EQ'_2, MEMBER[ITE]_3, REACH[ITE]_4, VIA_4, MEMBER_2, EQEDGE_2, REACH_3, VIA[ITE]_5, VIA[LET]_5 Compound Symbols: c_1, c12_1, c14_1, c22, c24, c25_1, c26_1, c21_1, c29_2, c29_1, c8_2, c8_1, c21_2, c23_2, c23_1, c9_1, c10_1 ---------------------------------------- (57) CdtInstantiationProof (BOTH BOUNDS(ID, ID)) Use instantiation to replace MEMBER[ITE](False, z0, Cons(z1, z2)) -> c12(MEMBER(z0, z2)) by MEMBER[ITE](False, E(x0, S(x1)), Cons(E(x2, S(x3)), x4)) -> c12(MEMBER(E(x0, S(x1)), x4)) MEMBER[ITE](False, E(x0, 0), Cons(E(x1, S(x2)), x3)) -> c12(MEMBER(E(x0, 0), x3)) MEMBER[ITE](False, E(x0, S(x1)), Cons(E(x2, 0), x3)) -> c12(MEMBER(E(x0, S(x1)), x3)) MEMBER[ITE](False, E(x0, 0), Cons(E(x1, 0), x2)) -> c12(MEMBER(E(x0, 0), x2)) MEMBER[ITE](False, E(S(x0), x1), Cons(E(S(x2), x3), x4)) -> c12(MEMBER(E(S(x0), x1), x4)) MEMBER[ITE](False, E(0, x0), Cons(E(S(x1), x2), x3)) -> c12(MEMBER(E(0, x0), x3)) MEMBER[ITE](False, E(S(x0), x1), Cons(E(0, x2), x3)) -> c12(MEMBER(E(S(x0), x1), x3)) MEMBER[ITE](False, E(0, x0), Cons(E(0, x1), x2)) -> c12(MEMBER(E(0, x0), x2)) ---------------------------------------- (58) Obligation: Complexity Dependency Tuples Problem Rules: reach(z0, z1, z2) -> reach[Ite](member(E(z0, z1), z2), z0, z1, z2) reach[Ite](False, z0, z1, z2) -> via(z0, z1, z2, z2) reach[Ite](True, z0, z1, z2) -> Cons(E(z0, z1), Nil) member(z0, Cons(z1, z2)) -> member[Ite](eqEdge(z0, z1), z0, Cons(z1, z2)) member(z0, Nil) -> False member[Ite](False, z0, Cons(z1, z2)) -> member(z0, z2) member[Ite](True, z0, z1) -> True eqEdge(E(z0, z1), E(z2, z3)) -> eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1) eqEdge[Ite](False, z0, z1, z2, z3) -> False eqEdge[Ite](True, z0, z1, z2, z3) -> True and(False, False) -> False and(True, False) -> False and(False, True) -> False and(True, True) -> True !EQ(S(z0), S(z1)) -> !EQ(z0, z1) !EQ(0, S(z0)) -> False !EQ(S(z0), 0) -> False !EQ(0, 0) -> True via(z0, z1, Cons(E(z2, z3), z4), z5) -> via[Ite](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5) via(z0, z1, Nil, z2) -> Nil via[Ite](True, z0, z1, Cons(E(z2, z3), z4), z5) -> via[Let](z0, z1, Cons(E(z2, z3), z4), z5, reach(z3, z1, z5)) via[Ite](False, z0, z1, Cons(z2, z3), z4) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Nil) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Cons(z5, z6)) -> Cons(z2, Cons(z5, z6)) Tuples: !EQ'(S(z0), S(z1)) -> c(!EQ'(z0, z1)) REACH[ITE](False, z0, z1, z2) -> c14(VIA(z0, z1, z2, z2)) VIA(z0, z1, Nil, z2) -> c22 MEMBER(z0, Nil) -> c24 EQEDGE(E(z0, z1), E(z2, z3)) -> c25(!EQ'(z0, z2)) EQEDGE(E(z0, z1), E(z2, z3)) -> c26(!EQ'(z1, z3)) VIA(0, x1, Cons(E(S(z0), x3), x4), x5) -> c21(VIA[ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) VIA(S(z0), x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) REACH(x0, x1, Nil) -> c29(REACH[ITE](False, x0, x1, Nil), MEMBER(E(x0, x1), Nil)) REACH(x0, x1, x2) -> c29(MEMBER(E(x0, x1), x2)) VIA[ITE](True, x0, x1, Cons(E(x2, x3), x4), Cons(z1, z2)) -> c8(VIA[LET](x0, x1, Cons(E(x2, x3), x4), Cons(z1, z2), reach[Ite](member[Ite](eqEdge(E(x3, x1), z1), E(x3, x1), Cons(z1, z2)), x3, x1, Cons(z1, z2))), REACH(x3, x1, Cons(z1, z2))) VIA[ITE](True, x0, x1, Cons(E(x2, x3), x4), x5) -> c8(REACH(x3, x1, x5)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5), !EQ'(S(0), S(S(z0)))) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(S(z0)), S(0))) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(0), S(0))) VIA(S(x0), x1, Cons(E(S(x2), x3), x4), x5) -> c21(!EQ'(S(x0), S(x2))) MEMBER(E(x0, S(z0)), Cons(E(x2, S(z1)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), !EQ(z0, z1)), x2, S(z1), x0, S(z0)), E(x0, S(z0)), Cons(E(x2, S(z1)), x4)), EQEDGE(E(x0, S(z0)), E(x2, S(z1)))) MEMBER(E(x0, 0), Cons(E(x2, S(z0)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, S(z0), x0, 0), E(x0, 0), Cons(E(x2, S(z0)), x4)), EQEDGE(E(x0, 0), E(x2, S(z0)))) MEMBER(E(x0, S(z0)), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, 0, x0, S(z0)), E(x0, S(z0)), Cons(E(x2, 0), x4)), EQEDGE(E(x0, S(z0)), E(x2, 0))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) MEMBER(E(x0, x1), Cons(E(x2, x3), x4)) -> c23(EQEDGE(E(x0, x1), E(x2, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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))) VIA[ITE](False, 0, x0, Cons(E(S(x1), x2), x3), x4) -> c9(VIA(0, x0, x3, x4)) VIA[ITE](False, S(x0), x1, Cons(E(0, x2), x3), x4) -> c9(VIA(S(x0), x1, x3, x4)) VIA[ITE](False, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), x5) -> c9(VIA(S(S(x0)), x1, x4, x5)) VIA[ITE](False, S(0), x0, Cons(E(S(S(x1)), x2), x3), x4) -> c9(VIA(S(0), x0, x3, x4)) VIA[ITE](False, S(S(x0)), x1, Cons(E(S(0), x2), x3), x4) -> c9(VIA(S(S(x0)), x1, x3, x4)) VIA[ITE](True, z0, z1, Cons(E(z2, z3), z4), Nil) -> c8(VIA[LET](z0, z1, Cons(E(z2, z3), z4), Nil, via(z3, z1, Nil, Nil)), REACH(z3, z1, Nil)) VIA[LET](x0, x1, Cons(E(x2, x3), x4), Cons(x5, x6), Nil) -> c10(VIA(x0, x1, x4, Cons(x5, x6))) VIA[LET](x0, x1, Cons(E(x2, x3), x4), Nil, Nil) -> c10(VIA(x0, x1, x4, Nil)) MEMBER[ITE](False, E(x0, S(x1)), Cons(E(x2, S(x3)), x4)) -> c12(MEMBER(E(x0, S(x1)), x4)) MEMBER[ITE](False, E(x0, 0), Cons(E(x1, S(x2)), x3)) -> c12(MEMBER(E(x0, 0), x3)) MEMBER[ITE](False, E(x0, S(x1)), Cons(E(x2, 0), x3)) -> c12(MEMBER(E(x0, S(x1)), x3)) MEMBER[ITE](False, E(x0, 0), Cons(E(x1, 0), x2)) -> c12(MEMBER(E(x0, 0), x2)) MEMBER[ITE](False, E(S(x0), x1), Cons(E(S(x2), x3), x4)) -> c12(MEMBER(E(S(x0), x1), x4)) MEMBER[ITE](False, E(0, x0), Cons(E(S(x1), x2), x3)) -> c12(MEMBER(E(0, x0), x3)) MEMBER[ITE](False, E(S(x0), x1), Cons(E(0, x2), x3)) -> c12(MEMBER(E(S(x0), x1), x3)) MEMBER[ITE](False, E(0, x0), Cons(E(0, x1), x2)) -> c12(MEMBER(E(0, x0), x2)) S tuples: VIA(z0, z1, Nil, z2) -> c22 MEMBER(z0, Nil) -> c24 EQEDGE(E(z0, z1), E(z2, z3)) -> c25(!EQ'(z0, z2)) EQEDGE(E(z0, z1), E(z2, z3)) -> c26(!EQ'(z1, z3)) VIA(0, x1, Cons(E(S(z0), x3), x4), x5) -> c21(VIA[ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) VIA(S(z0), x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) REACH(x0, x1, Nil) -> c29(REACH[ITE](False, x0, x1, Nil), MEMBER(E(x0, x1), Nil)) REACH(x0, x1, x2) -> c29(MEMBER(E(x0, x1), x2)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5), !EQ'(S(0), S(S(z0)))) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(S(z0)), S(0))) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(0), S(0))) VIA(S(x0), x1, Cons(E(S(x2), x3), x4), x5) -> c21(!EQ'(S(x0), S(x2))) MEMBER(E(x0, S(z0)), Cons(E(x2, S(z1)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), !EQ(z0, z1)), x2, S(z1), x0, S(z0)), E(x0, S(z0)), Cons(E(x2, S(z1)), x4)), EQEDGE(E(x0, S(z0)), E(x2, S(z1)))) MEMBER(E(x0, 0), Cons(E(x2, S(z0)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, S(z0), x0, 0), E(x0, 0), Cons(E(x2, S(z0)), x4)), EQEDGE(E(x0, 0), E(x2, S(z0)))) MEMBER(E(x0, S(z0)), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, 0, x0, S(z0)), E(x0, S(z0)), Cons(E(x2, 0), x4)), EQEDGE(E(x0, S(z0)), E(x2, 0))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) MEMBER(E(x0, x1), Cons(E(x2, x3), x4)) -> c23(EQEDGE(E(x0, x1), E(x2, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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:none Defined Rule Symbols: reach_3, reach[Ite]_4, member_2, member[Ite]_3, eqEdge_2, eqEdge[Ite]_5, and_2, !EQ_2, via_4, via[Ite]_5, via[Let]_5 Defined Pair Symbols: !EQ'_2, REACH[ITE]_4, VIA_4, MEMBER_2, EQEDGE_2, REACH_3, VIA[ITE]_5, VIA[LET]_5, MEMBER[ITE]_3 Compound Symbols: c_1, c14_1, c22, c24, c25_1, c26_1, c21_1, c29_2, c29_1, c8_2, c8_1, c21_2, c23_2, c23_1, c9_1, c10_1, c12_1 ---------------------------------------- (59) CdtInstantiationProof (BOTH BOUNDS(ID, ID)) Use instantiation to replace REACH[ITE](False, z0, z1, z2) -> c14(VIA(z0, z1, z2, z2)) by REACH[ITE](False, x0, x1, Nil) -> c14(VIA(x0, x1, Nil, Nil)) REACH[ITE](False, x0, x1, Cons(E(x2, x3), x4)) -> c14(VIA(x0, x1, Cons(E(x2, x3), x4), Cons(E(x2, x3), x4))) ---------------------------------------- (60) Obligation: Complexity Dependency Tuples Problem Rules: reach(z0, z1, z2) -> reach[Ite](member(E(z0, z1), z2), z0, z1, z2) reach[Ite](False, z0, z1, z2) -> via(z0, z1, z2, z2) reach[Ite](True, z0, z1, z2) -> Cons(E(z0, z1), Nil) member(z0, Cons(z1, z2)) -> member[Ite](eqEdge(z0, z1), z0, Cons(z1, z2)) member(z0, Nil) -> False member[Ite](False, z0, Cons(z1, z2)) -> member(z0, z2) member[Ite](True, z0, z1) -> True eqEdge(E(z0, z1), E(z2, z3)) -> eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1) eqEdge[Ite](False, z0, z1, z2, z3) -> False eqEdge[Ite](True, z0, z1, z2, z3) -> True and(False, False) -> False and(True, False) -> False and(False, True) -> False and(True, True) -> True !EQ(S(z0), S(z1)) -> !EQ(z0, z1) !EQ(0, S(z0)) -> False !EQ(S(z0), 0) -> False !EQ(0, 0) -> True via(z0, z1, Cons(E(z2, z3), z4), z5) -> via[Ite](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5) via(z0, z1, Nil, z2) -> Nil via[Ite](True, z0, z1, Cons(E(z2, z3), z4), z5) -> via[Let](z0, z1, Cons(E(z2, z3), z4), z5, reach(z3, z1, z5)) via[Ite](False, z0, z1, Cons(z2, z3), z4) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Nil) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Cons(z5, z6)) -> Cons(z2, Cons(z5, z6)) Tuples: !EQ'(S(z0), S(z1)) -> c(!EQ'(z0, z1)) VIA(z0, z1, Nil, z2) -> c22 MEMBER(z0, Nil) -> c24 EQEDGE(E(z0, z1), E(z2, z3)) -> c25(!EQ'(z0, z2)) EQEDGE(E(z0, z1), E(z2, z3)) -> c26(!EQ'(z1, z3)) VIA(0, x1, Cons(E(S(z0), x3), x4), x5) -> c21(VIA[ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) VIA(S(z0), x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) REACH(x0, x1, Nil) -> c29(REACH[ITE](False, x0, x1, Nil), MEMBER(E(x0, x1), Nil)) REACH(x0, x1, x2) -> c29(MEMBER(E(x0, x1), x2)) VIA[ITE](True, x0, x1, Cons(E(x2, x3), x4), Cons(z1, z2)) -> c8(VIA[LET](x0, x1, Cons(E(x2, x3), x4), Cons(z1, z2), reach[Ite](member[Ite](eqEdge(E(x3, x1), z1), E(x3, x1), Cons(z1, z2)), x3, x1, Cons(z1, z2))), REACH(x3, x1, Cons(z1, z2))) VIA[ITE](True, x0, x1, Cons(E(x2, x3), x4), x5) -> c8(REACH(x3, x1, x5)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5), !EQ'(S(0), S(S(z0)))) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(S(z0)), S(0))) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(0), S(0))) VIA(S(x0), x1, Cons(E(S(x2), x3), x4), x5) -> c21(!EQ'(S(x0), S(x2))) MEMBER(E(x0, S(z0)), Cons(E(x2, S(z1)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), !EQ(z0, z1)), x2, S(z1), x0, S(z0)), E(x0, S(z0)), Cons(E(x2, S(z1)), x4)), EQEDGE(E(x0, S(z0)), E(x2, S(z1)))) MEMBER(E(x0, 0), Cons(E(x2, S(z0)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, S(z0), x0, 0), E(x0, 0), Cons(E(x2, S(z0)), x4)), EQEDGE(E(x0, 0), E(x2, S(z0)))) MEMBER(E(x0, S(z0)), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, 0, x0, S(z0)), E(x0, S(z0)), Cons(E(x2, 0), x4)), EQEDGE(E(x0, S(z0)), E(x2, 0))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) MEMBER(E(x0, x1), Cons(E(x2, x3), x4)) -> c23(EQEDGE(E(x0, x1), E(x2, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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))) VIA[ITE](False, 0, x0, Cons(E(S(x1), x2), x3), x4) -> c9(VIA(0, x0, x3, x4)) VIA[ITE](False, S(x0), x1, Cons(E(0, x2), x3), x4) -> c9(VIA(S(x0), x1, x3, x4)) VIA[ITE](False, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), x5) -> c9(VIA(S(S(x0)), x1, x4, x5)) VIA[ITE](False, S(0), x0, Cons(E(S(S(x1)), x2), x3), x4) -> c9(VIA(S(0), x0, x3, x4)) VIA[ITE](False, S(S(x0)), x1, Cons(E(S(0), x2), x3), x4) -> c9(VIA(S(S(x0)), x1, x3, x4)) VIA[ITE](True, z0, z1, Cons(E(z2, z3), z4), Nil) -> c8(VIA[LET](z0, z1, Cons(E(z2, z3), z4), Nil, via(z3, z1, Nil, Nil)), REACH(z3, z1, Nil)) VIA[LET](x0, x1, Cons(E(x2, x3), x4), Cons(x5, x6), Nil) -> c10(VIA(x0, x1, x4, Cons(x5, x6))) VIA[LET](x0, x1, Cons(E(x2, x3), x4), Nil, Nil) -> c10(VIA(x0, x1, x4, Nil)) MEMBER[ITE](False, E(x0, S(x1)), Cons(E(x2, S(x3)), x4)) -> c12(MEMBER(E(x0, S(x1)), x4)) MEMBER[ITE](False, E(x0, 0), Cons(E(x1, S(x2)), x3)) -> c12(MEMBER(E(x0, 0), x3)) MEMBER[ITE](False, E(x0, S(x1)), Cons(E(x2, 0), x3)) -> c12(MEMBER(E(x0, S(x1)), x3)) MEMBER[ITE](False, E(x0, 0), Cons(E(x1, 0), x2)) -> c12(MEMBER(E(x0, 0), x2)) MEMBER[ITE](False, E(S(x0), x1), Cons(E(S(x2), x3), x4)) -> c12(MEMBER(E(S(x0), x1), x4)) MEMBER[ITE](False, E(0, x0), Cons(E(S(x1), x2), x3)) -> c12(MEMBER(E(0, x0), x3)) MEMBER[ITE](False, E(S(x0), x1), Cons(E(0, x2), x3)) -> c12(MEMBER(E(S(x0), x1), x3)) MEMBER[ITE](False, E(0, x0), Cons(E(0, x1), x2)) -> c12(MEMBER(E(0, x0), x2)) REACH[ITE](False, x0, x1, Nil) -> c14(VIA(x0, x1, Nil, Nil)) REACH[ITE](False, x0, x1, Cons(E(x2, x3), x4)) -> c14(VIA(x0, x1, Cons(E(x2, x3), x4), Cons(E(x2, x3), x4))) S tuples: VIA(z0, z1, Nil, z2) -> c22 MEMBER(z0, Nil) -> c24 EQEDGE(E(z0, z1), E(z2, z3)) -> c25(!EQ'(z0, z2)) EQEDGE(E(z0, z1), E(z2, z3)) -> c26(!EQ'(z1, z3)) VIA(0, x1, Cons(E(S(z0), x3), x4), x5) -> c21(VIA[ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) VIA(S(z0), x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) REACH(x0, x1, Nil) -> c29(REACH[ITE](False, x0, x1, Nil), MEMBER(E(x0, x1), Nil)) REACH(x0, x1, x2) -> c29(MEMBER(E(x0, x1), x2)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5), !EQ'(S(0), S(S(z0)))) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(S(z0)), S(0))) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(0), S(0))) VIA(S(x0), x1, Cons(E(S(x2), x3), x4), x5) -> c21(!EQ'(S(x0), S(x2))) MEMBER(E(x0, S(z0)), Cons(E(x2, S(z1)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), !EQ(z0, z1)), x2, S(z1), x0, S(z0)), E(x0, S(z0)), Cons(E(x2, S(z1)), x4)), EQEDGE(E(x0, S(z0)), E(x2, S(z1)))) MEMBER(E(x0, 0), Cons(E(x2, S(z0)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, S(z0), x0, 0), E(x0, 0), Cons(E(x2, S(z0)), x4)), EQEDGE(E(x0, 0), E(x2, S(z0)))) MEMBER(E(x0, S(z0)), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, 0, x0, S(z0)), E(x0, S(z0)), Cons(E(x2, 0), x4)), EQEDGE(E(x0, S(z0)), E(x2, 0))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) MEMBER(E(x0, x1), Cons(E(x2, x3), x4)) -> c23(EQEDGE(E(x0, x1), E(x2, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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:none Defined Rule Symbols: reach_3, reach[Ite]_4, member_2, member[Ite]_3, eqEdge_2, eqEdge[Ite]_5, and_2, !EQ_2, via_4, via[Ite]_5, via[Let]_5 Defined Pair Symbols: !EQ'_2, VIA_4, MEMBER_2, EQEDGE_2, REACH_3, VIA[ITE]_5, VIA[LET]_5, MEMBER[ITE]_3, REACH[ITE]_4 Compound Symbols: c_1, c22, c24, c25_1, c26_1, c21_1, c29_2, c29_1, c8_2, c8_1, c21_2, c23_2, c23_1, c9_1, c10_1, c12_1, c14_1 ---------------------------------------- (61) CdtGraphSplitRhsProof (BOTH BOUNDS(ID, ID)) Split RHS of tuples not part of any SCC ---------------------------------------- (62) Obligation: Complexity Dependency Tuples Problem Rules: reach(z0, z1, z2) -> reach[Ite](member(E(z0, z1), z2), z0, z1, z2) reach[Ite](False, z0, z1, z2) -> via(z0, z1, z2, z2) reach[Ite](True, z0, z1, z2) -> Cons(E(z0, z1), Nil) member(z0, Cons(z1, z2)) -> member[Ite](eqEdge(z0, z1), z0, Cons(z1, z2)) member(z0, Nil) -> False member[Ite](False, z0, Cons(z1, z2)) -> member(z0, z2) member[Ite](True, z0, z1) -> True eqEdge(E(z0, z1), E(z2, z3)) -> eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1) eqEdge[Ite](False, z0, z1, z2, z3) -> False eqEdge[Ite](True, z0, z1, z2, z3) -> True and(False, False) -> False and(True, False) -> False and(False, True) -> False and(True, True) -> True !EQ(S(z0), S(z1)) -> !EQ(z0, z1) !EQ(0, S(z0)) -> False !EQ(S(z0), 0) -> False !EQ(0, 0) -> True via(z0, z1, Cons(E(z2, z3), z4), z5) -> via[Ite](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5) via(z0, z1, Nil, z2) -> Nil via[Ite](True, z0, z1, Cons(E(z2, z3), z4), z5) -> via[Let](z0, z1, Cons(E(z2, z3), z4), z5, reach(z3, z1, z5)) via[Ite](False, z0, z1, Cons(z2, z3), z4) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Nil) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Cons(z5, z6)) -> Cons(z2, Cons(z5, z6)) Tuples: !EQ'(S(z0), S(z1)) -> c(!EQ'(z0, z1)) VIA(z0, z1, Nil, z2) -> c22 MEMBER(z0, Nil) -> c24 EQEDGE(E(z0, z1), E(z2, z3)) -> c25(!EQ'(z0, z2)) EQEDGE(E(z0, z1), E(z2, z3)) -> c26(!EQ'(z1, z3)) VIA(0, x1, Cons(E(S(z0), x3), x4), x5) -> c21(VIA[ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) VIA(S(z0), x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) REACH(x0, x1, x2) -> c29(MEMBER(E(x0, x1), x2)) VIA[ITE](True, x0, x1, Cons(E(x2, x3), x4), Cons(z1, z2)) -> c8(VIA[LET](x0, x1, Cons(E(x2, x3), x4), Cons(z1, z2), reach[Ite](member[Ite](eqEdge(E(x3, x1), z1), E(x3, x1), Cons(z1, z2)), x3, x1, Cons(z1, z2))), REACH(x3, x1, Cons(z1, z2))) VIA[ITE](True, x0, x1, Cons(E(x2, x3), x4), x5) -> c8(REACH(x3, x1, x5)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5), !EQ'(S(0), S(S(z0)))) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(S(z0)), S(0))) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(0), S(0))) VIA(S(x0), x1, Cons(E(S(x2), x3), x4), x5) -> c21(!EQ'(S(x0), S(x2))) MEMBER(E(x0, S(z0)), Cons(E(x2, S(z1)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), !EQ(z0, z1)), x2, S(z1), x0, S(z0)), E(x0, S(z0)), Cons(E(x2, S(z1)), x4)), EQEDGE(E(x0, S(z0)), E(x2, S(z1)))) MEMBER(E(x0, 0), Cons(E(x2, S(z0)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, S(z0), x0, 0), E(x0, 0), Cons(E(x2, S(z0)), x4)), EQEDGE(E(x0, 0), E(x2, S(z0)))) MEMBER(E(x0, S(z0)), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, 0, x0, S(z0)), E(x0, S(z0)), Cons(E(x2, 0), x4)), EQEDGE(E(x0, S(z0)), E(x2, 0))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) MEMBER(E(x0, x1), Cons(E(x2, x3), x4)) -> c23(EQEDGE(E(x0, x1), E(x2, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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))) VIA[ITE](False, 0, x0, Cons(E(S(x1), x2), x3), x4) -> c9(VIA(0, x0, x3, x4)) VIA[ITE](False, S(x0), x1, Cons(E(0, x2), x3), x4) -> c9(VIA(S(x0), x1, x3, x4)) VIA[ITE](False, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), x5) -> c9(VIA(S(S(x0)), x1, x4, x5)) VIA[ITE](False, S(0), x0, Cons(E(S(S(x1)), x2), x3), x4) -> c9(VIA(S(0), x0, x3, x4)) VIA[ITE](False, S(S(x0)), x1, Cons(E(S(0), x2), x3), x4) -> c9(VIA(S(S(x0)), x1, x3, x4)) VIA[ITE](True, z0, z1, Cons(E(z2, z3), z4), Nil) -> c8(VIA[LET](z0, z1, Cons(E(z2, z3), z4), Nil, via(z3, z1, Nil, Nil)), REACH(z3, z1, Nil)) VIA[LET](x0, x1, Cons(E(x2, x3), x4), Cons(x5, x6), Nil) -> c10(VIA(x0, x1, x4, Cons(x5, x6))) VIA[LET](x0, x1, Cons(E(x2, x3), x4), Nil, Nil) -> c10(VIA(x0, x1, x4, Nil)) MEMBER[ITE](False, E(x0, S(x1)), Cons(E(x2, S(x3)), x4)) -> c12(MEMBER(E(x0, S(x1)), x4)) MEMBER[ITE](False, E(x0, 0), Cons(E(x1, S(x2)), x3)) -> c12(MEMBER(E(x0, 0), x3)) MEMBER[ITE](False, E(x0, S(x1)), Cons(E(x2, 0), x3)) -> c12(MEMBER(E(x0, S(x1)), x3)) MEMBER[ITE](False, E(x0, 0), Cons(E(x1, 0), x2)) -> c12(MEMBER(E(x0, 0), x2)) MEMBER[ITE](False, E(S(x0), x1), Cons(E(S(x2), x3), x4)) -> c12(MEMBER(E(S(x0), x1), x4)) MEMBER[ITE](False, E(0, x0), Cons(E(S(x1), x2), x3)) -> c12(MEMBER(E(0, x0), x3)) MEMBER[ITE](False, E(S(x0), x1), Cons(E(0, x2), x3)) -> c12(MEMBER(E(S(x0), x1), x3)) MEMBER[ITE](False, E(0, x0), Cons(E(0, x1), x2)) -> c12(MEMBER(E(0, x0), x2)) REACH[ITE](False, x0, x1, Nil) -> c14(VIA(x0, x1, Nil, Nil)) REACH[ITE](False, x0, x1, Cons(E(x2, x3), x4)) -> c14(VIA(x0, x1, Cons(E(x2, x3), x4), Cons(E(x2, x3), x4))) REACH(x0, x1, Nil) -> c1(REACH[ITE](False, x0, x1, Nil)) REACH(x0, x1, Nil) -> c1(MEMBER(E(x0, x1), Nil)) S tuples: VIA(z0, z1, Nil, z2) -> c22 MEMBER(z0, Nil) -> c24 EQEDGE(E(z0, z1), E(z2, z3)) -> c25(!EQ'(z0, z2)) EQEDGE(E(z0, z1), E(z2, z3)) -> c26(!EQ'(z1, z3)) VIA(0, x1, Cons(E(S(z0), x3), x4), x5) -> c21(VIA[ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) VIA(S(z0), x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) REACH(x0, x1, x2) -> c29(MEMBER(E(x0, x1), x2)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5), !EQ'(S(0), S(S(z0)))) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(S(z0)), S(0))) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(0), S(0))) VIA(S(x0), x1, Cons(E(S(x2), x3), x4), x5) -> c21(!EQ'(S(x0), S(x2))) MEMBER(E(x0, S(z0)), Cons(E(x2, S(z1)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), !EQ(z0, z1)), x2, S(z1), x0, S(z0)), E(x0, S(z0)), Cons(E(x2, S(z1)), x4)), EQEDGE(E(x0, S(z0)), E(x2, S(z1)))) MEMBER(E(x0, 0), Cons(E(x2, S(z0)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, S(z0), x0, 0), E(x0, 0), Cons(E(x2, S(z0)), x4)), EQEDGE(E(x0, 0), E(x2, S(z0)))) MEMBER(E(x0, S(z0)), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, 0, x0, S(z0)), E(x0, S(z0)), Cons(E(x2, 0), x4)), EQEDGE(E(x0, S(z0)), E(x2, 0))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) MEMBER(E(x0, x1), Cons(E(x2, x3), x4)) -> c23(EQEDGE(E(x0, x1), E(x2, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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))) REACH(x0, x1, Nil) -> c1(REACH[ITE](False, x0, x1, Nil)) REACH(x0, x1, Nil) -> c1(MEMBER(E(x0, x1), Nil)) K tuples:none Defined Rule Symbols: reach_3, reach[Ite]_4, member_2, member[Ite]_3, eqEdge_2, eqEdge[Ite]_5, and_2, !EQ_2, via_4, via[Ite]_5, via[Let]_5 Defined Pair Symbols: !EQ'_2, VIA_4, MEMBER_2, EQEDGE_2, REACH_3, VIA[ITE]_5, VIA[LET]_5, MEMBER[ITE]_3, REACH[ITE]_4 Compound Symbols: c_1, c22, c24, c25_1, c26_1, c21_1, c29_1, c8_2, c8_1, c21_2, c23_2, c23_1, c29_2, c9_1, c10_1, c12_1, c14_1, c1_1 ---------------------------------------- (63) CdtInstantiationProof (BOTH BOUNDS(ID, ID)) Use instantiation to replace VIA(z0, z1, Nil, z2) -> c22 by VIA(0, x0, Nil, x4) -> c22 VIA(S(x0), x1, Nil, x4) -> c22 VIA(S(S(x0)), x1, Nil, x5) -> c22 VIA(S(0), x0, Nil, x4) -> c22 VIA(x0, x1, Nil, Cons(x5, x6)) -> c22 VIA(x0, x1, Nil, Nil) -> c22 ---------------------------------------- (64) Obligation: Complexity Dependency Tuples Problem Rules: reach(z0, z1, z2) -> reach[Ite](member(E(z0, z1), z2), z0, z1, z2) reach[Ite](False, z0, z1, z2) -> via(z0, z1, z2, z2) reach[Ite](True, z0, z1, z2) -> Cons(E(z0, z1), Nil) member(z0, Cons(z1, z2)) -> member[Ite](eqEdge(z0, z1), z0, Cons(z1, z2)) member(z0, Nil) -> False member[Ite](False, z0, Cons(z1, z2)) -> member(z0, z2) member[Ite](True, z0, z1) -> True eqEdge(E(z0, z1), E(z2, z3)) -> eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1) eqEdge[Ite](False, z0, z1, z2, z3) -> False eqEdge[Ite](True, z0, z1, z2, z3) -> True and(False, False) -> False and(True, False) -> False and(False, True) -> False and(True, True) -> True !EQ(S(z0), S(z1)) -> !EQ(z0, z1) !EQ(0, S(z0)) -> False !EQ(S(z0), 0) -> False !EQ(0, 0) -> True via(z0, z1, Cons(E(z2, z3), z4), z5) -> via[Ite](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5) via(z0, z1, Nil, z2) -> Nil via[Ite](True, z0, z1, Cons(E(z2, z3), z4), z5) -> via[Let](z0, z1, Cons(E(z2, z3), z4), z5, reach(z3, z1, z5)) via[Ite](False, z0, z1, Cons(z2, z3), z4) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Nil) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Cons(z5, z6)) -> Cons(z2, Cons(z5, z6)) Tuples: !EQ'(S(z0), S(z1)) -> c(!EQ'(z0, z1)) MEMBER(z0, Nil) -> c24 EQEDGE(E(z0, z1), E(z2, z3)) -> c25(!EQ'(z0, z2)) EQEDGE(E(z0, z1), E(z2, z3)) -> c26(!EQ'(z1, z3)) VIA(0, x1, Cons(E(S(z0), x3), x4), x5) -> c21(VIA[ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) VIA(S(z0), x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) REACH(x0, x1, x2) -> c29(MEMBER(E(x0, x1), x2)) VIA[ITE](True, x0, x1, Cons(E(x2, x3), x4), Cons(z1, z2)) -> c8(VIA[LET](x0, x1, Cons(E(x2, x3), x4), Cons(z1, z2), reach[Ite](member[Ite](eqEdge(E(x3, x1), z1), E(x3, x1), Cons(z1, z2)), x3, x1, Cons(z1, z2))), REACH(x3, x1, Cons(z1, z2))) VIA[ITE](True, x0, x1, Cons(E(x2, x3), x4), x5) -> c8(REACH(x3, x1, x5)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5), !EQ'(S(0), S(S(z0)))) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(S(z0)), S(0))) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(0), S(0))) VIA(S(x0), x1, Cons(E(S(x2), x3), x4), x5) -> c21(!EQ'(S(x0), S(x2))) MEMBER(E(x0, S(z0)), Cons(E(x2, S(z1)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), !EQ(z0, z1)), x2, S(z1), x0, S(z0)), E(x0, S(z0)), Cons(E(x2, S(z1)), x4)), EQEDGE(E(x0, S(z0)), E(x2, S(z1)))) MEMBER(E(x0, 0), Cons(E(x2, S(z0)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, S(z0), x0, 0), E(x0, 0), Cons(E(x2, S(z0)), x4)), EQEDGE(E(x0, 0), E(x2, S(z0)))) MEMBER(E(x0, S(z0)), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, 0, x0, S(z0)), E(x0, S(z0)), Cons(E(x2, 0), x4)), EQEDGE(E(x0, S(z0)), E(x2, 0))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) MEMBER(E(x0, x1), Cons(E(x2, x3), x4)) -> c23(EQEDGE(E(x0, x1), E(x2, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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))) VIA[ITE](False, 0, x0, Cons(E(S(x1), x2), x3), x4) -> c9(VIA(0, x0, x3, x4)) VIA[ITE](False, S(x0), x1, Cons(E(0, x2), x3), x4) -> c9(VIA(S(x0), x1, x3, x4)) VIA[ITE](False, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), x5) -> c9(VIA(S(S(x0)), x1, x4, x5)) VIA[ITE](False, S(0), x0, Cons(E(S(S(x1)), x2), x3), x4) -> c9(VIA(S(0), x0, x3, x4)) VIA[ITE](False, S(S(x0)), x1, Cons(E(S(0), x2), x3), x4) -> c9(VIA(S(S(x0)), x1, x3, x4)) VIA[ITE](True, z0, z1, Cons(E(z2, z3), z4), Nil) -> c8(VIA[LET](z0, z1, Cons(E(z2, z3), z4), Nil, via(z3, z1, Nil, Nil)), REACH(z3, z1, Nil)) VIA[LET](x0, x1, Cons(E(x2, x3), x4), Cons(x5, x6), Nil) -> c10(VIA(x0, x1, x4, Cons(x5, x6))) VIA[LET](x0, x1, Cons(E(x2, x3), x4), Nil, Nil) -> c10(VIA(x0, x1, x4, Nil)) MEMBER[ITE](False, E(x0, S(x1)), Cons(E(x2, S(x3)), x4)) -> c12(MEMBER(E(x0, S(x1)), x4)) MEMBER[ITE](False, E(x0, 0), Cons(E(x1, S(x2)), x3)) -> c12(MEMBER(E(x0, 0), x3)) MEMBER[ITE](False, E(x0, S(x1)), Cons(E(x2, 0), x3)) -> c12(MEMBER(E(x0, S(x1)), x3)) MEMBER[ITE](False, E(x0, 0), Cons(E(x1, 0), x2)) -> c12(MEMBER(E(x0, 0), x2)) MEMBER[ITE](False, E(S(x0), x1), Cons(E(S(x2), x3), x4)) -> c12(MEMBER(E(S(x0), x1), x4)) MEMBER[ITE](False, E(0, x0), Cons(E(S(x1), x2), x3)) -> c12(MEMBER(E(0, x0), x3)) MEMBER[ITE](False, E(S(x0), x1), Cons(E(0, x2), x3)) -> c12(MEMBER(E(S(x0), x1), x3)) MEMBER[ITE](False, E(0, x0), Cons(E(0, x1), x2)) -> c12(MEMBER(E(0, x0), x2)) REACH[ITE](False, x0, x1, Nil) -> c14(VIA(x0, x1, Nil, Nil)) REACH[ITE](False, x0, x1, Cons(E(x2, x3), x4)) -> c14(VIA(x0, x1, Cons(E(x2, x3), x4), Cons(E(x2, x3), x4))) REACH(x0, x1, Nil) -> c1(REACH[ITE](False, x0, x1, Nil)) REACH(x0, x1, Nil) -> c1(MEMBER(E(x0, x1), Nil)) VIA(0, x0, Nil, x4) -> c22 VIA(S(x0), x1, Nil, x4) -> c22 VIA(S(S(x0)), x1, Nil, x5) -> c22 VIA(S(0), x0, Nil, x4) -> c22 VIA(x0, x1, Nil, Cons(x5, x6)) -> c22 VIA(x0, x1, Nil, Nil) -> c22 S tuples: MEMBER(z0, Nil) -> c24 EQEDGE(E(z0, z1), E(z2, z3)) -> c25(!EQ'(z0, z2)) EQEDGE(E(z0, z1), E(z2, z3)) -> c26(!EQ'(z1, z3)) VIA(0, x1, Cons(E(S(z0), x3), x4), x5) -> c21(VIA[ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) VIA(S(z0), x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) REACH(x0, x1, x2) -> c29(MEMBER(E(x0, x1), x2)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5), !EQ'(S(0), S(S(z0)))) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(S(z0)), S(0))) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(0), S(0))) VIA(S(x0), x1, Cons(E(S(x2), x3), x4), x5) -> c21(!EQ'(S(x0), S(x2))) MEMBER(E(x0, S(z0)), Cons(E(x2, S(z1)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), !EQ(z0, z1)), x2, S(z1), x0, S(z0)), E(x0, S(z0)), Cons(E(x2, S(z1)), x4)), EQEDGE(E(x0, S(z0)), E(x2, S(z1)))) MEMBER(E(x0, 0), Cons(E(x2, S(z0)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, S(z0), x0, 0), E(x0, 0), Cons(E(x2, S(z0)), x4)), EQEDGE(E(x0, 0), E(x2, S(z0)))) MEMBER(E(x0, S(z0)), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, 0, x0, S(z0)), E(x0, S(z0)), Cons(E(x2, 0), x4)), EQEDGE(E(x0, S(z0)), E(x2, 0))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) MEMBER(E(x0, x1), Cons(E(x2, x3), x4)) -> c23(EQEDGE(E(x0, x1), E(x2, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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))) REACH(x0, x1, Nil) -> c1(REACH[ITE](False, x0, x1, Nil)) REACH(x0, x1, Nil) -> c1(MEMBER(E(x0, x1), Nil)) VIA(0, x0, Nil, x4) -> c22 VIA(S(x0), x1, Nil, x4) -> c22 VIA(S(S(x0)), x1, Nil, x5) -> c22 VIA(S(0), x0, Nil, x4) -> c22 VIA(x0, x1, Nil, Cons(x5, x6)) -> c22 VIA(x0, x1, Nil, Nil) -> c22 K tuples:none Defined Rule Symbols: reach_3, reach[Ite]_4, member_2, member[Ite]_3, eqEdge_2, eqEdge[Ite]_5, and_2, !EQ_2, via_4, via[Ite]_5, via[Let]_5 Defined Pair Symbols: !EQ'_2, MEMBER_2, EQEDGE_2, VIA_4, REACH_3, VIA[ITE]_5, VIA[LET]_5, MEMBER[ITE]_3, REACH[ITE]_4 Compound Symbols: c_1, c24, c25_1, c26_1, c21_1, c29_1, c8_2, c8_1, c21_2, c23_2, c23_1, c29_2, c9_1, c10_1, c12_1, c14_1, c1_1, c22 ---------------------------------------- (65) CdtRewritingProof (BOTH BOUNDS(ID, ID)) Used rewriting to replace VIA[ITE](True, z0, z1, Cons(E(z2, z3), z4), Nil) -> c8(VIA[LET](z0, z1, Cons(E(z2, z3), z4), Nil, via(z3, z1, Nil, Nil)), REACH(z3, z1, Nil)) by VIA[ITE](True, z0, z1, Cons(E(z2, z3), z4), Nil) -> c8(VIA[LET](z0, z1, Cons(E(z2, z3), z4), Nil, Nil), REACH(z3, z1, Nil)) ---------------------------------------- (66) Obligation: Complexity Dependency Tuples Problem Rules: reach(z0, z1, z2) -> reach[Ite](member(E(z0, z1), z2), z0, z1, z2) reach[Ite](False, z0, z1, z2) -> via(z0, z1, z2, z2) reach[Ite](True, z0, z1, z2) -> Cons(E(z0, z1), Nil) member(z0, Cons(z1, z2)) -> member[Ite](eqEdge(z0, z1), z0, Cons(z1, z2)) member(z0, Nil) -> False member[Ite](False, z0, Cons(z1, z2)) -> member(z0, z2) member[Ite](True, z0, z1) -> True eqEdge(E(z0, z1), E(z2, z3)) -> eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1) eqEdge[Ite](False, z0, z1, z2, z3) -> False eqEdge[Ite](True, z0, z1, z2, z3) -> True and(False, False) -> False and(True, False) -> False and(False, True) -> False and(True, True) -> True !EQ(S(z0), S(z1)) -> !EQ(z0, z1) !EQ(0, S(z0)) -> False !EQ(S(z0), 0) -> False !EQ(0, 0) -> True via(z0, z1, Cons(E(z2, z3), z4), z5) -> via[Ite](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5) via(z0, z1, Nil, z2) -> Nil via[Ite](True, z0, z1, Cons(E(z2, z3), z4), z5) -> via[Let](z0, z1, Cons(E(z2, z3), z4), z5, reach(z3, z1, z5)) via[Ite](False, z0, z1, Cons(z2, z3), z4) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Nil) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Cons(z5, z6)) -> Cons(z2, Cons(z5, z6)) Tuples: !EQ'(S(z0), S(z1)) -> c(!EQ'(z0, z1)) MEMBER(z0, Nil) -> c24 EQEDGE(E(z0, z1), E(z2, z3)) -> c25(!EQ'(z0, z2)) EQEDGE(E(z0, z1), E(z2, z3)) -> c26(!EQ'(z1, z3)) VIA(0, x1, Cons(E(S(z0), x3), x4), x5) -> c21(VIA[ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) VIA(S(z0), x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) REACH(x0, x1, x2) -> c29(MEMBER(E(x0, x1), x2)) VIA[ITE](True, x0, x1, Cons(E(x2, x3), x4), Cons(z1, z2)) -> c8(VIA[LET](x0, x1, Cons(E(x2, x3), x4), Cons(z1, z2), reach[Ite](member[Ite](eqEdge(E(x3, x1), z1), E(x3, x1), Cons(z1, z2)), x3, x1, Cons(z1, z2))), REACH(x3, x1, Cons(z1, z2))) VIA[ITE](True, x0, x1, Cons(E(x2, x3), x4), x5) -> c8(REACH(x3, x1, x5)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5), !EQ'(S(0), S(S(z0)))) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(S(z0)), S(0))) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(0), S(0))) VIA(S(x0), x1, Cons(E(S(x2), x3), x4), x5) -> c21(!EQ'(S(x0), S(x2))) MEMBER(E(x0, S(z0)), Cons(E(x2, S(z1)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), !EQ(z0, z1)), x2, S(z1), x0, S(z0)), E(x0, S(z0)), Cons(E(x2, S(z1)), x4)), EQEDGE(E(x0, S(z0)), E(x2, S(z1)))) MEMBER(E(x0, 0), Cons(E(x2, S(z0)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, S(z0), x0, 0), E(x0, 0), Cons(E(x2, S(z0)), x4)), EQEDGE(E(x0, 0), E(x2, S(z0)))) MEMBER(E(x0, S(z0)), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, 0, x0, S(z0)), E(x0, S(z0)), Cons(E(x2, 0), x4)), EQEDGE(E(x0, S(z0)), E(x2, 0))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) MEMBER(E(x0, x1), Cons(E(x2, x3), x4)) -> c23(EQEDGE(E(x0, x1), E(x2, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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))) VIA[ITE](False, 0, x0, Cons(E(S(x1), x2), x3), x4) -> c9(VIA(0, x0, x3, x4)) VIA[ITE](False, S(x0), x1, Cons(E(0, x2), x3), x4) -> c9(VIA(S(x0), x1, x3, x4)) VIA[ITE](False, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), x5) -> c9(VIA(S(S(x0)), x1, x4, x5)) VIA[ITE](False, S(0), x0, Cons(E(S(S(x1)), x2), x3), x4) -> c9(VIA(S(0), x0, x3, x4)) VIA[ITE](False, S(S(x0)), x1, Cons(E(S(0), x2), x3), x4) -> c9(VIA(S(S(x0)), x1, x3, x4)) VIA[LET](x0, x1, Cons(E(x2, x3), x4), Cons(x5, x6), Nil) -> c10(VIA(x0, x1, x4, Cons(x5, x6))) VIA[LET](x0, x1, Cons(E(x2, x3), x4), Nil, Nil) -> c10(VIA(x0, x1, x4, Nil)) MEMBER[ITE](False, E(x0, S(x1)), Cons(E(x2, S(x3)), x4)) -> c12(MEMBER(E(x0, S(x1)), x4)) MEMBER[ITE](False, E(x0, 0), Cons(E(x1, S(x2)), x3)) -> c12(MEMBER(E(x0, 0), x3)) MEMBER[ITE](False, E(x0, S(x1)), Cons(E(x2, 0), x3)) -> c12(MEMBER(E(x0, S(x1)), x3)) MEMBER[ITE](False, E(x0, 0), Cons(E(x1, 0), x2)) -> c12(MEMBER(E(x0, 0), x2)) MEMBER[ITE](False, E(S(x0), x1), Cons(E(S(x2), x3), x4)) -> c12(MEMBER(E(S(x0), x1), x4)) MEMBER[ITE](False, E(0, x0), Cons(E(S(x1), x2), x3)) -> c12(MEMBER(E(0, x0), x3)) MEMBER[ITE](False, E(S(x0), x1), Cons(E(0, x2), x3)) -> c12(MEMBER(E(S(x0), x1), x3)) MEMBER[ITE](False, E(0, x0), Cons(E(0, x1), x2)) -> c12(MEMBER(E(0, x0), x2)) REACH[ITE](False, x0, x1, Nil) -> c14(VIA(x0, x1, Nil, Nil)) REACH[ITE](False, x0, x1, Cons(E(x2, x3), x4)) -> c14(VIA(x0, x1, Cons(E(x2, x3), x4), Cons(E(x2, x3), x4))) REACH(x0, x1, Nil) -> c1(REACH[ITE](False, x0, x1, Nil)) REACH(x0, x1, Nil) -> c1(MEMBER(E(x0, x1), Nil)) VIA(0, x0, Nil, x4) -> c22 VIA(S(x0), x1, Nil, x4) -> c22 VIA(S(S(x0)), x1, Nil, x5) -> c22 VIA(S(0), x0, Nil, x4) -> c22 VIA(x0, x1, Nil, Cons(x5, x6)) -> c22 VIA(x0, x1, Nil, Nil) -> c22 VIA[ITE](True, z0, z1, Cons(E(z2, z3), z4), Nil) -> c8(VIA[LET](z0, z1, Cons(E(z2, z3), z4), Nil, Nil), REACH(z3, z1, Nil)) S tuples: MEMBER(z0, Nil) -> c24 EQEDGE(E(z0, z1), E(z2, z3)) -> c25(!EQ'(z0, z2)) EQEDGE(E(z0, z1), E(z2, z3)) -> c26(!EQ'(z1, z3)) VIA(0, x1, Cons(E(S(z0), x3), x4), x5) -> c21(VIA[ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) VIA(S(z0), x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) REACH(x0, x1, x2) -> c29(MEMBER(E(x0, x1), x2)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5), !EQ'(S(0), S(S(z0)))) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(S(z0)), S(0))) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(0), S(0))) VIA(S(x0), x1, Cons(E(S(x2), x3), x4), x5) -> c21(!EQ'(S(x0), S(x2))) MEMBER(E(x0, S(z0)), Cons(E(x2, S(z1)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), !EQ(z0, z1)), x2, S(z1), x0, S(z0)), E(x0, S(z0)), Cons(E(x2, S(z1)), x4)), EQEDGE(E(x0, S(z0)), E(x2, S(z1)))) MEMBER(E(x0, 0), Cons(E(x2, S(z0)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, S(z0), x0, 0), E(x0, 0), Cons(E(x2, S(z0)), x4)), EQEDGE(E(x0, 0), E(x2, S(z0)))) MEMBER(E(x0, S(z0)), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, 0, x0, S(z0)), E(x0, S(z0)), Cons(E(x2, 0), x4)), EQEDGE(E(x0, S(z0)), E(x2, 0))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) MEMBER(E(x0, x1), Cons(E(x2, x3), x4)) -> c23(EQEDGE(E(x0, x1), E(x2, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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))) REACH(x0, x1, Nil) -> c1(REACH[ITE](False, x0, x1, Nil)) REACH(x0, x1, Nil) -> c1(MEMBER(E(x0, x1), Nil)) VIA(0, x0, Nil, x4) -> c22 VIA(S(x0), x1, Nil, x4) -> c22 VIA(S(S(x0)), x1, Nil, x5) -> c22 VIA(S(0), x0, Nil, x4) -> c22 VIA(x0, x1, Nil, Cons(x5, x6)) -> c22 VIA(x0, x1, Nil, Nil) -> c22 K tuples:none Defined Rule Symbols: reach_3, reach[Ite]_4, member_2, member[Ite]_3, eqEdge_2, eqEdge[Ite]_5, and_2, !EQ_2, via_4, via[Ite]_5, via[Let]_5 Defined Pair Symbols: !EQ'_2, MEMBER_2, EQEDGE_2, VIA_4, REACH_3, VIA[ITE]_5, VIA[LET]_5, MEMBER[ITE]_3, REACH[ITE]_4 Compound Symbols: c_1, c24, c25_1, c26_1, c21_1, c29_1, c8_2, c8_1, c21_2, c23_2, c23_1, c29_2, c9_1, c10_1, c12_1, c14_1, c1_1, c22 ---------------------------------------- (67) CdtForwardInstantiationProof (BOTH BOUNDS(ID, ID)) Use forward instantiation to replace !EQ'(S(z0), S(z1)) -> c(!EQ'(z0, z1)) by !EQ'(S(S(y0)), S(S(y1))) -> c(!EQ'(S(y0), S(y1))) ---------------------------------------- (68) Obligation: Complexity Dependency Tuples Problem Rules: reach(z0, z1, z2) -> reach[Ite](member(E(z0, z1), z2), z0, z1, z2) reach[Ite](False, z0, z1, z2) -> via(z0, z1, z2, z2) reach[Ite](True, z0, z1, z2) -> Cons(E(z0, z1), Nil) member(z0, Cons(z1, z2)) -> member[Ite](eqEdge(z0, z1), z0, Cons(z1, z2)) member(z0, Nil) -> False member[Ite](False, z0, Cons(z1, z2)) -> member(z0, z2) member[Ite](True, z0, z1) -> True eqEdge(E(z0, z1), E(z2, z3)) -> eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1) eqEdge[Ite](False, z0, z1, z2, z3) -> False eqEdge[Ite](True, z0, z1, z2, z3) -> True and(False, False) -> False and(True, False) -> False and(False, True) -> False and(True, True) -> True !EQ(S(z0), S(z1)) -> !EQ(z0, z1) !EQ(0, S(z0)) -> False !EQ(S(z0), 0) -> False !EQ(0, 0) -> True via(z0, z1, Cons(E(z2, z3), z4), z5) -> via[Ite](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5) via(z0, z1, Nil, z2) -> Nil via[Ite](True, z0, z1, Cons(E(z2, z3), z4), z5) -> via[Let](z0, z1, Cons(E(z2, z3), z4), z5, reach(z3, z1, z5)) via[Ite](False, z0, z1, Cons(z2, z3), z4) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Nil) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Cons(z5, z6)) -> Cons(z2, Cons(z5, z6)) Tuples: MEMBER(z0, Nil) -> c24 EQEDGE(E(z0, z1), E(z2, z3)) -> c25(!EQ'(z0, z2)) EQEDGE(E(z0, z1), E(z2, z3)) -> c26(!EQ'(z1, z3)) VIA(0, x1, Cons(E(S(z0), x3), x4), x5) -> c21(VIA[ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) VIA(S(z0), x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) REACH(x0, x1, x2) -> c29(MEMBER(E(x0, x1), x2)) VIA[ITE](True, x0, x1, Cons(E(x2, x3), x4), Cons(z1, z2)) -> c8(VIA[LET](x0, x1, Cons(E(x2, x3), x4), Cons(z1, z2), reach[Ite](member[Ite](eqEdge(E(x3, x1), z1), E(x3, x1), Cons(z1, z2)), x3, x1, Cons(z1, z2))), REACH(x3, x1, Cons(z1, z2))) VIA[ITE](True, x0, x1, Cons(E(x2, x3), x4), x5) -> c8(REACH(x3, x1, x5)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5), !EQ'(S(0), S(S(z0)))) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(S(z0)), S(0))) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(0), S(0))) VIA(S(x0), x1, Cons(E(S(x2), x3), x4), x5) -> c21(!EQ'(S(x0), S(x2))) MEMBER(E(x0, S(z0)), Cons(E(x2, S(z1)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), !EQ(z0, z1)), x2, S(z1), x0, S(z0)), E(x0, S(z0)), Cons(E(x2, S(z1)), x4)), EQEDGE(E(x0, S(z0)), E(x2, S(z1)))) MEMBER(E(x0, 0), Cons(E(x2, S(z0)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, S(z0), x0, 0), E(x0, 0), Cons(E(x2, S(z0)), x4)), EQEDGE(E(x0, 0), E(x2, S(z0)))) MEMBER(E(x0, S(z0)), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, 0, x0, S(z0)), E(x0, S(z0)), Cons(E(x2, 0), x4)), EQEDGE(E(x0, S(z0)), E(x2, 0))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) MEMBER(E(x0, x1), Cons(E(x2, x3), x4)) -> c23(EQEDGE(E(x0, x1), E(x2, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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))) VIA[ITE](False, 0, x0, Cons(E(S(x1), x2), x3), x4) -> c9(VIA(0, x0, x3, x4)) VIA[ITE](False, S(x0), x1, Cons(E(0, x2), x3), x4) -> c9(VIA(S(x0), x1, x3, x4)) VIA[ITE](False, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), x5) -> c9(VIA(S(S(x0)), x1, x4, x5)) VIA[ITE](False, S(0), x0, Cons(E(S(S(x1)), x2), x3), x4) -> c9(VIA(S(0), x0, x3, x4)) VIA[ITE](False, S(S(x0)), x1, Cons(E(S(0), x2), x3), x4) -> c9(VIA(S(S(x0)), x1, x3, x4)) VIA[LET](x0, x1, Cons(E(x2, x3), x4), Cons(x5, x6), Nil) -> c10(VIA(x0, x1, x4, Cons(x5, x6))) VIA[LET](x0, x1, Cons(E(x2, x3), x4), Nil, Nil) -> c10(VIA(x0, x1, x4, Nil)) MEMBER[ITE](False, E(x0, S(x1)), Cons(E(x2, S(x3)), x4)) -> c12(MEMBER(E(x0, S(x1)), x4)) MEMBER[ITE](False, E(x0, 0), Cons(E(x1, S(x2)), x3)) -> c12(MEMBER(E(x0, 0), x3)) MEMBER[ITE](False, E(x0, S(x1)), Cons(E(x2, 0), x3)) -> c12(MEMBER(E(x0, S(x1)), x3)) MEMBER[ITE](False, E(x0, 0), Cons(E(x1, 0), x2)) -> c12(MEMBER(E(x0, 0), x2)) MEMBER[ITE](False, E(S(x0), x1), Cons(E(S(x2), x3), x4)) -> c12(MEMBER(E(S(x0), x1), x4)) MEMBER[ITE](False, E(0, x0), Cons(E(S(x1), x2), x3)) -> c12(MEMBER(E(0, x0), x3)) MEMBER[ITE](False, E(S(x0), x1), Cons(E(0, x2), x3)) -> c12(MEMBER(E(S(x0), x1), x3)) MEMBER[ITE](False, E(0, x0), Cons(E(0, x1), x2)) -> c12(MEMBER(E(0, x0), x2)) REACH[ITE](False, x0, x1, Nil) -> c14(VIA(x0, x1, Nil, Nil)) REACH[ITE](False, x0, x1, Cons(E(x2, x3), x4)) -> c14(VIA(x0, x1, Cons(E(x2, x3), x4), Cons(E(x2, x3), x4))) REACH(x0, x1, Nil) -> c1(REACH[ITE](False, x0, x1, Nil)) REACH(x0, x1, Nil) -> c1(MEMBER(E(x0, x1), Nil)) VIA(0, x0, Nil, x4) -> c22 VIA(S(x0), x1, Nil, x4) -> c22 VIA(S(S(x0)), x1, Nil, x5) -> c22 VIA(S(0), x0, Nil, x4) -> c22 VIA(x0, x1, Nil, Cons(x5, x6)) -> c22 VIA(x0, x1, Nil, Nil) -> c22 VIA[ITE](True, z0, z1, Cons(E(z2, z3), z4), Nil) -> c8(VIA[LET](z0, z1, Cons(E(z2, z3), z4), Nil, Nil), REACH(z3, z1, Nil)) !EQ'(S(S(y0)), S(S(y1))) -> c(!EQ'(S(y0), S(y1))) S tuples: MEMBER(z0, Nil) -> c24 EQEDGE(E(z0, z1), E(z2, z3)) -> c25(!EQ'(z0, z2)) EQEDGE(E(z0, z1), E(z2, z3)) -> c26(!EQ'(z1, z3)) VIA(0, x1, Cons(E(S(z0), x3), x4), x5) -> c21(VIA[ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) VIA(S(z0), x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) REACH(x0, x1, x2) -> c29(MEMBER(E(x0, x1), x2)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5), !EQ'(S(0), S(S(z0)))) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(S(z0)), S(0))) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5), !EQ'(S(0), S(0))) VIA(S(x0), x1, Cons(E(S(x2), x3), x4), x5) -> c21(!EQ'(S(x0), S(x2))) MEMBER(E(x0, S(z0)), Cons(E(x2, S(z1)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), !EQ(z0, z1)), x2, S(z1), x0, S(z0)), E(x0, S(z0)), Cons(E(x2, S(z1)), x4)), EQEDGE(E(x0, S(z0)), E(x2, S(z1)))) MEMBER(E(x0, 0), Cons(E(x2, S(z0)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, S(z0), x0, 0), E(x0, 0), Cons(E(x2, S(z0)), x4)), EQEDGE(E(x0, 0), E(x2, S(z0)))) MEMBER(E(x0, S(z0)), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, 0, x0, S(z0)), E(x0, S(z0)), Cons(E(x2, 0), x4)), EQEDGE(E(x0, S(z0)), E(x2, 0))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) MEMBER(E(x0, x1), Cons(E(x2, x3), x4)) -> c23(EQEDGE(E(x0, x1), E(x2, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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))) REACH(x0, x1, Nil) -> c1(REACH[ITE](False, x0, x1, Nil)) REACH(x0, x1, Nil) -> c1(MEMBER(E(x0, x1), Nil)) VIA(0, x0, Nil, x4) -> c22 VIA(S(x0), x1, Nil, x4) -> c22 VIA(S(S(x0)), x1, Nil, x5) -> c22 VIA(S(0), x0, Nil, x4) -> c22 VIA(x0, x1, Nil, Cons(x5, x6)) -> c22 VIA(x0, x1, Nil, Nil) -> c22 K tuples:none Defined Rule Symbols: reach_3, reach[Ite]_4, member_2, member[Ite]_3, eqEdge_2, eqEdge[Ite]_5, and_2, !EQ_2, via_4, via[Ite]_5, via[Let]_5 Defined Pair Symbols: MEMBER_2, EQEDGE_2, VIA_4, REACH_3, VIA[ITE]_5, VIA[LET]_5, MEMBER[ITE]_3, REACH[ITE]_4, !EQ'_2 Compound Symbols: c24, c25_1, c26_1, c21_1, c29_1, c8_2, c8_1, c21_2, c23_2, c23_1, c29_2, c9_1, c10_1, c12_1, c14_1, c1_1, c22, c_1 ---------------------------------------- (69) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing tuple parts ---------------------------------------- (70) Obligation: Complexity Dependency Tuples Problem Rules: reach(z0, z1, z2) -> reach[Ite](member(E(z0, z1), z2), z0, z1, z2) reach[Ite](False, z0, z1, z2) -> via(z0, z1, z2, z2) reach[Ite](True, z0, z1, z2) -> Cons(E(z0, z1), Nil) member(z0, Cons(z1, z2)) -> member[Ite](eqEdge(z0, z1), z0, Cons(z1, z2)) member(z0, Nil) -> False member[Ite](False, z0, Cons(z1, z2)) -> member(z0, z2) member[Ite](True, z0, z1) -> True eqEdge(E(z0, z1), E(z2, z3)) -> eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1) eqEdge[Ite](False, z0, z1, z2, z3) -> False eqEdge[Ite](True, z0, z1, z2, z3) -> True and(False, False) -> False and(True, False) -> False and(False, True) -> False and(True, True) -> True !EQ(S(z0), S(z1)) -> !EQ(z0, z1) !EQ(0, S(z0)) -> False !EQ(S(z0), 0) -> False !EQ(0, 0) -> True via(z0, z1, Cons(E(z2, z3), z4), z5) -> via[Ite](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5) via(z0, z1, Nil, z2) -> Nil via[Ite](True, z0, z1, Cons(E(z2, z3), z4), z5) -> via[Let](z0, z1, Cons(E(z2, z3), z4), z5, reach(z3, z1, z5)) via[Ite](False, z0, z1, Cons(z2, z3), z4) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Nil) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Cons(z5, z6)) -> Cons(z2, Cons(z5, z6)) Tuples: MEMBER(z0, Nil) -> c24 EQEDGE(E(z0, z1), E(z2, z3)) -> c25(!EQ'(z0, z2)) EQEDGE(E(z0, z1), E(z2, z3)) -> c26(!EQ'(z1, z3)) VIA(0, x1, Cons(E(S(z0), x3), x4), x5) -> c21(VIA[ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) VIA(S(z0), x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) REACH(x0, x1, x2) -> c29(MEMBER(E(x0, x1), x2)) VIA[ITE](True, x0, x1, Cons(E(x2, x3), x4), Cons(z1, z2)) -> c8(VIA[LET](x0, x1, Cons(E(x2, x3), x4), Cons(z1, z2), reach[Ite](member[Ite](eqEdge(E(x3, x1), z1), E(x3, x1), Cons(z1, z2)), x3, x1, Cons(z1, z2))), REACH(x3, x1, Cons(z1, z2))) VIA[ITE](True, x0, x1, Cons(E(x2, x3), x4), x5) -> c8(REACH(x3, x1, x5)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) VIA(S(x0), x1, Cons(E(S(x2), x3), x4), x5) -> c21(!EQ'(S(x0), S(x2))) MEMBER(E(x0, S(z0)), Cons(E(x2, S(z1)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), !EQ(z0, z1)), x2, S(z1), x0, S(z0)), E(x0, S(z0)), Cons(E(x2, S(z1)), x4)), EQEDGE(E(x0, S(z0)), E(x2, S(z1)))) MEMBER(E(x0, 0), Cons(E(x2, S(z0)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, S(z0), x0, 0), E(x0, 0), Cons(E(x2, S(z0)), x4)), EQEDGE(E(x0, 0), E(x2, S(z0)))) MEMBER(E(x0, S(z0)), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, 0, x0, S(z0)), E(x0, S(z0)), Cons(E(x2, 0), x4)), EQEDGE(E(x0, S(z0)), E(x2, 0))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) MEMBER(E(x0, x1), Cons(E(x2, x3), x4)) -> c23(EQEDGE(E(x0, x1), E(x2, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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))) VIA[ITE](False, 0, x0, Cons(E(S(x1), x2), x3), x4) -> c9(VIA(0, x0, x3, x4)) VIA[ITE](False, S(x0), x1, Cons(E(0, x2), x3), x4) -> c9(VIA(S(x0), x1, x3, x4)) VIA[ITE](False, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), x5) -> c9(VIA(S(S(x0)), x1, x4, x5)) VIA[ITE](False, S(0), x0, Cons(E(S(S(x1)), x2), x3), x4) -> c9(VIA(S(0), x0, x3, x4)) VIA[ITE](False, S(S(x0)), x1, Cons(E(S(0), x2), x3), x4) -> c9(VIA(S(S(x0)), x1, x3, x4)) VIA[LET](x0, x1, Cons(E(x2, x3), x4), Cons(x5, x6), Nil) -> c10(VIA(x0, x1, x4, Cons(x5, x6))) VIA[LET](x0, x1, Cons(E(x2, x3), x4), Nil, Nil) -> c10(VIA(x0, x1, x4, Nil)) MEMBER[ITE](False, E(x0, S(x1)), Cons(E(x2, S(x3)), x4)) -> c12(MEMBER(E(x0, S(x1)), x4)) MEMBER[ITE](False, E(x0, 0), Cons(E(x1, S(x2)), x3)) -> c12(MEMBER(E(x0, 0), x3)) MEMBER[ITE](False, E(x0, S(x1)), Cons(E(x2, 0), x3)) -> c12(MEMBER(E(x0, S(x1)), x3)) MEMBER[ITE](False, E(x0, 0), Cons(E(x1, 0), x2)) -> c12(MEMBER(E(x0, 0), x2)) MEMBER[ITE](False, E(S(x0), x1), Cons(E(S(x2), x3), x4)) -> c12(MEMBER(E(S(x0), x1), x4)) MEMBER[ITE](False, E(0, x0), Cons(E(S(x1), x2), x3)) -> c12(MEMBER(E(0, x0), x3)) MEMBER[ITE](False, E(S(x0), x1), Cons(E(0, x2), x3)) -> c12(MEMBER(E(S(x0), x1), x3)) MEMBER[ITE](False, E(0, x0), Cons(E(0, x1), x2)) -> c12(MEMBER(E(0, x0), x2)) REACH[ITE](False, x0, x1, Nil) -> c14(VIA(x0, x1, Nil, Nil)) REACH[ITE](False, x0, x1, Cons(E(x2, x3), x4)) -> c14(VIA(x0, x1, Cons(E(x2, x3), x4), Cons(E(x2, x3), x4))) REACH(x0, x1, Nil) -> c1(REACH[ITE](False, x0, x1, Nil)) REACH(x0, x1, Nil) -> c1(MEMBER(E(x0, x1), Nil)) VIA(0, x0, Nil, x4) -> c22 VIA(S(x0), x1, Nil, x4) -> c22 VIA(S(S(x0)), x1, Nil, x5) -> c22 VIA(S(0), x0, Nil, x4) -> c22 VIA(x0, x1, Nil, Cons(x5, x6)) -> c22 VIA(x0, x1, Nil, Nil) -> c22 VIA[ITE](True, z0, z1, Cons(E(z2, z3), z4), Nil) -> c8(VIA[LET](z0, z1, Cons(E(z2, z3), z4), Nil, Nil), REACH(z3, z1, Nil)) !EQ'(S(S(y0)), S(S(y1))) -> c(!EQ'(S(y0), S(y1))) VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5)) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5)) S tuples: MEMBER(z0, Nil) -> c24 EQEDGE(E(z0, z1), E(z2, z3)) -> c25(!EQ'(z0, z2)) EQEDGE(E(z0, z1), E(z2, z3)) -> c26(!EQ'(z1, z3)) VIA(0, x1, Cons(E(S(z0), x3), x4), x5) -> c21(VIA[ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) VIA(S(z0), x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) REACH(x0, x1, x2) -> c29(MEMBER(E(x0, x1), x2)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) VIA(S(x0), x1, Cons(E(S(x2), x3), x4), x5) -> c21(!EQ'(S(x0), S(x2))) MEMBER(E(x0, S(z0)), Cons(E(x2, S(z1)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), !EQ(z0, z1)), x2, S(z1), x0, S(z0)), E(x0, S(z0)), Cons(E(x2, S(z1)), x4)), EQEDGE(E(x0, S(z0)), E(x2, S(z1)))) MEMBER(E(x0, 0), Cons(E(x2, S(z0)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, S(z0), x0, 0), E(x0, 0), Cons(E(x2, S(z0)), x4)), EQEDGE(E(x0, 0), E(x2, S(z0)))) MEMBER(E(x0, S(z0)), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, 0, x0, S(z0)), E(x0, S(z0)), Cons(E(x2, 0), x4)), EQEDGE(E(x0, S(z0)), E(x2, 0))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) MEMBER(E(x0, x1), Cons(E(x2, x3), x4)) -> c23(EQEDGE(E(x0, x1), E(x2, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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))) REACH(x0, x1, Nil) -> c1(REACH[ITE](False, x0, x1, Nil)) REACH(x0, x1, Nil) -> c1(MEMBER(E(x0, x1), Nil)) VIA(0, x0, Nil, x4) -> c22 VIA(S(x0), x1, Nil, x4) -> c22 VIA(S(S(x0)), x1, Nil, x5) -> c22 VIA(S(0), x0, Nil, x4) -> c22 VIA(x0, x1, Nil, Cons(x5, x6)) -> c22 VIA(x0, x1, Nil, Nil) -> c22 VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5)) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5)) K tuples:none Defined Rule Symbols: reach_3, reach[Ite]_4, member_2, member[Ite]_3, eqEdge_2, eqEdge[Ite]_5, and_2, !EQ_2, via_4, via[Ite]_5, via[Let]_5 Defined Pair Symbols: MEMBER_2, EQEDGE_2, VIA_4, REACH_3, VIA[ITE]_5, VIA[LET]_5, MEMBER[ITE]_3, REACH[ITE]_4, !EQ'_2 Compound Symbols: c24, c25_1, c26_1, c21_1, c29_1, c8_2, c8_1, c21_2, c23_2, c23_1, c29_2, c9_1, c10_1, c12_1, c14_1, c1_1, c22, c_1 ---------------------------------------- (71) CdtInstantiationProof (BOTH BOUNDS(ID, ID)) Use instantiation to replace MEMBER(z0, Nil) -> c24 by MEMBER(E(x0, x1), Nil) -> c24 MEMBER(E(x0, S(x1)), Nil) -> c24 MEMBER(E(x0, 0), Nil) -> c24 MEMBER(E(S(x0), x1), Nil) -> c24 MEMBER(E(0, x0), Nil) -> c24 ---------------------------------------- (72) Obligation: Complexity Dependency Tuples Problem Rules: reach(z0, z1, z2) -> reach[Ite](member(E(z0, z1), z2), z0, z1, z2) reach[Ite](False, z0, z1, z2) -> via(z0, z1, z2, z2) reach[Ite](True, z0, z1, z2) -> Cons(E(z0, z1), Nil) member(z0, Cons(z1, z2)) -> member[Ite](eqEdge(z0, z1), z0, Cons(z1, z2)) member(z0, Nil) -> False member[Ite](False, z0, Cons(z1, z2)) -> member(z0, z2) member[Ite](True, z0, z1) -> True eqEdge(E(z0, z1), E(z2, z3)) -> eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1) eqEdge[Ite](False, z0, z1, z2, z3) -> False eqEdge[Ite](True, z0, z1, z2, z3) -> True and(False, False) -> False and(True, False) -> False and(False, True) -> False and(True, True) -> True !EQ(S(z0), S(z1)) -> !EQ(z0, z1) !EQ(0, S(z0)) -> False !EQ(S(z0), 0) -> False !EQ(0, 0) -> True via(z0, z1, Cons(E(z2, z3), z4), z5) -> via[Ite](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5) via(z0, z1, Nil, z2) -> Nil via[Ite](True, z0, z1, Cons(E(z2, z3), z4), z5) -> via[Let](z0, z1, Cons(E(z2, z3), z4), z5, reach(z3, z1, z5)) via[Ite](False, z0, z1, Cons(z2, z3), z4) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Nil) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Cons(z5, z6)) -> Cons(z2, Cons(z5, z6)) Tuples: EQEDGE(E(z0, z1), E(z2, z3)) -> c25(!EQ'(z0, z2)) EQEDGE(E(z0, z1), E(z2, z3)) -> c26(!EQ'(z1, z3)) VIA(0, x1, Cons(E(S(z0), x3), x4), x5) -> c21(VIA[ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) VIA(S(z0), x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) REACH(x0, x1, x2) -> c29(MEMBER(E(x0, x1), x2)) VIA[ITE](True, x0, x1, Cons(E(x2, x3), x4), Cons(z1, z2)) -> c8(VIA[LET](x0, x1, Cons(E(x2, x3), x4), Cons(z1, z2), reach[Ite](member[Ite](eqEdge(E(x3, x1), z1), E(x3, x1), Cons(z1, z2)), x3, x1, Cons(z1, z2))), REACH(x3, x1, Cons(z1, z2))) VIA[ITE](True, x0, x1, Cons(E(x2, x3), x4), x5) -> c8(REACH(x3, x1, x5)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) VIA(S(x0), x1, Cons(E(S(x2), x3), x4), x5) -> c21(!EQ'(S(x0), S(x2))) MEMBER(E(x0, S(z0)), Cons(E(x2, S(z1)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), !EQ(z0, z1)), x2, S(z1), x0, S(z0)), E(x0, S(z0)), Cons(E(x2, S(z1)), x4)), EQEDGE(E(x0, S(z0)), E(x2, S(z1)))) MEMBER(E(x0, 0), Cons(E(x2, S(z0)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, S(z0), x0, 0), E(x0, 0), Cons(E(x2, S(z0)), x4)), EQEDGE(E(x0, 0), E(x2, S(z0)))) MEMBER(E(x0, S(z0)), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, 0, x0, S(z0)), E(x0, S(z0)), Cons(E(x2, 0), x4)), EQEDGE(E(x0, S(z0)), E(x2, 0))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) MEMBER(E(x0, x1), Cons(E(x2, x3), x4)) -> c23(EQEDGE(E(x0, x1), E(x2, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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))) VIA[ITE](False, 0, x0, Cons(E(S(x1), x2), x3), x4) -> c9(VIA(0, x0, x3, x4)) VIA[ITE](False, S(x0), x1, Cons(E(0, x2), x3), x4) -> c9(VIA(S(x0), x1, x3, x4)) VIA[ITE](False, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), x5) -> c9(VIA(S(S(x0)), x1, x4, x5)) VIA[ITE](False, S(0), x0, Cons(E(S(S(x1)), x2), x3), x4) -> c9(VIA(S(0), x0, x3, x4)) VIA[ITE](False, S(S(x0)), x1, Cons(E(S(0), x2), x3), x4) -> c9(VIA(S(S(x0)), x1, x3, x4)) VIA[LET](x0, x1, Cons(E(x2, x3), x4), Cons(x5, x6), Nil) -> c10(VIA(x0, x1, x4, Cons(x5, x6))) VIA[LET](x0, x1, Cons(E(x2, x3), x4), Nil, Nil) -> c10(VIA(x0, x1, x4, Nil)) MEMBER[ITE](False, E(x0, S(x1)), Cons(E(x2, S(x3)), x4)) -> c12(MEMBER(E(x0, S(x1)), x4)) MEMBER[ITE](False, E(x0, 0), Cons(E(x1, S(x2)), x3)) -> c12(MEMBER(E(x0, 0), x3)) MEMBER[ITE](False, E(x0, S(x1)), Cons(E(x2, 0), x3)) -> c12(MEMBER(E(x0, S(x1)), x3)) MEMBER[ITE](False, E(x0, 0), Cons(E(x1, 0), x2)) -> c12(MEMBER(E(x0, 0), x2)) MEMBER[ITE](False, E(S(x0), x1), Cons(E(S(x2), x3), x4)) -> c12(MEMBER(E(S(x0), x1), x4)) MEMBER[ITE](False, E(0, x0), Cons(E(S(x1), x2), x3)) -> c12(MEMBER(E(0, x0), x3)) MEMBER[ITE](False, E(S(x0), x1), Cons(E(0, x2), x3)) -> c12(MEMBER(E(S(x0), x1), x3)) MEMBER[ITE](False, E(0, x0), Cons(E(0, x1), x2)) -> c12(MEMBER(E(0, x0), x2)) REACH[ITE](False, x0, x1, Nil) -> c14(VIA(x0, x1, Nil, Nil)) REACH[ITE](False, x0, x1, Cons(E(x2, x3), x4)) -> c14(VIA(x0, x1, Cons(E(x2, x3), x4), Cons(E(x2, x3), x4))) REACH(x0, x1, Nil) -> c1(REACH[ITE](False, x0, x1, Nil)) REACH(x0, x1, Nil) -> c1(MEMBER(E(x0, x1), Nil)) VIA(0, x0, Nil, x4) -> c22 VIA(S(x0), x1, Nil, x4) -> c22 VIA(S(S(x0)), x1, Nil, x5) -> c22 VIA(S(0), x0, Nil, x4) -> c22 VIA(x0, x1, Nil, Cons(x5, x6)) -> c22 VIA(x0, x1, Nil, Nil) -> c22 VIA[ITE](True, z0, z1, Cons(E(z2, z3), z4), Nil) -> c8(VIA[LET](z0, z1, Cons(E(z2, z3), z4), Nil, Nil), REACH(z3, z1, Nil)) !EQ'(S(S(y0)), S(S(y1))) -> c(!EQ'(S(y0), S(y1))) VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5)) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5)) MEMBER(E(x0, x1), Nil) -> c24 MEMBER(E(x0, S(x1)), Nil) -> c24 MEMBER(E(x0, 0), Nil) -> c24 MEMBER(E(S(x0), x1), Nil) -> c24 MEMBER(E(0, x0), Nil) -> c24 S tuples: EQEDGE(E(z0, z1), E(z2, z3)) -> c25(!EQ'(z0, z2)) EQEDGE(E(z0, z1), E(z2, z3)) -> c26(!EQ'(z1, z3)) VIA(0, x1, Cons(E(S(z0), x3), x4), x5) -> c21(VIA[ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) VIA(S(z0), x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) REACH(x0, x1, x2) -> c29(MEMBER(E(x0, x1), x2)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) VIA(S(x0), x1, Cons(E(S(x2), x3), x4), x5) -> c21(!EQ'(S(x0), S(x2))) MEMBER(E(x0, S(z0)), Cons(E(x2, S(z1)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), !EQ(z0, z1)), x2, S(z1), x0, S(z0)), E(x0, S(z0)), Cons(E(x2, S(z1)), x4)), EQEDGE(E(x0, S(z0)), E(x2, S(z1)))) MEMBER(E(x0, 0), Cons(E(x2, S(z0)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, S(z0), x0, 0), E(x0, 0), Cons(E(x2, S(z0)), x4)), EQEDGE(E(x0, 0), E(x2, S(z0)))) MEMBER(E(x0, S(z0)), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, 0, x0, S(z0)), E(x0, S(z0)), Cons(E(x2, 0), x4)), EQEDGE(E(x0, S(z0)), E(x2, 0))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) MEMBER(E(x0, x1), Cons(E(x2, x3), x4)) -> c23(EQEDGE(E(x0, x1), E(x2, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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))) REACH(x0, x1, Nil) -> c1(REACH[ITE](False, x0, x1, Nil)) REACH(x0, x1, Nil) -> c1(MEMBER(E(x0, x1), Nil)) VIA(0, x0, Nil, x4) -> c22 VIA(S(x0), x1, Nil, x4) -> c22 VIA(S(S(x0)), x1, Nil, x5) -> c22 VIA(S(0), x0, Nil, x4) -> c22 VIA(x0, x1, Nil, Cons(x5, x6)) -> c22 VIA(x0, x1, Nil, Nil) -> c22 VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5)) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5)) MEMBER(E(x0, x1), Nil) -> c24 MEMBER(E(x0, S(x1)), Nil) -> c24 MEMBER(E(x0, 0), Nil) -> c24 MEMBER(E(S(x0), x1), Nil) -> c24 MEMBER(E(0, x0), Nil) -> c24 K tuples:none Defined Rule Symbols: reach_3, reach[Ite]_4, member_2, member[Ite]_3, eqEdge_2, eqEdge[Ite]_5, and_2, !EQ_2, via_4, via[Ite]_5, via[Let]_5 Defined Pair Symbols: EQEDGE_2, VIA_4, REACH_3, VIA[ITE]_5, MEMBER_2, VIA[LET]_5, MEMBER[ITE]_3, REACH[ITE]_4, !EQ'_2 Compound Symbols: c25_1, c26_1, c21_1, c29_1, c8_2, c8_1, c21_2, c23_2, c23_1, c29_2, c9_1, c10_1, c12_1, c14_1, c1_1, c22, c_1, c24 ---------------------------------------- (73) CdtInstantiationProof (BOTH BOUNDS(ID, ID)) Use instantiation to replace VIA[ITE](True, x0, x1, Cons(E(x2, x3), x4), Cons(z1, z2)) -> c8(VIA[LET](x0, x1, Cons(E(x2, x3), x4), Cons(z1, z2), reach[Ite](member[Ite](eqEdge(E(x3, x1), z1), E(x3, x1), Cons(z1, z2)), x3, x1, Cons(z1, z2))), REACH(x3, x1, Cons(z1, z2))) by VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), Cons(z5, z6)) -> c8(VIA[LET](0, x0, Cons(E(0, x1), x2), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x1, x0), z5), E(x1, x0), Cons(z5, z6)), x1, x0, Cons(z5, z6))), REACH(x1, x0, Cons(z5, z6))) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(z5, z6)) -> c8(VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x3, x1), z5), E(x3, x1), Cons(z5, z6)), x3, x1, Cons(z5, z6))), REACH(x3, x1, Cons(z5, z6))) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), Cons(z5, z6)) -> c8(VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x1, x0), z5), E(x1, x0), Cons(z5, z6)), x1, x0, Cons(z5, z6))), REACH(x1, x0, Cons(z5, z6))) ---------------------------------------- (74) Obligation: Complexity Dependency Tuples Problem Rules: reach(z0, z1, z2) -> reach[Ite](member(E(z0, z1), z2), z0, z1, z2) reach[Ite](False, z0, z1, z2) -> via(z0, z1, z2, z2) reach[Ite](True, z0, z1, z2) -> Cons(E(z0, z1), Nil) member(z0, Cons(z1, z2)) -> member[Ite](eqEdge(z0, z1), z0, Cons(z1, z2)) member(z0, Nil) -> False member[Ite](False, z0, Cons(z1, z2)) -> member(z0, z2) member[Ite](True, z0, z1) -> True eqEdge(E(z0, z1), E(z2, z3)) -> eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1) eqEdge[Ite](False, z0, z1, z2, z3) -> False eqEdge[Ite](True, z0, z1, z2, z3) -> True and(False, False) -> False and(True, False) -> False and(False, True) -> False and(True, True) -> True !EQ(S(z0), S(z1)) -> !EQ(z0, z1) !EQ(0, S(z0)) -> False !EQ(S(z0), 0) -> False !EQ(0, 0) -> True via(z0, z1, Cons(E(z2, z3), z4), z5) -> via[Ite](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5) via(z0, z1, Nil, z2) -> Nil via[Ite](True, z0, z1, Cons(E(z2, z3), z4), z5) -> via[Let](z0, z1, Cons(E(z2, z3), z4), z5, reach(z3, z1, z5)) via[Ite](False, z0, z1, Cons(z2, z3), z4) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Nil) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Cons(z5, z6)) -> Cons(z2, Cons(z5, z6)) Tuples: EQEDGE(E(z0, z1), E(z2, z3)) -> c25(!EQ'(z0, z2)) EQEDGE(E(z0, z1), E(z2, z3)) -> c26(!EQ'(z1, z3)) VIA(0, x1, Cons(E(S(z0), x3), x4), x5) -> c21(VIA[ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) VIA(S(z0), x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) REACH(x0, x1, x2) -> c29(MEMBER(E(x0, x1), x2)) VIA[ITE](True, x0, x1, Cons(E(x2, x3), x4), x5) -> c8(REACH(x3, x1, x5)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) VIA(S(x0), x1, Cons(E(S(x2), x3), x4), x5) -> c21(!EQ'(S(x0), S(x2))) MEMBER(E(x0, S(z0)), Cons(E(x2, S(z1)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), !EQ(z0, z1)), x2, S(z1), x0, S(z0)), E(x0, S(z0)), Cons(E(x2, S(z1)), x4)), EQEDGE(E(x0, S(z0)), E(x2, S(z1)))) MEMBER(E(x0, 0), Cons(E(x2, S(z0)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, S(z0), x0, 0), E(x0, 0), Cons(E(x2, S(z0)), x4)), EQEDGE(E(x0, 0), E(x2, S(z0)))) MEMBER(E(x0, S(z0)), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, 0, x0, S(z0)), E(x0, S(z0)), Cons(E(x2, 0), x4)), EQEDGE(E(x0, S(z0)), E(x2, 0))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) MEMBER(E(x0, x1), Cons(E(x2, x3), x4)) -> c23(EQEDGE(E(x0, x1), E(x2, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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))) VIA[ITE](False, 0, x0, Cons(E(S(x1), x2), x3), x4) -> c9(VIA(0, x0, x3, x4)) VIA[ITE](False, S(x0), x1, Cons(E(0, x2), x3), x4) -> c9(VIA(S(x0), x1, x3, x4)) VIA[ITE](False, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), x5) -> c9(VIA(S(S(x0)), x1, x4, x5)) VIA[ITE](False, S(0), x0, Cons(E(S(S(x1)), x2), x3), x4) -> c9(VIA(S(0), x0, x3, x4)) VIA[ITE](False, S(S(x0)), x1, Cons(E(S(0), x2), x3), x4) -> c9(VIA(S(S(x0)), x1, x3, x4)) VIA[LET](x0, x1, Cons(E(x2, x3), x4), Cons(x5, x6), Nil) -> c10(VIA(x0, x1, x4, Cons(x5, x6))) VIA[LET](x0, x1, Cons(E(x2, x3), x4), Nil, Nil) -> c10(VIA(x0, x1, x4, Nil)) MEMBER[ITE](False, E(x0, S(x1)), Cons(E(x2, S(x3)), x4)) -> c12(MEMBER(E(x0, S(x1)), x4)) MEMBER[ITE](False, E(x0, 0), Cons(E(x1, S(x2)), x3)) -> c12(MEMBER(E(x0, 0), x3)) MEMBER[ITE](False, E(x0, S(x1)), Cons(E(x2, 0), x3)) -> c12(MEMBER(E(x0, S(x1)), x3)) MEMBER[ITE](False, E(x0, 0), Cons(E(x1, 0), x2)) -> c12(MEMBER(E(x0, 0), x2)) MEMBER[ITE](False, E(S(x0), x1), Cons(E(S(x2), x3), x4)) -> c12(MEMBER(E(S(x0), x1), x4)) MEMBER[ITE](False, E(0, x0), Cons(E(S(x1), x2), x3)) -> c12(MEMBER(E(0, x0), x3)) MEMBER[ITE](False, E(S(x0), x1), Cons(E(0, x2), x3)) -> c12(MEMBER(E(S(x0), x1), x3)) MEMBER[ITE](False, E(0, x0), Cons(E(0, x1), x2)) -> c12(MEMBER(E(0, x0), x2)) REACH[ITE](False, x0, x1, Nil) -> c14(VIA(x0, x1, Nil, Nil)) REACH[ITE](False, x0, x1, Cons(E(x2, x3), x4)) -> c14(VIA(x0, x1, Cons(E(x2, x3), x4), Cons(E(x2, x3), x4))) REACH(x0, x1, Nil) -> c1(REACH[ITE](False, x0, x1, Nil)) REACH(x0, x1, Nil) -> c1(MEMBER(E(x0, x1), Nil)) VIA(0, x0, Nil, x4) -> c22 VIA(S(x0), x1, Nil, x4) -> c22 VIA(S(S(x0)), x1, Nil, x5) -> c22 VIA(S(0), x0, Nil, x4) -> c22 VIA(x0, x1, Nil, Cons(x5, x6)) -> c22 VIA(x0, x1, Nil, Nil) -> c22 VIA[ITE](True, z0, z1, Cons(E(z2, z3), z4), Nil) -> c8(VIA[LET](z0, z1, Cons(E(z2, z3), z4), Nil, Nil), REACH(z3, z1, Nil)) !EQ'(S(S(y0)), S(S(y1))) -> c(!EQ'(S(y0), S(y1))) VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5)) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5)) MEMBER(E(x0, x1), Nil) -> c24 MEMBER(E(x0, S(x1)), Nil) -> c24 MEMBER(E(x0, 0), Nil) -> c24 MEMBER(E(S(x0), x1), Nil) -> c24 MEMBER(E(0, x0), Nil) -> c24 VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), Cons(z5, z6)) -> c8(VIA[LET](0, x0, Cons(E(0, x1), x2), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x1, x0), z5), E(x1, x0), Cons(z5, z6)), x1, x0, Cons(z5, z6))), REACH(x1, x0, Cons(z5, z6))) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(z5, z6)) -> c8(VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x3, x1), z5), E(x3, x1), Cons(z5, z6)), x3, x1, Cons(z5, z6))), REACH(x3, x1, Cons(z5, z6))) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), Cons(z5, z6)) -> c8(VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x1, x0), z5), E(x1, x0), Cons(z5, z6)), x1, x0, Cons(z5, z6))), REACH(x1, x0, Cons(z5, z6))) S tuples: EQEDGE(E(z0, z1), E(z2, z3)) -> c25(!EQ'(z0, z2)) EQEDGE(E(z0, z1), E(z2, z3)) -> c26(!EQ'(z1, z3)) VIA(0, x1, Cons(E(S(z0), x3), x4), x5) -> c21(VIA[ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) VIA(S(z0), x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) REACH(x0, x1, x2) -> c29(MEMBER(E(x0, x1), x2)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) VIA(S(x0), x1, Cons(E(S(x2), x3), x4), x5) -> c21(!EQ'(S(x0), S(x2))) MEMBER(E(x0, S(z0)), Cons(E(x2, S(z1)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), !EQ(z0, z1)), x2, S(z1), x0, S(z0)), E(x0, S(z0)), Cons(E(x2, S(z1)), x4)), EQEDGE(E(x0, S(z0)), E(x2, S(z1)))) MEMBER(E(x0, 0), Cons(E(x2, S(z0)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, S(z0), x0, 0), E(x0, 0), Cons(E(x2, S(z0)), x4)), EQEDGE(E(x0, 0), E(x2, S(z0)))) MEMBER(E(x0, S(z0)), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, 0, x0, S(z0)), E(x0, S(z0)), Cons(E(x2, 0), x4)), EQEDGE(E(x0, S(z0)), E(x2, 0))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) MEMBER(E(x0, x1), Cons(E(x2, x3), x4)) -> c23(EQEDGE(E(x0, x1), E(x2, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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))) REACH(x0, x1, Nil) -> c1(REACH[ITE](False, x0, x1, Nil)) REACH(x0, x1, Nil) -> c1(MEMBER(E(x0, x1), Nil)) VIA(0, x0, Nil, x4) -> c22 VIA(S(x0), x1, Nil, x4) -> c22 VIA(S(S(x0)), x1, Nil, x5) -> c22 VIA(S(0), x0, Nil, x4) -> c22 VIA(x0, x1, Nil, Cons(x5, x6)) -> c22 VIA(x0, x1, Nil, Nil) -> c22 VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5)) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5)) MEMBER(E(x0, x1), Nil) -> c24 MEMBER(E(x0, S(x1)), Nil) -> c24 MEMBER(E(x0, 0), Nil) -> c24 MEMBER(E(S(x0), x1), Nil) -> c24 MEMBER(E(0, x0), Nil) -> c24 K tuples:none Defined Rule Symbols: reach_3, reach[Ite]_4, member_2, member[Ite]_3, eqEdge_2, eqEdge[Ite]_5, and_2, !EQ_2, via_4, via[Ite]_5, via[Let]_5 Defined Pair Symbols: EQEDGE_2, VIA_4, REACH_3, VIA[ITE]_5, MEMBER_2, VIA[LET]_5, MEMBER[ITE]_3, REACH[ITE]_4, !EQ'_2 Compound Symbols: c25_1, c26_1, c21_1, c29_1, c8_1, c21_2, c23_2, c23_1, c29_2, c9_1, c10_1, c12_1, c14_1, c1_1, c22, c8_2, c_1, c24 ---------------------------------------- (75) CdtInstantiationProof (BOTH BOUNDS(ID, ID)) Use instantiation to replace VIA[ITE](True, x0, x1, Cons(E(x2, x3), x4), x5) -> c8(REACH(x3, x1, x5)) by VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), x3) -> c8(REACH(x1, x0, x3)) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), x5) -> c8(REACH(x3, x1, x5)) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), x3) -> c8(REACH(x1, x0, x3)) ---------------------------------------- (76) Obligation: Complexity Dependency Tuples Problem Rules: reach(z0, z1, z2) -> reach[Ite](member(E(z0, z1), z2), z0, z1, z2) reach[Ite](False, z0, z1, z2) -> via(z0, z1, z2, z2) reach[Ite](True, z0, z1, z2) -> Cons(E(z0, z1), Nil) member(z0, Cons(z1, z2)) -> member[Ite](eqEdge(z0, z1), z0, Cons(z1, z2)) member(z0, Nil) -> False member[Ite](False, z0, Cons(z1, z2)) -> member(z0, z2) member[Ite](True, z0, z1) -> True eqEdge(E(z0, z1), E(z2, z3)) -> eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1) eqEdge[Ite](False, z0, z1, z2, z3) -> False eqEdge[Ite](True, z0, z1, z2, z3) -> True and(False, False) -> False and(True, False) -> False and(False, True) -> False and(True, True) -> True !EQ(S(z0), S(z1)) -> !EQ(z0, z1) !EQ(0, S(z0)) -> False !EQ(S(z0), 0) -> False !EQ(0, 0) -> True via(z0, z1, Cons(E(z2, z3), z4), z5) -> via[Ite](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5) via(z0, z1, Nil, z2) -> Nil via[Ite](True, z0, z1, Cons(E(z2, z3), z4), z5) -> via[Let](z0, z1, Cons(E(z2, z3), z4), z5, reach(z3, z1, z5)) via[Ite](False, z0, z1, Cons(z2, z3), z4) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Nil) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Cons(z5, z6)) -> Cons(z2, Cons(z5, z6)) Tuples: EQEDGE(E(z0, z1), E(z2, z3)) -> c25(!EQ'(z0, z2)) EQEDGE(E(z0, z1), E(z2, z3)) -> c26(!EQ'(z1, z3)) VIA(0, x1, Cons(E(S(z0), x3), x4), x5) -> c21(VIA[ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) VIA(S(z0), x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) REACH(x0, x1, x2) -> c29(MEMBER(E(x0, x1), x2)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) VIA(S(x0), x1, Cons(E(S(x2), x3), x4), x5) -> c21(!EQ'(S(x0), S(x2))) MEMBER(E(x0, S(z0)), Cons(E(x2, S(z1)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), !EQ(z0, z1)), x2, S(z1), x0, S(z0)), E(x0, S(z0)), Cons(E(x2, S(z1)), x4)), EQEDGE(E(x0, S(z0)), E(x2, S(z1)))) MEMBER(E(x0, 0), Cons(E(x2, S(z0)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, S(z0), x0, 0), E(x0, 0), Cons(E(x2, S(z0)), x4)), EQEDGE(E(x0, 0), E(x2, S(z0)))) MEMBER(E(x0, S(z0)), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, 0, x0, S(z0)), E(x0, S(z0)), Cons(E(x2, 0), x4)), EQEDGE(E(x0, S(z0)), E(x2, 0))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) MEMBER(E(x0, x1), Cons(E(x2, x3), x4)) -> c23(EQEDGE(E(x0, x1), E(x2, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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))) VIA[ITE](False, 0, x0, Cons(E(S(x1), x2), x3), x4) -> c9(VIA(0, x0, x3, x4)) VIA[ITE](False, S(x0), x1, Cons(E(0, x2), x3), x4) -> c9(VIA(S(x0), x1, x3, x4)) VIA[ITE](False, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), x5) -> c9(VIA(S(S(x0)), x1, x4, x5)) VIA[ITE](False, S(0), x0, Cons(E(S(S(x1)), x2), x3), x4) -> c9(VIA(S(0), x0, x3, x4)) VIA[ITE](False, S(S(x0)), x1, Cons(E(S(0), x2), x3), x4) -> c9(VIA(S(S(x0)), x1, x3, x4)) VIA[LET](x0, x1, Cons(E(x2, x3), x4), Cons(x5, x6), Nil) -> c10(VIA(x0, x1, x4, Cons(x5, x6))) VIA[LET](x0, x1, Cons(E(x2, x3), x4), Nil, Nil) -> c10(VIA(x0, x1, x4, Nil)) MEMBER[ITE](False, E(x0, S(x1)), Cons(E(x2, S(x3)), x4)) -> c12(MEMBER(E(x0, S(x1)), x4)) MEMBER[ITE](False, E(x0, 0), Cons(E(x1, S(x2)), x3)) -> c12(MEMBER(E(x0, 0), x3)) MEMBER[ITE](False, E(x0, S(x1)), Cons(E(x2, 0), x3)) -> c12(MEMBER(E(x0, S(x1)), x3)) MEMBER[ITE](False, E(x0, 0), Cons(E(x1, 0), x2)) -> c12(MEMBER(E(x0, 0), x2)) MEMBER[ITE](False, E(S(x0), x1), Cons(E(S(x2), x3), x4)) -> c12(MEMBER(E(S(x0), x1), x4)) MEMBER[ITE](False, E(0, x0), Cons(E(S(x1), x2), x3)) -> c12(MEMBER(E(0, x0), x3)) MEMBER[ITE](False, E(S(x0), x1), Cons(E(0, x2), x3)) -> c12(MEMBER(E(S(x0), x1), x3)) MEMBER[ITE](False, E(0, x0), Cons(E(0, x1), x2)) -> c12(MEMBER(E(0, x0), x2)) REACH[ITE](False, x0, x1, Nil) -> c14(VIA(x0, x1, Nil, Nil)) REACH[ITE](False, x0, x1, Cons(E(x2, x3), x4)) -> c14(VIA(x0, x1, Cons(E(x2, x3), x4), Cons(E(x2, x3), x4))) REACH(x0, x1, Nil) -> c1(REACH[ITE](False, x0, x1, Nil)) REACH(x0, x1, Nil) -> c1(MEMBER(E(x0, x1), Nil)) VIA(0, x0, Nil, x4) -> c22 VIA(S(x0), x1, Nil, x4) -> c22 VIA(S(S(x0)), x1, Nil, x5) -> c22 VIA(S(0), x0, Nil, x4) -> c22 VIA(x0, x1, Nil, Cons(x5, x6)) -> c22 VIA(x0, x1, Nil, Nil) -> c22 VIA[ITE](True, z0, z1, Cons(E(z2, z3), z4), Nil) -> c8(VIA[LET](z0, z1, Cons(E(z2, z3), z4), Nil, Nil), REACH(z3, z1, Nil)) !EQ'(S(S(y0)), S(S(y1))) -> c(!EQ'(S(y0), S(y1))) VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5)) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5)) MEMBER(E(x0, x1), Nil) -> c24 MEMBER(E(x0, S(x1)), Nil) -> c24 MEMBER(E(x0, 0), Nil) -> c24 MEMBER(E(S(x0), x1), Nil) -> c24 MEMBER(E(0, x0), Nil) -> c24 VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), Cons(z5, z6)) -> c8(VIA[LET](0, x0, Cons(E(0, x1), x2), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x1, x0), z5), E(x1, x0), Cons(z5, z6)), x1, x0, Cons(z5, z6))), REACH(x1, x0, Cons(z5, z6))) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(z5, z6)) -> c8(VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x3, x1), z5), E(x3, x1), Cons(z5, z6)), x3, x1, Cons(z5, z6))), REACH(x3, x1, Cons(z5, z6))) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), Cons(z5, z6)) -> c8(VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x1, x0), z5), E(x1, x0), Cons(z5, z6)), x1, x0, Cons(z5, z6))), REACH(x1, x0, Cons(z5, z6))) VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), x3) -> c8(REACH(x1, x0, x3)) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), x5) -> c8(REACH(x3, x1, x5)) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), x3) -> c8(REACH(x1, x0, x3)) S tuples: EQEDGE(E(z0, z1), E(z2, z3)) -> c25(!EQ'(z0, z2)) EQEDGE(E(z0, z1), E(z2, z3)) -> c26(!EQ'(z1, z3)) VIA(0, x1, Cons(E(S(z0), x3), x4), x5) -> c21(VIA[ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) VIA(S(z0), x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) REACH(x0, x1, x2) -> c29(MEMBER(E(x0, x1), x2)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) VIA(S(x0), x1, Cons(E(S(x2), x3), x4), x5) -> c21(!EQ'(S(x0), S(x2))) MEMBER(E(x0, S(z0)), Cons(E(x2, S(z1)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), !EQ(z0, z1)), x2, S(z1), x0, S(z0)), E(x0, S(z0)), Cons(E(x2, S(z1)), x4)), EQEDGE(E(x0, S(z0)), E(x2, S(z1)))) MEMBER(E(x0, 0), Cons(E(x2, S(z0)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, S(z0), x0, 0), E(x0, 0), Cons(E(x2, S(z0)), x4)), EQEDGE(E(x0, 0), E(x2, S(z0)))) MEMBER(E(x0, S(z0)), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, 0, x0, S(z0)), E(x0, S(z0)), Cons(E(x2, 0), x4)), EQEDGE(E(x0, S(z0)), E(x2, 0))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) MEMBER(E(x0, x1), Cons(E(x2, x3), x4)) -> c23(EQEDGE(E(x0, x1), E(x2, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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))) REACH(x0, x1, Nil) -> c1(REACH[ITE](False, x0, x1, Nil)) REACH(x0, x1, Nil) -> c1(MEMBER(E(x0, x1), Nil)) VIA(0, x0, Nil, x4) -> c22 VIA(S(x0), x1, Nil, x4) -> c22 VIA(S(S(x0)), x1, Nil, x5) -> c22 VIA(S(0), x0, Nil, x4) -> c22 VIA(x0, x1, Nil, Cons(x5, x6)) -> c22 VIA(x0, x1, Nil, Nil) -> c22 VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5)) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5)) MEMBER(E(x0, x1), Nil) -> c24 MEMBER(E(x0, S(x1)), Nil) -> c24 MEMBER(E(x0, 0), Nil) -> c24 MEMBER(E(S(x0), x1), Nil) -> c24 MEMBER(E(0, x0), Nil) -> c24 K tuples:none Defined Rule Symbols: reach_3, reach[Ite]_4, member_2, member[Ite]_3, eqEdge_2, eqEdge[Ite]_5, and_2, !EQ_2, via_4, via[Ite]_5, via[Let]_5 Defined Pair Symbols: EQEDGE_2, VIA_4, REACH_3, MEMBER_2, VIA[ITE]_5, VIA[LET]_5, MEMBER[ITE]_3, REACH[ITE]_4, !EQ'_2 Compound Symbols: c25_1, c26_1, c21_1, c29_1, c21_2, c23_2, c23_1, c29_2, c9_1, c10_1, c12_1, c14_1, c1_1, c22, c8_2, c_1, c24, c8_1 ---------------------------------------- (77) CdtInstantiationProof (BOTH BOUNDS(ID, ID)) Use instantiation to replace VIA[LET](x0, x1, Cons(E(x2, x3), x4), Cons(x5, x6), Nil) -> c10(VIA(x0, x1, x4, Cons(x5, x6))) by VIA[LET](0, x0, Cons(E(0, x1), x2), Cons(x3, x4), Nil) -> c10(VIA(0, x0, x2, Cons(x3, x4))) VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(x5, x6), Nil) -> c10(VIA(S(S(x0)), x1, x4, Cons(x5, x6))) VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Cons(x3, x4), Nil) -> c10(VIA(S(0), x0, x2, Cons(x3, x4))) ---------------------------------------- (78) Obligation: Complexity Dependency Tuples Problem Rules: reach(z0, z1, z2) -> reach[Ite](member(E(z0, z1), z2), z0, z1, z2) reach[Ite](False, z0, z1, z2) -> via(z0, z1, z2, z2) reach[Ite](True, z0, z1, z2) -> Cons(E(z0, z1), Nil) member(z0, Cons(z1, z2)) -> member[Ite](eqEdge(z0, z1), z0, Cons(z1, z2)) member(z0, Nil) -> False member[Ite](False, z0, Cons(z1, z2)) -> member(z0, z2) member[Ite](True, z0, z1) -> True eqEdge(E(z0, z1), E(z2, z3)) -> eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1) eqEdge[Ite](False, z0, z1, z2, z3) -> False eqEdge[Ite](True, z0, z1, z2, z3) -> True and(False, False) -> False and(True, False) -> False and(False, True) -> False and(True, True) -> True !EQ(S(z0), S(z1)) -> !EQ(z0, z1) !EQ(0, S(z0)) -> False !EQ(S(z0), 0) -> False !EQ(0, 0) -> True via(z0, z1, Cons(E(z2, z3), z4), z5) -> via[Ite](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5) via(z0, z1, Nil, z2) -> Nil via[Ite](True, z0, z1, Cons(E(z2, z3), z4), z5) -> via[Let](z0, z1, Cons(E(z2, z3), z4), z5, reach(z3, z1, z5)) via[Ite](False, z0, z1, Cons(z2, z3), z4) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Nil) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Cons(z5, z6)) -> Cons(z2, Cons(z5, z6)) Tuples: EQEDGE(E(z0, z1), E(z2, z3)) -> c25(!EQ'(z0, z2)) EQEDGE(E(z0, z1), E(z2, z3)) -> c26(!EQ'(z1, z3)) VIA(0, x1, Cons(E(S(z0), x3), x4), x5) -> c21(VIA[ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) VIA(S(z0), x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) REACH(x0, x1, x2) -> c29(MEMBER(E(x0, x1), x2)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) VIA(S(x0), x1, Cons(E(S(x2), x3), x4), x5) -> c21(!EQ'(S(x0), S(x2))) MEMBER(E(x0, S(z0)), Cons(E(x2, S(z1)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), !EQ(z0, z1)), x2, S(z1), x0, S(z0)), E(x0, S(z0)), Cons(E(x2, S(z1)), x4)), EQEDGE(E(x0, S(z0)), E(x2, S(z1)))) MEMBER(E(x0, 0), Cons(E(x2, S(z0)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, S(z0), x0, 0), E(x0, 0), Cons(E(x2, S(z0)), x4)), EQEDGE(E(x0, 0), E(x2, S(z0)))) MEMBER(E(x0, S(z0)), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, 0, x0, S(z0)), E(x0, S(z0)), Cons(E(x2, 0), x4)), EQEDGE(E(x0, S(z0)), E(x2, 0))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) MEMBER(E(x0, x1), Cons(E(x2, x3), x4)) -> c23(EQEDGE(E(x0, x1), E(x2, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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))) VIA[ITE](False, 0, x0, Cons(E(S(x1), x2), x3), x4) -> c9(VIA(0, x0, x3, x4)) VIA[ITE](False, S(x0), x1, Cons(E(0, x2), x3), x4) -> c9(VIA(S(x0), x1, x3, x4)) VIA[ITE](False, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), x5) -> c9(VIA(S(S(x0)), x1, x4, x5)) VIA[ITE](False, S(0), x0, Cons(E(S(S(x1)), x2), x3), x4) -> c9(VIA(S(0), x0, x3, x4)) VIA[ITE](False, S(S(x0)), x1, Cons(E(S(0), x2), x3), x4) -> c9(VIA(S(S(x0)), x1, x3, x4)) VIA[LET](x0, x1, Cons(E(x2, x3), x4), Nil, Nil) -> c10(VIA(x0, x1, x4, Nil)) MEMBER[ITE](False, E(x0, S(x1)), Cons(E(x2, S(x3)), x4)) -> c12(MEMBER(E(x0, S(x1)), x4)) MEMBER[ITE](False, E(x0, 0), Cons(E(x1, S(x2)), x3)) -> c12(MEMBER(E(x0, 0), x3)) MEMBER[ITE](False, E(x0, S(x1)), Cons(E(x2, 0), x3)) -> c12(MEMBER(E(x0, S(x1)), x3)) MEMBER[ITE](False, E(x0, 0), Cons(E(x1, 0), x2)) -> c12(MEMBER(E(x0, 0), x2)) MEMBER[ITE](False, E(S(x0), x1), Cons(E(S(x2), x3), x4)) -> c12(MEMBER(E(S(x0), x1), x4)) MEMBER[ITE](False, E(0, x0), Cons(E(S(x1), x2), x3)) -> c12(MEMBER(E(0, x0), x3)) MEMBER[ITE](False, E(S(x0), x1), Cons(E(0, x2), x3)) -> c12(MEMBER(E(S(x0), x1), x3)) MEMBER[ITE](False, E(0, x0), Cons(E(0, x1), x2)) -> c12(MEMBER(E(0, x0), x2)) REACH[ITE](False, x0, x1, Nil) -> c14(VIA(x0, x1, Nil, Nil)) REACH[ITE](False, x0, x1, Cons(E(x2, x3), x4)) -> c14(VIA(x0, x1, Cons(E(x2, x3), x4), Cons(E(x2, x3), x4))) REACH(x0, x1, Nil) -> c1(REACH[ITE](False, x0, x1, Nil)) REACH(x0, x1, Nil) -> c1(MEMBER(E(x0, x1), Nil)) VIA(0, x0, Nil, x4) -> c22 VIA(S(x0), x1, Nil, x4) -> c22 VIA(S(S(x0)), x1, Nil, x5) -> c22 VIA(S(0), x0, Nil, x4) -> c22 VIA(x0, x1, Nil, Cons(x5, x6)) -> c22 VIA(x0, x1, Nil, Nil) -> c22 VIA[ITE](True, z0, z1, Cons(E(z2, z3), z4), Nil) -> c8(VIA[LET](z0, z1, Cons(E(z2, z3), z4), Nil, Nil), REACH(z3, z1, Nil)) !EQ'(S(S(y0)), S(S(y1))) -> c(!EQ'(S(y0), S(y1))) VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5)) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5)) MEMBER(E(x0, x1), Nil) -> c24 MEMBER(E(x0, S(x1)), Nil) -> c24 MEMBER(E(x0, 0), Nil) -> c24 MEMBER(E(S(x0), x1), Nil) -> c24 MEMBER(E(0, x0), Nil) -> c24 VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), Cons(z5, z6)) -> c8(VIA[LET](0, x0, Cons(E(0, x1), x2), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x1, x0), z5), E(x1, x0), Cons(z5, z6)), x1, x0, Cons(z5, z6))), REACH(x1, x0, Cons(z5, z6))) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(z5, z6)) -> c8(VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x3, x1), z5), E(x3, x1), Cons(z5, z6)), x3, x1, Cons(z5, z6))), REACH(x3, x1, Cons(z5, z6))) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), Cons(z5, z6)) -> c8(VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x1, x0), z5), E(x1, x0), Cons(z5, z6)), x1, x0, Cons(z5, z6))), REACH(x1, x0, Cons(z5, z6))) VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), x3) -> c8(REACH(x1, x0, x3)) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), x5) -> c8(REACH(x3, x1, x5)) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), x3) -> c8(REACH(x1, x0, x3)) VIA[LET](0, x0, Cons(E(0, x1), x2), Cons(x3, x4), Nil) -> c10(VIA(0, x0, x2, Cons(x3, x4))) VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(x5, x6), Nil) -> c10(VIA(S(S(x0)), x1, x4, Cons(x5, x6))) VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Cons(x3, x4), Nil) -> c10(VIA(S(0), x0, x2, Cons(x3, x4))) S tuples: EQEDGE(E(z0, z1), E(z2, z3)) -> c25(!EQ'(z0, z2)) EQEDGE(E(z0, z1), E(z2, z3)) -> c26(!EQ'(z1, z3)) VIA(0, x1, Cons(E(S(z0), x3), x4), x5) -> c21(VIA[ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) VIA(S(z0), x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) REACH(x0, x1, x2) -> c29(MEMBER(E(x0, x1), x2)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) VIA(S(x0), x1, Cons(E(S(x2), x3), x4), x5) -> c21(!EQ'(S(x0), S(x2))) MEMBER(E(x0, S(z0)), Cons(E(x2, S(z1)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), !EQ(z0, z1)), x2, S(z1), x0, S(z0)), E(x0, S(z0)), Cons(E(x2, S(z1)), x4)), EQEDGE(E(x0, S(z0)), E(x2, S(z1)))) MEMBER(E(x0, 0), Cons(E(x2, S(z0)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, S(z0), x0, 0), E(x0, 0), Cons(E(x2, S(z0)), x4)), EQEDGE(E(x0, 0), E(x2, S(z0)))) MEMBER(E(x0, S(z0)), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, 0, x0, S(z0)), E(x0, S(z0)), Cons(E(x2, 0), x4)), EQEDGE(E(x0, S(z0)), E(x2, 0))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) MEMBER(E(x0, x1), Cons(E(x2, x3), x4)) -> c23(EQEDGE(E(x0, x1), E(x2, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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))) REACH(x0, x1, Nil) -> c1(REACH[ITE](False, x0, x1, Nil)) REACH(x0, x1, Nil) -> c1(MEMBER(E(x0, x1), Nil)) VIA(0, x0, Nil, x4) -> c22 VIA(S(x0), x1, Nil, x4) -> c22 VIA(S(S(x0)), x1, Nil, x5) -> c22 VIA(S(0), x0, Nil, x4) -> c22 VIA(x0, x1, Nil, Cons(x5, x6)) -> c22 VIA(x0, x1, Nil, Nil) -> c22 VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5)) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5)) MEMBER(E(x0, x1), Nil) -> c24 MEMBER(E(x0, S(x1)), Nil) -> c24 MEMBER(E(x0, 0), Nil) -> c24 MEMBER(E(S(x0), x1), Nil) -> c24 MEMBER(E(0, x0), Nil) -> c24 K tuples:none Defined Rule Symbols: reach_3, reach[Ite]_4, member_2, member[Ite]_3, eqEdge_2, eqEdge[Ite]_5, and_2, !EQ_2, via_4, via[Ite]_5, via[Let]_5 Defined Pair Symbols: EQEDGE_2, VIA_4, REACH_3, MEMBER_2, VIA[ITE]_5, VIA[LET]_5, MEMBER[ITE]_3, REACH[ITE]_4, !EQ'_2 Compound Symbols: c25_1, c26_1, c21_1, c29_1, c21_2, c23_2, c23_1, c29_2, c9_1, c10_1, c12_1, c14_1, c1_1, c22, c8_2, c_1, c24, c8_1 ---------------------------------------- (79) CdtInstantiationProof (BOTH BOUNDS(ID, ID)) Use instantiation to replace VIA(x0, x1, Nil, Cons(x5, x6)) -> c22 by VIA(0, x0, Nil, Cons(z2, z3)) -> c22 VIA(S(x0), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(S(x0)), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(0), x0, Nil, Cons(z2, z3)) -> c22 ---------------------------------------- (80) Obligation: Complexity Dependency Tuples Problem Rules: reach(z0, z1, z2) -> reach[Ite](member(E(z0, z1), z2), z0, z1, z2) reach[Ite](False, z0, z1, z2) -> via(z0, z1, z2, z2) reach[Ite](True, z0, z1, z2) -> Cons(E(z0, z1), Nil) member(z0, Cons(z1, z2)) -> member[Ite](eqEdge(z0, z1), z0, Cons(z1, z2)) member(z0, Nil) -> False member[Ite](False, z0, Cons(z1, z2)) -> member(z0, z2) member[Ite](True, z0, z1) -> True eqEdge(E(z0, z1), E(z2, z3)) -> eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1) eqEdge[Ite](False, z0, z1, z2, z3) -> False eqEdge[Ite](True, z0, z1, z2, z3) -> True and(False, False) -> False and(True, False) -> False and(False, True) -> False and(True, True) -> True !EQ(S(z0), S(z1)) -> !EQ(z0, z1) !EQ(0, S(z0)) -> False !EQ(S(z0), 0) -> False !EQ(0, 0) -> True via(z0, z1, Cons(E(z2, z3), z4), z5) -> via[Ite](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5) via(z0, z1, Nil, z2) -> Nil via[Ite](True, z0, z1, Cons(E(z2, z3), z4), z5) -> via[Let](z0, z1, Cons(E(z2, z3), z4), z5, reach(z3, z1, z5)) via[Ite](False, z0, z1, Cons(z2, z3), z4) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Nil) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Cons(z5, z6)) -> Cons(z2, Cons(z5, z6)) Tuples: EQEDGE(E(z0, z1), E(z2, z3)) -> c25(!EQ'(z0, z2)) EQEDGE(E(z0, z1), E(z2, z3)) -> c26(!EQ'(z1, z3)) VIA(0, x1, Cons(E(S(z0), x3), x4), x5) -> c21(VIA[ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) VIA(S(z0), x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) REACH(x0, x1, x2) -> c29(MEMBER(E(x0, x1), x2)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) VIA(S(x0), x1, Cons(E(S(x2), x3), x4), x5) -> c21(!EQ'(S(x0), S(x2))) MEMBER(E(x0, S(z0)), Cons(E(x2, S(z1)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), !EQ(z0, z1)), x2, S(z1), x0, S(z0)), E(x0, S(z0)), Cons(E(x2, S(z1)), x4)), EQEDGE(E(x0, S(z0)), E(x2, S(z1)))) MEMBER(E(x0, 0), Cons(E(x2, S(z0)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, S(z0), x0, 0), E(x0, 0), Cons(E(x2, S(z0)), x4)), EQEDGE(E(x0, 0), E(x2, S(z0)))) MEMBER(E(x0, S(z0)), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, 0, x0, S(z0)), E(x0, S(z0)), Cons(E(x2, 0), x4)), EQEDGE(E(x0, S(z0)), E(x2, 0))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) MEMBER(E(x0, x1), Cons(E(x2, x3), x4)) -> c23(EQEDGE(E(x0, x1), E(x2, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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))) VIA[ITE](False, 0, x0, Cons(E(S(x1), x2), x3), x4) -> c9(VIA(0, x0, x3, x4)) VIA[ITE](False, S(x0), x1, Cons(E(0, x2), x3), x4) -> c9(VIA(S(x0), x1, x3, x4)) VIA[ITE](False, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), x5) -> c9(VIA(S(S(x0)), x1, x4, x5)) VIA[ITE](False, S(0), x0, Cons(E(S(S(x1)), x2), x3), x4) -> c9(VIA(S(0), x0, x3, x4)) VIA[ITE](False, S(S(x0)), x1, Cons(E(S(0), x2), x3), x4) -> c9(VIA(S(S(x0)), x1, x3, x4)) VIA[LET](x0, x1, Cons(E(x2, x3), x4), Nil, Nil) -> c10(VIA(x0, x1, x4, Nil)) MEMBER[ITE](False, E(x0, S(x1)), Cons(E(x2, S(x3)), x4)) -> c12(MEMBER(E(x0, S(x1)), x4)) MEMBER[ITE](False, E(x0, 0), Cons(E(x1, S(x2)), x3)) -> c12(MEMBER(E(x0, 0), x3)) MEMBER[ITE](False, E(x0, S(x1)), Cons(E(x2, 0), x3)) -> c12(MEMBER(E(x0, S(x1)), x3)) MEMBER[ITE](False, E(x0, 0), Cons(E(x1, 0), x2)) -> c12(MEMBER(E(x0, 0), x2)) MEMBER[ITE](False, E(S(x0), x1), Cons(E(S(x2), x3), x4)) -> c12(MEMBER(E(S(x0), x1), x4)) MEMBER[ITE](False, E(0, x0), Cons(E(S(x1), x2), x3)) -> c12(MEMBER(E(0, x0), x3)) MEMBER[ITE](False, E(S(x0), x1), Cons(E(0, x2), x3)) -> c12(MEMBER(E(S(x0), x1), x3)) MEMBER[ITE](False, E(0, x0), Cons(E(0, x1), x2)) -> c12(MEMBER(E(0, x0), x2)) REACH[ITE](False, x0, x1, Nil) -> c14(VIA(x0, x1, Nil, Nil)) REACH[ITE](False, x0, x1, Cons(E(x2, x3), x4)) -> c14(VIA(x0, x1, Cons(E(x2, x3), x4), Cons(E(x2, x3), x4))) REACH(x0, x1, Nil) -> c1(REACH[ITE](False, x0, x1, Nil)) REACH(x0, x1, Nil) -> c1(MEMBER(E(x0, x1), Nil)) VIA(0, x0, Nil, x4) -> c22 VIA(S(x0), x1, Nil, x4) -> c22 VIA(S(S(x0)), x1, Nil, x5) -> c22 VIA(S(0), x0, Nil, x4) -> c22 VIA(x0, x1, Nil, Nil) -> c22 VIA[ITE](True, z0, z1, Cons(E(z2, z3), z4), Nil) -> c8(VIA[LET](z0, z1, Cons(E(z2, z3), z4), Nil, Nil), REACH(z3, z1, Nil)) !EQ'(S(S(y0)), S(S(y1))) -> c(!EQ'(S(y0), S(y1))) VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5)) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5)) MEMBER(E(x0, x1), Nil) -> c24 MEMBER(E(x0, S(x1)), Nil) -> c24 MEMBER(E(x0, 0), Nil) -> c24 MEMBER(E(S(x0), x1), Nil) -> c24 MEMBER(E(0, x0), Nil) -> c24 VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), Cons(z5, z6)) -> c8(VIA[LET](0, x0, Cons(E(0, x1), x2), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x1, x0), z5), E(x1, x0), Cons(z5, z6)), x1, x0, Cons(z5, z6))), REACH(x1, x0, Cons(z5, z6))) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(z5, z6)) -> c8(VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x3, x1), z5), E(x3, x1), Cons(z5, z6)), x3, x1, Cons(z5, z6))), REACH(x3, x1, Cons(z5, z6))) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), Cons(z5, z6)) -> c8(VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x1, x0), z5), E(x1, x0), Cons(z5, z6)), x1, x0, Cons(z5, z6))), REACH(x1, x0, Cons(z5, z6))) VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), x3) -> c8(REACH(x1, x0, x3)) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), x5) -> c8(REACH(x3, x1, x5)) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), x3) -> c8(REACH(x1, x0, x3)) VIA[LET](0, x0, Cons(E(0, x1), x2), Cons(x3, x4), Nil) -> c10(VIA(0, x0, x2, Cons(x3, x4))) VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(x5, x6), Nil) -> c10(VIA(S(S(x0)), x1, x4, Cons(x5, x6))) VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Cons(x3, x4), Nil) -> c10(VIA(S(0), x0, x2, Cons(x3, x4))) VIA(0, x0, Nil, Cons(z2, z3)) -> c22 VIA(S(x0), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(S(x0)), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(0), x0, Nil, Cons(z2, z3)) -> c22 S tuples: EQEDGE(E(z0, z1), E(z2, z3)) -> c25(!EQ'(z0, z2)) EQEDGE(E(z0, z1), E(z2, z3)) -> c26(!EQ'(z1, z3)) VIA(0, x1, Cons(E(S(z0), x3), x4), x5) -> c21(VIA[ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) VIA(S(z0), x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) REACH(x0, x1, x2) -> c29(MEMBER(E(x0, x1), x2)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) VIA(S(x0), x1, Cons(E(S(x2), x3), x4), x5) -> c21(!EQ'(S(x0), S(x2))) MEMBER(E(x0, S(z0)), Cons(E(x2, S(z1)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), !EQ(z0, z1)), x2, S(z1), x0, S(z0)), E(x0, S(z0)), Cons(E(x2, S(z1)), x4)), EQEDGE(E(x0, S(z0)), E(x2, S(z1)))) MEMBER(E(x0, 0), Cons(E(x2, S(z0)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, S(z0), x0, 0), E(x0, 0), Cons(E(x2, S(z0)), x4)), EQEDGE(E(x0, 0), E(x2, S(z0)))) MEMBER(E(x0, S(z0)), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, 0, x0, S(z0)), E(x0, S(z0)), Cons(E(x2, 0), x4)), EQEDGE(E(x0, S(z0)), E(x2, 0))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) MEMBER(E(x0, x1), Cons(E(x2, x3), x4)) -> c23(EQEDGE(E(x0, x1), E(x2, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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))) REACH(x0, x1, Nil) -> c1(REACH[ITE](False, x0, x1, Nil)) REACH(x0, x1, Nil) -> c1(MEMBER(E(x0, x1), Nil)) VIA(0, x0, Nil, x4) -> c22 VIA(S(x0), x1, Nil, x4) -> c22 VIA(S(S(x0)), x1, Nil, x5) -> c22 VIA(S(0), x0, Nil, x4) -> c22 VIA(x0, x1, Nil, Nil) -> c22 VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5)) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5)) MEMBER(E(x0, x1), Nil) -> c24 MEMBER(E(x0, S(x1)), Nil) -> c24 MEMBER(E(x0, 0), Nil) -> c24 MEMBER(E(S(x0), x1), Nil) -> c24 MEMBER(E(0, x0), Nil) -> c24 VIA(0, x0, Nil, Cons(z2, z3)) -> c22 VIA(S(x0), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(S(x0)), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(0), x0, Nil, Cons(z2, z3)) -> c22 K tuples:none Defined Rule Symbols: reach_3, reach[Ite]_4, member_2, member[Ite]_3, eqEdge_2, eqEdge[Ite]_5, and_2, !EQ_2, via_4, via[Ite]_5, via[Let]_5 Defined Pair Symbols: EQEDGE_2, VIA_4, REACH_3, MEMBER_2, VIA[ITE]_5, VIA[LET]_5, MEMBER[ITE]_3, REACH[ITE]_4, !EQ'_2 Compound Symbols: c25_1, c26_1, c21_1, c29_1, c21_2, c23_2, c23_1, c29_2, c9_1, c10_1, c12_1, c14_1, c1_1, c22, c8_2, c_1, c24, c8_1 ---------------------------------------- (81) CdtInstantiationProof (BOTH BOUNDS(ID, ID)) Use instantiation to replace VIA[ITE](True, z0, z1, Cons(E(z2, z3), z4), Nil) -> c8(VIA[LET](z0, z1, Cons(E(z2, z3), z4), Nil, Nil), REACH(z3, z1, Nil)) by VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), Nil) -> c8(VIA[LET](0, x0, Cons(E(0, x1), x2), Nil, Nil), REACH(x1, x0, Nil)) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Nil) -> c8(VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Nil, Nil), REACH(x3, x1, Nil)) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), Nil) -> c8(VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Nil, Nil), REACH(x1, x0, Nil)) ---------------------------------------- (82) Obligation: Complexity Dependency Tuples Problem Rules: reach(z0, z1, z2) -> reach[Ite](member(E(z0, z1), z2), z0, z1, z2) reach[Ite](False, z0, z1, z2) -> via(z0, z1, z2, z2) reach[Ite](True, z0, z1, z2) -> Cons(E(z0, z1), Nil) member(z0, Cons(z1, z2)) -> member[Ite](eqEdge(z0, z1), z0, Cons(z1, z2)) member(z0, Nil) -> False member[Ite](False, z0, Cons(z1, z2)) -> member(z0, z2) member[Ite](True, z0, z1) -> True eqEdge(E(z0, z1), E(z2, z3)) -> eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1) eqEdge[Ite](False, z0, z1, z2, z3) -> False eqEdge[Ite](True, z0, z1, z2, z3) -> True and(False, False) -> False and(True, False) -> False and(False, True) -> False and(True, True) -> True !EQ(S(z0), S(z1)) -> !EQ(z0, z1) !EQ(0, S(z0)) -> False !EQ(S(z0), 0) -> False !EQ(0, 0) -> True via(z0, z1, Cons(E(z2, z3), z4), z5) -> via[Ite](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5) via(z0, z1, Nil, z2) -> Nil via[Ite](True, z0, z1, Cons(E(z2, z3), z4), z5) -> via[Let](z0, z1, Cons(E(z2, z3), z4), z5, reach(z3, z1, z5)) via[Ite](False, z0, z1, Cons(z2, z3), z4) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Nil) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Cons(z5, z6)) -> Cons(z2, Cons(z5, z6)) Tuples: EQEDGE(E(z0, z1), E(z2, z3)) -> c25(!EQ'(z0, z2)) EQEDGE(E(z0, z1), E(z2, z3)) -> c26(!EQ'(z1, z3)) VIA(0, x1, Cons(E(S(z0), x3), x4), x5) -> c21(VIA[ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) VIA(S(z0), x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) REACH(x0, x1, x2) -> c29(MEMBER(E(x0, x1), x2)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) VIA(S(x0), x1, Cons(E(S(x2), x3), x4), x5) -> c21(!EQ'(S(x0), S(x2))) MEMBER(E(x0, S(z0)), Cons(E(x2, S(z1)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), !EQ(z0, z1)), x2, S(z1), x0, S(z0)), E(x0, S(z0)), Cons(E(x2, S(z1)), x4)), EQEDGE(E(x0, S(z0)), E(x2, S(z1)))) MEMBER(E(x0, 0), Cons(E(x2, S(z0)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, S(z0), x0, 0), E(x0, 0), Cons(E(x2, S(z0)), x4)), EQEDGE(E(x0, 0), E(x2, S(z0)))) MEMBER(E(x0, S(z0)), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, 0, x0, S(z0)), E(x0, S(z0)), Cons(E(x2, 0), x4)), EQEDGE(E(x0, S(z0)), E(x2, 0))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) MEMBER(E(x0, x1), Cons(E(x2, x3), x4)) -> c23(EQEDGE(E(x0, x1), E(x2, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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))) VIA[ITE](False, 0, x0, Cons(E(S(x1), x2), x3), x4) -> c9(VIA(0, x0, x3, x4)) VIA[ITE](False, S(x0), x1, Cons(E(0, x2), x3), x4) -> c9(VIA(S(x0), x1, x3, x4)) VIA[ITE](False, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), x5) -> c9(VIA(S(S(x0)), x1, x4, x5)) VIA[ITE](False, S(0), x0, Cons(E(S(S(x1)), x2), x3), x4) -> c9(VIA(S(0), x0, x3, x4)) VIA[ITE](False, S(S(x0)), x1, Cons(E(S(0), x2), x3), x4) -> c9(VIA(S(S(x0)), x1, x3, x4)) VIA[LET](x0, x1, Cons(E(x2, x3), x4), Nil, Nil) -> c10(VIA(x0, x1, x4, Nil)) MEMBER[ITE](False, E(x0, S(x1)), Cons(E(x2, S(x3)), x4)) -> c12(MEMBER(E(x0, S(x1)), x4)) MEMBER[ITE](False, E(x0, 0), Cons(E(x1, S(x2)), x3)) -> c12(MEMBER(E(x0, 0), x3)) MEMBER[ITE](False, E(x0, S(x1)), Cons(E(x2, 0), x3)) -> c12(MEMBER(E(x0, S(x1)), x3)) MEMBER[ITE](False, E(x0, 0), Cons(E(x1, 0), x2)) -> c12(MEMBER(E(x0, 0), x2)) MEMBER[ITE](False, E(S(x0), x1), Cons(E(S(x2), x3), x4)) -> c12(MEMBER(E(S(x0), x1), x4)) MEMBER[ITE](False, E(0, x0), Cons(E(S(x1), x2), x3)) -> c12(MEMBER(E(0, x0), x3)) MEMBER[ITE](False, E(S(x0), x1), Cons(E(0, x2), x3)) -> c12(MEMBER(E(S(x0), x1), x3)) MEMBER[ITE](False, E(0, x0), Cons(E(0, x1), x2)) -> c12(MEMBER(E(0, x0), x2)) REACH[ITE](False, x0, x1, Nil) -> c14(VIA(x0, x1, Nil, Nil)) REACH[ITE](False, x0, x1, Cons(E(x2, x3), x4)) -> c14(VIA(x0, x1, Cons(E(x2, x3), x4), Cons(E(x2, x3), x4))) REACH(x0, x1, Nil) -> c1(REACH[ITE](False, x0, x1, Nil)) REACH(x0, x1, Nil) -> c1(MEMBER(E(x0, x1), Nil)) VIA(0, x0, Nil, x4) -> c22 VIA(S(x0), x1, Nil, x4) -> c22 VIA(S(S(x0)), x1, Nil, x5) -> c22 VIA(S(0), x0, Nil, x4) -> c22 VIA(x0, x1, Nil, Nil) -> c22 !EQ'(S(S(y0)), S(S(y1))) -> c(!EQ'(S(y0), S(y1))) VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5)) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5)) MEMBER(E(x0, x1), Nil) -> c24 MEMBER(E(x0, S(x1)), Nil) -> c24 MEMBER(E(x0, 0), Nil) -> c24 MEMBER(E(S(x0), x1), Nil) -> c24 MEMBER(E(0, x0), Nil) -> c24 VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), Cons(z5, z6)) -> c8(VIA[LET](0, x0, Cons(E(0, x1), x2), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x1, x0), z5), E(x1, x0), Cons(z5, z6)), x1, x0, Cons(z5, z6))), REACH(x1, x0, Cons(z5, z6))) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(z5, z6)) -> c8(VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x3, x1), z5), E(x3, x1), Cons(z5, z6)), x3, x1, Cons(z5, z6))), REACH(x3, x1, Cons(z5, z6))) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), Cons(z5, z6)) -> c8(VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x1, x0), z5), E(x1, x0), Cons(z5, z6)), x1, x0, Cons(z5, z6))), REACH(x1, x0, Cons(z5, z6))) VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), x3) -> c8(REACH(x1, x0, x3)) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), x5) -> c8(REACH(x3, x1, x5)) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), x3) -> c8(REACH(x1, x0, x3)) VIA[LET](0, x0, Cons(E(0, x1), x2), Cons(x3, x4), Nil) -> c10(VIA(0, x0, x2, Cons(x3, x4))) VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(x5, x6), Nil) -> c10(VIA(S(S(x0)), x1, x4, Cons(x5, x6))) VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Cons(x3, x4), Nil) -> c10(VIA(S(0), x0, x2, Cons(x3, x4))) VIA(0, x0, Nil, Cons(z2, z3)) -> c22 VIA(S(x0), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(S(x0)), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(0), x0, Nil, Cons(z2, z3)) -> c22 VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), Nil) -> c8(VIA[LET](0, x0, Cons(E(0, x1), x2), Nil, Nil), REACH(x1, x0, Nil)) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Nil) -> c8(VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Nil, Nil), REACH(x3, x1, Nil)) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), Nil) -> c8(VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Nil, Nil), REACH(x1, x0, Nil)) S tuples: EQEDGE(E(z0, z1), E(z2, z3)) -> c25(!EQ'(z0, z2)) EQEDGE(E(z0, z1), E(z2, z3)) -> c26(!EQ'(z1, z3)) VIA(0, x1, Cons(E(S(z0), x3), x4), x5) -> c21(VIA[ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) VIA(S(z0), x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) REACH(x0, x1, x2) -> c29(MEMBER(E(x0, x1), x2)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) VIA(S(x0), x1, Cons(E(S(x2), x3), x4), x5) -> c21(!EQ'(S(x0), S(x2))) MEMBER(E(x0, S(z0)), Cons(E(x2, S(z1)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), !EQ(z0, z1)), x2, S(z1), x0, S(z0)), E(x0, S(z0)), Cons(E(x2, S(z1)), x4)), EQEDGE(E(x0, S(z0)), E(x2, S(z1)))) MEMBER(E(x0, 0), Cons(E(x2, S(z0)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, S(z0), x0, 0), E(x0, 0), Cons(E(x2, S(z0)), x4)), EQEDGE(E(x0, 0), E(x2, S(z0)))) MEMBER(E(x0, S(z0)), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, 0, x0, S(z0)), E(x0, S(z0)), Cons(E(x2, 0), x4)), EQEDGE(E(x0, S(z0)), E(x2, 0))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) MEMBER(E(x0, x1), Cons(E(x2, x3), x4)) -> c23(EQEDGE(E(x0, x1), E(x2, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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))) REACH(x0, x1, Nil) -> c1(REACH[ITE](False, x0, x1, Nil)) REACH(x0, x1, Nil) -> c1(MEMBER(E(x0, x1), Nil)) VIA(0, x0, Nil, x4) -> c22 VIA(S(x0), x1, Nil, x4) -> c22 VIA(S(S(x0)), x1, Nil, x5) -> c22 VIA(S(0), x0, Nil, x4) -> c22 VIA(x0, x1, Nil, Nil) -> c22 VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5)) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5)) MEMBER(E(x0, x1), Nil) -> c24 MEMBER(E(x0, S(x1)), Nil) -> c24 MEMBER(E(x0, 0), Nil) -> c24 MEMBER(E(S(x0), x1), Nil) -> c24 MEMBER(E(0, x0), Nil) -> c24 VIA(0, x0, Nil, Cons(z2, z3)) -> c22 VIA(S(x0), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(S(x0)), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(0), x0, Nil, Cons(z2, z3)) -> c22 K tuples:none Defined Rule Symbols: reach_3, reach[Ite]_4, member_2, member[Ite]_3, eqEdge_2, eqEdge[Ite]_5, and_2, !EQ_2, via_4, via[Ite]_5, via[Let]_5 Defined Pair Symbols: EQEDGE_2, VIA_4, REACH_3, MEMBER_2, VIA[ITE]_5, VIA[LET]_5, MEMBER[ITE]_3, REACH[ITE]_4, !EQ'_2 Compound Symbols: c25_1, c26_1, c21_1, c29_1, c21_2, c23_2, c23_1, c29_2, c9_1, c10_1, c12_1, c14_1, c1_1, c22, c_1, c24, c8_2, c8_1 ---------------------------------------- (83) CdtForwardInstantiationProof (BOTH BOUNDS(ID, ID)) Use forward instantiation to replace EQEDGE(E(z0, z1), E(z2, z3)) -> c25(!EQ'(z0, z2)) by EQEDGE(E(S(S(y0)), z1), E(S(S(y1)), z3)) -> c25(!EQ'(S(S(y0)), S(S(y1)))) ---------------------------------------- (84) Obligation: Complexity Dependency Tuples Problem Rules: reach(z0, z1, z2) -> reach[Ite](member(E(z0, z1), z2), z0, z1, z2) reach[Ite](False, z0, z1, z2) -> via(z0, z1, z2, z2) reach[Ite](True, z0, z1, z2) -> Cons(E(z0, z1), Nil) member(z0, Cons(z1, z2)) -> member[Ite](eqEdge(z0, z1), z0, Cons(z1, z2)) member(z0, Nil) -> False member[Ite](False, z0, Cons(z1, z2)) -> member(z0, z2) member[Ite](True, z0, z1) -> True eqEdge(E(z0, z1), E(z2, z3)) -> eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1) eqEdge[Ite](False, z0, z1, z2, z3) -> False eqEdge[Ite](True, z0, z1, z2, z3) -> True and(False, False) -> False and(True, False) -> False and(False, True) -> False and(True, True) -> True !EQ(S(z0), S(z1)) -> !EQ(z0, z1) !EQ(0, S(z0)) -> False !EQ(S(z0), 0) -> False !EQ(0, 0) -> True via(z0, z1, Cons(E(z2, z3), z4), z5) -> via[Ite](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5) via(z0, z1, Nil, z2) -> Nil via[Ite](True, z0, z1, Cons(E(z2, z3), z4), z5) -> via[Let](z0, z1, Cons(E(z2, z3), z4), z5, reach(z3, z1, z5)) via[Ite](False, z0, z1, Cons(z2, z3), z4) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Nil) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Cons(z5, z6)) -> Cons(z2, Cons(z5, z6)) Tuples: EQEDGE(E(z0, z1), E(z2, z3)) -> c26(!EQ'(z1, z3)) VIA(0, x1, Cons(E(S(z0), x3), x4), x5) -> c21(VIA[ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) VIA(S(z0), x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) REACH(x0, x1, x2) -> c29(MEMBER(E(x0, x1), x2)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) VIA(S(x0), x1, Cons(E(S(x2), x3), x4), x5) -> c21(!EQ'(S(x0), S(x2))) MEMBER(E(x0, S(z0)), Cons(E(x2, S(z1)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), !EQ(z0, z1)), x2, S(z1), x0, S(z0)), E(x0, S(z0)), Cons(E(x2, S(z1)), x4)), EQEDGE(E(x0, S(z0)), E(x2, S(z1)))) MEMBER(E(x0, 0), Cons(E(x2, S(z0)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, S(z0), x0, 0), E(x0, 0), Cons(E(x2, S(z0)), x4)), EQEDGE(E(x0, 0), E(x2, S(z0)))) MEMBER(E(x0, S(z0)), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, 0, x0, S(z0)), E(x0, S(z0)), Cons(E(x2, 0), x4)), EQEDGE(E(x0, S(z0)), E(x2, 0))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) MEMBER(E(x0, x1), Cons(E(x2, x3), x4)) -> c23(EQEDGE(E(x0, x1), E(x2, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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))) VIA[ITE](False, 0, x0, Cons(E(S(x1), x2), x3), x4) -> c9(VIA(0, x0, x3, x4)) VIA[ITE](False, S(x0), x1, Cons(E(0, x2), x3), x4) -> c9(VIA(S(x0), x1, x3, x4)) VIA[ITE](False, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), x5) -> c9(VIA(S(S(x0)), x1, x4, x5)) VIA[ITE](False, S(0), x0, Cons(E(S(S(x1)), x2), x3), x4) -> c9(VIA(S(0), x0, x3, x4)) VIA[ITE](False, S(S(x0)), x1, Cons(E(S(0), x2), x3), x4) -> c9(VIA(S(S(x0)), x1, x3, x4)) VIA[LET](x0, x1, Cons(E(x2, x3), x4), Nil, Nil) -> c10(VIA(x0, x1, x4, Nil)) MEMBER[ITE](False, E(x0, S(x1)), Cons(E(x2, S(x3)), x4)) -> c12(MEMBER(E(x0, S(x1)), x4)) MEMBER[ITE](False, E(x0, 0), Cons(E(x1, S(x2)), x3)) -> c12(MEMBER(E(x0, 0), x3)) MEMBER[ITE](False, E(x0, S(x1)), Cons(E(x2, 0), x3)) -> c12(MEMBER(E(x0, S(x1)), x3)) MEMBER[ITE](False, E(x0, 0), Cons(E(x1, 0), x2)) -> c12(MEMBER(E(x0, 0), x2)) MEMBER[ITE](False, E(S(x0), x1), Cons(E(S(x2), x3), x4)) -> c12(MEMBER(E(S(x0), x1), x4)) MEMBER[ITE](False, E(0, x0), Cons(E(S(x1), x2), x3)) -> c12(MEMBER(E(0, x0), x3)) MEMBER[ITE](False, E(S(x0), x1), Cons(E(0, x2), x3)) -> c12(MEMBER(E(S(x0), x1), x3)) MEMBER[ITE](False, E(0, x0), Cons(E(0, x1), x2)) -> c12(MEMBER(E(0, x0), x2)) REACH[ITE](False, x0, x1, Nil) -> c14(VIA(x0, x1, Nil, Nil)) REACH[ITE](False, x0, x1, Cons(E(x2, x3), x4)) -> c14(VIA(x0, x1, Cons(E(x2, x3), x4), Cons(E(x2, x3), x4))) REACH(x0, x1, Nil) -> c1(REACH[ITE](False, x0, x1, Nil)) REACH(x0, x1, Nil) -> c1(MEMBER(E(x0, x1), Nil)) VIA(0, x0, Nil, x4) -> c22 VIA(S(x0), x1, Nil, x4) -> c22 VIA(S(S(x0)), x1, Nil, x5) -> c22 VIA(S(0), x0, Nil, x4) -> c22 VIA(x0, x1, Nil, Nil) -> c22 !EQ'(S(S(y0)), S(S(y1))) -> c(!EQ'(S(y0), S(y1))) VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5)) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5)) MEMBER(E(x0, x1), Nil) -> c24 MEMBER(E(x0, S(x1)), Nil) -> c24 MEMBER(E(x0, 0), Nil) -> c24 MEMBER(E(S(x0), x1), Nil) -> c24 MEMBER(E(0, x0), Nil) -> c24 VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), Cons(z5, z6)) -> c8(VIA[LET](0, x0, Cons(E(0, x1), x2), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x1, x0), z5), E(x1, x0), Cons(z5, z6)), x1, x0, Cons(z5, z6))), REACH(x1, x0, Cons(z5, z6))) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(z5, z6)) -> c8(VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x3, x1), z5), E(x3, x1), Cons(z5, z6)), x3, x1, Cons(z5, z6))), REACH(x3, x1, Cons(z5, z6))) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), Cons(z5, z6)) -> c8(VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x1, x0), z5), E(x1, x0), Cons(z5, z6)), x1, x0, Cons(z5, z6))), REACH(x1, x0, Cons(z5, z6))) VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), x3) -> c8(REACH(x1, x0, x3)) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), x5) -> c8(REACH(x3, x1, x5)) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), x3) -> c8(REACH(x1, x0, x3)) VIA[LET](0, x0, Cons(E(0, x1), x2), Cons(x3, x4), Nil) -> c10(VIA(0, x0, x2, Cons(x3, x4))) VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(x5, x6), Nil) -> c10(VIA(S(S(x0)), x1, x4, Cons(x5, x6))) VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Cons(x3, x4), Nil) -> c10(VIA(S(0), x0, x2, Cons(x3, x4))) VIA(0, x0, Nil, Cons(z2, z3)) -> c22 VIA(S(x0), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(S(x0)), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(0), x0, Nil, Cons(z2, z3)) -> c22 VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), Nil) -> c8(VIA[LET](0, x0, Cons(E(0, x1), x2), Nil, Nil), REACH(x1, x0, Nil)) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Nil) -> c8(VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Nil, Nil), REACH(x3, x1, Nil)) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), Nil) -> c8(VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Nil, Nil), REACH(x1, x0, Nil)) EQEDGE(E(S(S(y0)), z1), E(S(S(y1)), z3)) -> c25(!EQ'(S(S(y0)), S(S(y1)))) S tuples: EQEDGE(E(z0, z1), E(z2, z3)) -> c26(!EQ'(z1, z3)) VIA(0, x1, Cons(E(S(z0), x3), x4), x5) -> c21(VIA[ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) VIA(S(z0), x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) REACH(x0, x1, x2) -> c29(MEMBER(E(x0, x1), x2)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) VIA(S(x0), x1, Cons(E(S(x2), x3), x4), x5) -> c21(!EQ'(S(x0), S(x2))) MEMBER(E(x0, S(z0)), Cons(E(x2, S(z1)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), !EQ(z0, z1)), x2, S(z1), x0, S(z0)), E(x0, S(z0)), Cons(E(x2, S(z1)), x4)), EQEDGE(E(x0, S(z0)), E(x2, S(z1)))) MEMBER(E(x0, 0), Cons(E(x2, S(z0)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, S(z0), x0, 0), E(x0, 0), Cons(E(x2, S(z0)), x4)), EQEDGE(E(x0, 0), E(x2, S(z0)))) MEMBER(E(x0, S(z0)), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, 0, x0, S(z0)), E(x0, S(z0)), Cons(E(x2, 0), x4)), EQEDGE(E(x0, S(z0)), E(x2, 0))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) MEMBER(E(x0, x1), Cons(E(x2, x3), x4)) -> c23(EQEDGE(E(x0, x1), E(x2, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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))) REACH(x0, x1, Nil) -> c1(REACH[ITE](False, x0, x1, Nil)) REACH(x0, x1, Nil) -> c1(MEMBER(E(x0, x1), Nil)) VIA(0, x0, Nil, x4) -> c22 VIA(S(x0), x1, Nil, x4) -> c22 VIA(S(S(x0)), x1, Nil, x5) -> c22 VIA(S(0), x0, Nil, x4) -> c22 VIA(x0, x1, Nil, Nil) -> c22 VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5)) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5)) MEMBER(E(x0, x1), Nil) -> c24 MEMBER(E(x0, S(x1)), Nil) -> c24 MEMBER(E(x0, 0), Nil) -> c24 MEMBER(E(S(x0), x1), Nil) -> c24 MEMBER(E(0, x0), Nil) -> c24 VIA(0, x0, Nil, Cons(z2, z3)) -> c22 VIA(S(x0), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(S(x0)), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(0), x0, Nil, Cons(z2, z3)) -> c22 EQEDGE(E(S(S(y0)), z1), E(S(S(y1)), z3)) -> c25(!EQ'(S(S(y0)), S(S(y1)))) K tuples:none Defined Rule Symbols: reach_3, reach[Ite]_4, member_2, member[Ite]_3, eqEdge_2, eqEdge[Ite]_5, and_2, !EQ_2, via_4, via[Ite]_5, via[Let]_5 Defined Pair Symbols: EQEDGE_2, VIA_4, REACH_3, MEMBER_2, VIA[ITE]_5, VIA[LET]_5, MEMBER[ITE]_3, REACH[ITE]_4, !EQ'_2 Compound Symbols: c26_1, c21_1, c29_1, c21_2, c23_2, c23_1, c29_2, c9_1, c10_1, c12_1, c14_1, c1_1, c22, c_1, c24, c8_2, c8_1, c25_1 ---------------------------------------- (85) CdtForwardInstantiationProof (BOTH BOUNDS(ID, ID)) Use forward instantiation to replace EQEDGE(E(z0, z1), E(z2, z3)) -> c26(!EQ'(z1, z3)) by EQEDGE(E(z0, S(S(y0))), E(z2, S(S(y1)))) -> c26(!EQ'(S(S(y0)), S(S(y1)))) ---------------------------------------- (86) Obligation: Complexity Dependency Tuples Problem Rules: reach(z0, z1, z2) -> reach[Ite](member(E(z0, z1), z2), z0, z1, z2) reach[Ite](False, z0, z1, z2) -> via(z0, z1, z2, z2) reach[Ite](True, z0, z1, z2) -> Cons(E(z0, z1), Nil) member(z0, Cons(z1, z2)) -> member[Ite](eqEdge(z0, z1), z0, Cons(z1, z2)) member(z0, Nil) -> False member[Ite](False, z0, Cons(z1, z2)) -> member(z0, z2) member[Ite](True, z0, z1) -> True eqEdge(E(z0, z1), E(z2, z3)) -> eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1) eqEdge[Ite](False, z0, z1, z2, z3) -> False eqEdge[Ite](True, z0, z1, z2, z3) -> True and(False, False) -> False and(True, False) -> False and(False, True) -> False and(True, True) -> True !EQ(S(z0), S(z1)) -> !EQ(z0, z1) !EQ(0, S(z0)) -> False !EQ(S(z0), 0) -> False !EQ(0, 0) -> True via(z0, z1, Cons(E(z2, z3), z4), z5) -> via[Ite](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5) via(z0, z1, Nil, z2) -> Nil via[Ite](True, z0, z1, Cons(E(z2, z3), z4), z5) -> via[Let](z0, z1, Cons(E(z2, z3), z4), z5, reach(z3, z1, z5)) via[Ite](False, z0, z1, Cons(z2, z3), z4) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Nil) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Cons(z5, z6)) -> Cons(z2, Cons(z5, z6)) Tuples: VIA(0, x1, Cons(E(S(z0), x3), x4), x5) -> c21(VIA[ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) VIA(S(z0), x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) REACH(x0, x1, x2) -> c29(MEMBER(E(x0, x1), x2)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) VIA(S(x0), x1, Cons(E(S(x2), x3), x4), x5) -> c21(!EQ'(S(x0), S(x2))) MEMBER(E(x0, S(z0)), Cons(E(x2, S(z1)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), !EQ(z0, z1)), x2, S(z1), x0, S(z0)), E(x0, S(z0)), Cons(E(x2, S(z1)), x4)), EQEDGE(E(x0, S(z0)), E(x2, S(z1)))) MEMBER(E(x0, 0), Cons(E(x2, S(z0)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, S(z0), x0, 0), E(x0, 0), Cons(E(x2, S(z0)), x4)), EQEDGE(E(x0, 0), E(x2, S(z0)))) MEMBER(E(x0, S(z0)), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, 0, x0, S(z0)), E(x0, S(z0)), Cons(E(x2, 0), x4)), EQEDGE(E(x0, S(z0)), E(x2, 0))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) MEMBER(E(x0, x1), Cons(E(x2, x3), x4)) -> c23(EQEDGE(E(x0, x1), E(x2, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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))) VIA[ITE](False, 0, x0, Cons(E(S(x1), x2), x3), x4) -> c9(VIA(0, x0, x3, x4)) VIA[ITE](False, S(x0), x1, Cons(E(0, x2), x3), x4) -> c9(VIA(S(x0), x1, x3, x4)) VIA[ITE](False, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), x5) -> c9(VIA(S(S(x0)), x1, x4, x5)) VIA[ITE](False, S(0), x0, Cons(E(S(S(x1)), x2), x3), x4) -> c9(VIA(S(0), x0, x3, x4)) VIA[ITE](False, S(S(x0)), x1, Cons(E(S(0), x2), x3), x4) -> c9(VIA(S(S(x0)), x1, x3, x4)) VIA[LET](x0, x1, Cons(E(x2, x3), x4), Nil, Nil) -> c10(VIA(x0, x1, x4, Nil)) MEMBER[ITE](False, E(x0, S(x1)), Cons(E(x2, S(x3)), x4)) -> c12(MEMBER(E(x0, S(x1)), x4)) MEMBER[ITE](False, E(x0, 0), Cons(E(x1, S(x2)), x3)) -> c12(MEMBER(E(x0, 0), x3)) MEMBER[ITE](False, E(x0, S(x1)), Cons(E(x2, 0), x3)) -> c12(MEMBER(E(x0, S(x1)), x3)) MEMBER[ITE](False, E(x0, 0), Cons(E(x1, 0), x2)) -> c12(MEMBER(E(x0, 0), x2)) MEMBER[ITE](False, E(S(x0), x1), Cons(E(S(x2), x3), x4)) -> c12(MEMBER(E(S(x0), x1), x4)) MEMBER[ITE](False, E(0, x0), Cons(E(S(x1), x2), x3)) -> c12(MEMBER(E(0, x0), x3)) MEMBER[ITE](False, E(S(x0), x1), Cons(E(0, x2), x3)) -> c12(MEMBER(E(S(x0), x1), x3)) MEMBER[ITE](False, E(0, x0), Cons(E(0, x1), x2)) -> c12(MEMBER(E(0, x0), x2)) REACH[ITE](False, x0, x1, Nil) -> c14(VIA(x0, x1, Nil, Nil)) REACH[ITE](False, x0, x1, Cons(E(x2, x3), x4)) -> c14(VIA(x0, x1, Cons(E(x2, x3), x4), Cons(E(x2, x3), x4))) REACH(x0, x1, Nil) -> c1(REACH[ITE](False, x0, x1, Nil)) REACH(x0, x1, Nil) -> c1(MEMBER(E(x0, x1), Nil)) VIA(0, x0, Nil, x4) -> c22 VIA(S(x0), x1, Nil, x4) -> c22 VIA(S(S(x0)), x1, Nil, x5) -> c22 VIA(S(0), x0, Nil, x4) -> c22 VIA(x0, x1, Nil, Nil) -> c22 !EQ'(S(S(y0)), S(S(y1))) -> c(!EQ'(S(y0), S(y1))) VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5)) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5)) MEMBER(E(x0, x1), Nil) -> c24 MEMBER(E(x0, S(x1)), Nil) -> c24 MEMBER(E(x0, 0), Nil) -> c24 MEMBER(E(S(x0), x1), Nil) -> c24 MEMBER(E(0, x0), Nil) -> c24 VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), Cons(z5, z6)) -> c8(VIA[LET](0, x0, Cons(E(0, x1), x2), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x1, x0), z5), E(x1, x0), Cons(z5, z6)), x1, x0, Cons(z5, z6))), REACH(x1, x0, Cons(z5, z6))) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(z5, z6)) -> c8(VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x3, x1), z5), E(x3, x1), Cons(z5, z6)), x3, x1, Cons(z5, z6))), REACH(x3, x1, Cons(z5, z6))) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), Cons(z5, z6)) -> c8(VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x1, x0), z5), E(x1, x0), Cons(z5, z6)), x1, x0, Cons(z5, z6))), REACH(x1, x0, Cons(z5, z6))) VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), x3) -> c8(REACH(x1, x0, x3)) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), x5) -> c8(REACH(x3, x1, x5)) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), x3) -> c8(REACH(x1, x0, x3)) VIA[LET](0, x0, Cons(E(0, x1), x2), Cons(x3, x4), Nil) -> c10(VIA(0, x0, x2, Cons(x3, x4))) VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(x5, x6), Nil) -> c10(VIA(S(S(x0)), x1, x4, Cons(x5, x6))) VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Cons(x3, x4), Nil) -> c10(VIA(S(0), x0, x2, Cons(x3, x4))) VIA(0, x0, Nil, Cons(z2, z3)) -> c22 VIA(S(x0), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(S(x0)), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(0), x0, Nil, Cons(z2, z3)) -> c22 VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), Nil) -> c8(VIA[LET](0, x0, Cons(E(0, x1), x2), Nil, Nil), REACH(x1, x0, Nil)) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Nil) -> c8(VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Nil, Nil), REACH(x3, x1, Nil)) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), Nil) -> c8(VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Nil, Nil), REACH(x1, x0, Nil)) EQEDGE(E(S(S(y0)), z1), E(S(S(y1)), z3)) -> c25(!EQ'(S(S(y0)), S(S(y1)))) EQEDGE(E(z0, S(S(y0))), E(z2, S(S(y1)))) -> c26(!EQ'(S(S(y0)), S(S(y1)))) S tuples: VIA(0, x1, Cons(E(S(z0), x3), x4), x5) -> c21(VIA[ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) VIA(S(z0), x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) REACH(x0, x1, x2) -> c29(MEMBER(E(x0, x1), x2)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) VIA(S(x0), x1, Cons(E(S(x2), x3), x4), x5) -> c21(!EQ'(S(x0), S(x2))) MEMBER(E(x0, S(z0)), Cons(E(x2, S(z1)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), !EQ(z0, z1)), x2, S(z1), x0, S(z0)), E(x0, S(z0)), Cons(E(x2, S(z1)), x4)), EQEDGE(E(x0, S(z0)), E(x2, S(z1)))) MEMBER(E(x0, 0), Cons(E(x2, S(z0)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, S(z0), x0, 0), E(x0, 0), Cons(E(x2, S(z0)), x4)), EQEDGE(E(x0, 0), E(x2, S(z0)))) MEMBER(E(x0, S(z0)), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, 0, x0, S(z0)), E(x0, S(z0)), Cons(E(x2, 0), x4)), EQEDGE(E(x0, S(z0)), E(x2, 0))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) MEMBER(E(x0, x1), Cons(E(x2, x3), x4)) -> c23(EQEDGE(E(x0, x1), E(x2, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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))) REACH(x0, x1, Nil) -> c1(REACH[ITE](False, x0, x1, Nil)) REACH(x0, x1, Nil) -> c1(MEMBER(E(x0, x1), Nil)) VIA(0, x0, Nil, x4) -> c22 VIA(S(x0), x1, Nil, x4) -> c22 VIA(S(S(x0)), x1, Nil, x5) -> c22 VIA(S(0), x0, Nil, x4) -> c22 VIA(x0, x1, Nil, Nil) -> c22 VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5)) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5)) MEMBER(E(x0, x1), Nil) -> c24 MEMBER(E(x0, S(x1)), Nil) -> c24 MEMBER(E(x0, 0), Nil) -> c24 MEMBER(E(S(x0), x1), Nil) -> c24 MEMBER(E(0, x0), Nil) -> c24 VIA(0, x0, Nil, Cons(z2, z3)) -> c22 VIA(S(x0), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(S(x0)), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(0), x0, Nil, Cons(z2, z3)) -> c22 EQEDGE(E(S(S(y0)), z1), E(S(S(y1)), z3)) -> c25(!EQ'(S(S(y0)), S(S(y1)))) EQEDGE(E(z0, S(S(y0))), E(z2, S(S(y1)))) -> c26(!EQ'(S(S(y0)), S(S(y1)))) K tuples:none Defined Rule Symbols: reach_3, reach[Ite]_4, member_2, member[Ite]_3, eqEdge_2, eqEdge[Ite]_5, and_2, !EQ_2, via_4, via[Ite]_5, via[Let]_5 Defined Pair Symbols: VIA_4, REACH_3, MEMBER_2, VIA[ITE]_5, VIA[LET]_5, MEMBER[ITE]_3, REACH[ITE]_4, !EQ'_2, EQEDGE_2 Compound Symbols: c21_1, c29_1, c21_2, c23_2, c23_1, c29_2, c9_1, c10_1, c12_1, c14_1, c1_1, c22, c_1, c24, c8_2, c8_1, c25_1, c26_1 ---------------------------------------- (87) CdtInstantiationProof (BOTH BOUNDS(ID, ID)) Use instantiation to replace VIA[LET](x0, x1, Cons(E(x2, x3), x4), Nil, Nil) -> c10(VIA(x0, x1, x4, Nil)) by VIA[LET](0, x0, Cons(E(0, x1), x2), Nil, Nil) -> c10(VIA(0, x0, x2, Nil)) VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Nil, Nil) -> c10(VIA(S(S(x0)), x1, x4, Nil)) VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Nil, Nil) -> c10(VIA(S(0), x0, x2, Nil)) ---------------------------------------- (88) Obligation: Complexity Dependency Tuples Problem Rules: reach(z0, z1, z2) -> reach[Ite](member(E(z0, z1), z2), z0, z1, z2) reach[Ite](False, z0, z1, z2) -> via(z0, z1, z2, z2) reach[Ite](True, z0, z1, z2) -> Cons(E(z0, z1), Nil) member(z0, Cons(z1, z2)) -> member[Ite](eqEdge(z0, z1), z0, Cons(z1, z2)) member(z0, Nil) -> False member[Ite](False, z0, Cons(z1, z2)) -> member(z0, z2) member[Ite](True, z0, z1) -> True eqEdge(E(z0, z1), E(z2, z3)) -> eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1) eqEdge[Ite](False, z0, z1, z2, z3) -> False eqEdge[Ite](True, z0, z1, z2, z3) -> True and(False, False) -> False and(True, False) -> False and(False, True) -> False and(True, True) -> True !EQ(S(z0), S(z1)) -> !EQ(z0, z1) !EQ(0, S(z0)) -> False !EQ(S(z0), 0) -> False !EQ(0, 0) -> True via(z0, z1, Cons(E(z2, z3), z4), z5) -> via[Ite](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5) via(z0, z1, Nil, z2) -> Nil via[Ite](True, z0, z1, Cons(E(z2, z3), z4), z5) -> via[Let](z0, z1, Cons(E(z2, z3), z4), z5, reach(z3, z1, z5)) via[Ite](False, z0, z1, Cons(z2, z3), z4) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Nil) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Cons(z5, z6)) -> Cons(z2, Cons(z5, z6)) Tuples: VIA(0, x1, Cons(E(S(z0), x3), x4), x5) -> c21(VIA[ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) VIA(S(z0), x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) REACH(x0, x1, x2) -> c29(MEMBER(E(x0, x1), x2)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) VIA(S(x0), x1, Cons(E(S(x2), x3), x4), x5) -> c21(!EQ'(S(x0), S(x2))) MEMBER(E(x0, S(z0)), Cons(E(x2, S(z1)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), !EQ(z0, z1)), x2, S(z1), x0, S(z0)), E(x0, S(z0)), Cons(E(x2, S(z1)), x4)), EQEDGE(E(x0, S(z0)), E(x2, S(z1)))) MEMBER(E(x0, 0), Cons(E(x2, S(z0)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, S(z0), x0, 0), E(x0, 0), Cons(E(x2, S(z0)), x4)), EQEDGE(E(x0, 0), E(x2, S(z0)))) MEMBER(E(x0, S(z0)), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, 0, x0, S(z0)), E(x0, S(z0)), Cons(E(x2, 0), x4)), EQEDGE(E(x0, S(z0)), E(x2, 0))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) MEMBER(E(x0, x1), Cons(E(x2, x3), x4)) -> c23(EQEDGE(E(x0, x1), E(x2, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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))) VIA[ITE](False, 0, x0, Cons(E(S(x1), x2), x3), x4) -> c9(VIA(0, x0, x3, x4)) VIA[ITE](False, S(x0), x1, Cons(E(0, x2), x3), x4) -> c9(VIA(S(x0), x1, x3, x4)) VIA[ITE](False, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), x5) -> c9(VIA(S(S(x0)), x1, x4, x5)) VIA[ITE](False, S(0), x0, Cons(E(S(S(x1)), x2), x3), x4) -> c9(VIA(S(0), x0, x3, x4)) VIA[ITE](False, S(S(x0)), x1, Cons(E(S(0), x2), x3), x4) -> c9(VIA(S(S(x0)), x1, x3, x4)) MEMBER[ITE](False, E(x0, S(x1)), Cons(E(x2, S(x3)), x4)) -> c12(MEMBER(E(x0, S(x1)), x4)) MEMBER[ITE](False, E(x0, 0), Cons(E(x1, S(x2)), x3)) -> c12(MEMBER(E(x0, 0), x3)) MEMBER[ITE](False, E(x0, S(x1)), Cons(E(x2, 0), x3)) -> c12(MEMBER(E(x0, S(x1)), x3)) MEMBER[ITE](False, E(x0, 0), Cons(E(x1, 0), x2)) -> c12(MEMBER(E(x0, 0), x2)) MEMBER[ITE](False, E(S(x0), x1), Cons(E(S(x2), x3), x4)) -> c12(MEMBER(E(S(x0), x1), x4)) MEMBER[ITE](False, E(0, x0), Cons(E(S(x1), x2), x3)) -> c12(MEMBER(E(0, x0), x3)) MEMBER[ITE](False, E(S(x0), x1), Cons(E(0, x2), x3)) -> c12(MEMBER(E(S(x0), x1), x3)) MEMBER[ITE](False, E(0, x0), Cons(E(0, x1), x2)) -> c12(MEMBER(E(0, x0), x2)) REACH[ITE](False, x0, x1, Nil) -> c14(VIA(x0, x1, Nil, Nil)) REACH[ITE](False, x0, x1, Cons(E(x2, x3), x4)) -> c14(VIA(x0, x1, Cons(E(x2, x3), x4), Cons(E(x2, x3), x4))) REACH(x0, x1, Nil) -> c1(REACH[ITE](False, x0, x1, Nil)) REACH(x0, x1, Nil) -> c1(MEMBER(E(x0, x1), Nil)) VIA(0, x0, Nil, x4) -> c22 VIA(S(x0), x1, Nil, x4) -> c22 VIA(S(S(x0)), x1, Nil, x5) -> c22 VIA(S(0), x0, Nil, x4) -> c22 VIA(x0, x1, Nil, Nil) -> c22 !EQ'(S(S(y0)), S(S(y1))) -> c(!EQ'(S(y0), S(y1))) VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5)) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5)) MEMBER(E(x0, x1), Nil) -> c24 MEMBER(E(x0, S(x1)), Nil) -> c24 MEMBER(E(x0, 0), Nil) -> c24 MEMBER(E(S(x0), x1), Nil) -> c24 MEMBER(E(0, x0), Nil) -> c24 VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), Cons(z5, z6)) -> c8(VIA[LET](0, x0, Cons(E(0, x1), x2), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x1, x0), z5), E(x1, x0), Cons(z5, z6)), x1, x0, Cons(z5, z6))), REACH(x1, x0, Cons(z5, z6))) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(z5, z6)) -> c8(VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x3, x1), z5), E(x3, x1), Cons(z5, z6)), x3, x1, Cons(z5, z6))), REACH(x3, x1, Cons(z5, z6))) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), Cons(z5, z6)) -> c8(VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x1, x0), z5), E(x1, x0), Cons(z5, z6)), x1, x0, Cons(z5, z6))), REACH(x1, x0, Cons(z5, z6))) VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), x3) -> c8(REACH(x1, x0, x3)) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), x5) -> c8(REACH(x3, x1, x5)) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), x3) -> c8(REACH(x1, x0, x3)) VIA[LET](0, x0, Cons(E(0, x1), x2), Cons(x3, x4), Nil) -> c10(VIA(0, x0, x2, Cons(x3, x4))) VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(x5, x6), Nil) -> c10(VIA(S(S(x0)), x1, x4, Cons(x5, x6))) VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Cons(x3, x4), Nil) -> c10(VIA(S(0), x0, x2, Cons(x3, x4))) VIA(0, x0, Nil, Cons(z2, z3)) -> c22 VIA(S(x0), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(S(x0)), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(0), x0, Nil, Cons(z2, z3)) -> c22 VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), Nil) -> c8(VIA[LET](0, x0, Cons(E(0, x1), x2), Nil, Nil), REACH(x1, x0, Nil)) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Nil) -> c8(VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Nil, Nil), REACH(x3, x1, Nil)) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), Nil) -> c8(VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Nil, Nil), REACH(x1, x0, Nil)) EQEDGE(E(S(S(y0)), z1), E(S(S(y1)), z3)) -> c25(!EQ'(S(S(y0)), S(S(y1)))) EQEDGE(E(z0, S(S(y0))), E(z2, S(S(y1)))) -> c26(!EQ'(S(S(y0)), S(S(y1)))) VIA[LET](0, x0, Cons(E(0, x1), x2), Nil, Nil) -> c10(VIA(0, x0, x2, Nil)) VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Nil, Nil) -> c10(VIA(S(S(x0)), x1, x4, Nil)) VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Nil, Nil) -> c10(VIA(S(0), x0, x2, Nil)) S tuples: VIA(0, x1, Cons(E(S(z0), x3), x4), x5) -> c21(VIA[ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) VIA(S(z0), x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) REACH(x0, x1, x2) -> c29(MEMBER(E(x0, x1), x2)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) VIA(S(x0), x1, Cons(E(S(x2), x3), x4), x5) -> c21(!EQ'(S(x0), S(x2))) MEMBER(E(x0, S(z0)), Cons(E(x2, S(z1)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), !EQ(z0, z1)), x2, S(z1), x0, S(z0)), E(x0, S(z0)), Cons(E(x2, S(z1)), x4)), EQEDGE(E(x0, S(z0)), E(x2, S(z1)))) MEMBER(E(x0, 0), Cons(E(x2, S(z0)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, S(z0), x0, 0), E(x0, 0), Cons(E(x2, S(z0)), x4)), EQEDGE(E(x0, 0), E(x2, S(z0)))) MEMBER(E(x0, S(z0)), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, 0, x0, S(z0)), E(x0, S(z0)), Cons(E(x2, 0), x4)), EQEDGE(E(x0, S(z0)), E(x2, 0))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) MEMBER(E(x0, x1), Cons(E(x2, x3), x4)) -> c23(EQEDGE(E(x0, x1), E(x2, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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))) REACH(x0, x1, Nil) -> c1(REACH[ITE](False, x0, x1, Nil)) REACH(x0, x1, Nil) -> c1(MEMBER(E(x0, x1), Nil)) VIA(0, x0, Nil, x4) -> c22 VIA(S(x0), x1, Nil, x4) -> c22 VIA(S(S(x0)), x1, Nil, x5) -> c22 VIA(S(0), x0, Nil, x4) -> c22 VIA(x0, x1, Nil, Nil) -> c22 VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5)) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5)) MEMBER(E(x0, x1), Nil) -> c24 MEMBER(E(x0, S(x1)), Nil) -> c24 MEMBER(E(x0, 0), Nil) -> c24 MEMBER(E(S(x0), x1), Nil) -> c24 MEMBER(E(0, x0), Nil) -> c24 VIA(0, x0, Nil, Cons(z2, z3)) -> c22 VIA(S(x0), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(S(x0)), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(0), x0, Nil, Cons(z2, z3)) -> c22 EQEDGE(E(S(S(y0)), z1), E(S(S(y1)), z3)) -> c25(!EQ'(S(S(y0)), S(S(y1)))) EQEDGE(E(z0, S(S(y0))), E(z2, S(S(y1)))) -> c26(!EQ'(S(S(y0)), S(S(y1)))) K tuples:none Defined Rule Symbols: reach_3, reach[Ite]_4, member_2, member[Ite]_3, eqEdge_2, eqEdge[Ite]_5, and_2, !EQ_2, via_4, via[Ite]_5, via[Let]_5 Defined Pair Symbols: VIA_4, REACH_3, MEMBER_2, VIA[ITE]_5, MEMBER[ITE]_3, REACH[ITE]_4, !EQ'_2, VIA[LET]_5, EQEDGE_2 Compound Symbols: c21_1, c29_1, c21_2, c23_2, c23_1, c29_2, c9_1, c12_1, c14_1, c1_1, c22, c_1, c24, c8_2, c8_1, c10_1, c25_1, c26_1 ---------------------------------------- (89) CdtForwardInstantiationProof (BOTH BOUNDS(ID, ID)) Use forward instantiation to replace REACH(x0, x1, x2) -> c29(MEMBER(E(x0, x1), x2)) by REACH(z0, S(y1), Cons(E(y2, S(y3)), y4)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, S(y3)), y4))) REACH(z0, 0, Cons(E(y1, S(y2)), y3)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, S(y2)), y3))) REACH(z0, S(y1), Cons(E(y2, 0), y3)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, 0), y3))) REACH(z0, 0, Cons(E(y1, 0), y2)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, 0), y2))) REACH(S(y0), z1, Cons(E(S(y2), y3), y4)) -> c29(MEMBER(E(S(y0), z1), Cons(E(S(y2), y3), y4))) REACH(0, z1, Cons(E(S(y1), y2), y3)) -> c29(MEMBER(E(0, z1), Cons(E(S(y1), y2), y3))) REACH(S(y0), z1, Cons(E(0, y2), y3)) -> c29(MEMBER(E(S(y0), z1), Cons(E(0, y2), y3))) REACH(0, z1, Cons(E(0, y1), y2)) -> c29(MEMBER(E(0, z1), Cons(E(0, y1), y2))) REACH(z0, z1, Cons(E(y2, y3), y4)) -> c29(MEMBER(E(z0, z1), Cons(E(y2, y3), y4))) REACH(z0, z1, Nil) -> c29(MEMBER(E(z0, z1), Nil)) REACH(z0, S(y1), Nil) -> c29(MEMBER(E(z0, S(y1)), Nil)) REACH(z0, 0, Nil) -> c29(MEMBER(E(z0, 0), Nil)) REACH(S(y0), z1, Nil) -> c29(MEMBER(E(S(y0), z1), Nil)) REACH(0, z1, Nil) -> c29(MEMBER(E(0, z1), Nil)) ---------------------------------------- (90) Obligation: Complexity Dependency Tuples Problem Rules: reach(z0, z1, z2) -> reach[Ite](member(E(z0, z1), z2), z0, z1, z2) reach[Ite](False, z0, z1, z2) -> via(z0, z1, z2, z2) reach[Ite](True, z0, z1, z2) -> Cons(E(z0, z1), Nil) member(z0, Cons(z1, z2)) -> member[Ite](eqEdge(z0, z1), z0, Cons(z1, z2)) member(z0, Nil) -> False member[Ite](False, z0, Cons(z1, z2)) -> member(z0, z2) member[Ite](True, z0, z1) -> True eqEdge(E(z0, z1), E(z2, z3)) -> eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1) eqEdge[Ite](False, z0, z1, z2, z3) -> False eqEdge[Ite](True, z0, z1, z2, z3) -> True and(False, False) -> False and(True, False) -> False and(False, True) -> False and(True, True) -> True !EQ(S(z0), S(z1)) -> !EQ(z0, z1) !EQ(0, S(z0)) -> False !EQ(S(z0), 0) -> False !EQ(0, 0) -> True via(z0, z1, Cons(E(z2, z3), z4), z5) -> via[Ite](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5) via(z0, z1, Nil, z2) -> Nil via[Ite](True, z0, z1, Cons(E(z2, z3), z4), z5) -> via[Let](z0, z1, Cons(E(z2, z3), z4), z5, reach(z3, z1, z5)) via[Ite](False, z0, z1, Cons(z2, z3), z4) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Nil) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Cons(z5, z6)) -> Cons(z2, Cons(z5, z6)) Tuples: VIA(0, x1, Cons(E(S(z0), x3), x4), x5) -> c21(VIA[ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) VIA(S(z0), x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) VIA(S(x0), x1, Cons(E(S(x2), x3), x4), x5) -> c21(!EQ'(S(x0), S(x2))) MEMBER(E(x0, S(z0)), Cons(E(x2, S(z1)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), !EQ(z0, z1)), x2, S(z1), x0, S(z0)), E(x0, S(z0)), Cons(E(x2, S(z1)), x4)), EQEDGE(E(x0, S(z0)), E(x2, S(z1)))) MEMBER(E(x0, 0), Cons(E(x2, S(z0)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, S(z0), x0, 0), E(x0, 0), Cons(E(x2, S(z0)), x4)), EQEDGE(E(x0, 0), E(x2, S(z0)))) MEMBER(E(x0, S(z0)), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, 0, x0, S(z0)), E(x0, S(z0)), Cons(E(x2, 0), x4)), EQEDGE(E(x0, S(z0)), E(x2, 0))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) MEMBER(E(x0, x1), Cons(E(x2, x3), x4)) -> c23(EQEDGE(E(x0, x1), E(x2, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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))) VIA[ITE](False, 0, x0, Cons(E(S(x1), x2), x3), x4) -> c9(VIA(0, x0, x3, x4)) VIA[ITE](False, S(x0), x1, Cons(E(0, x2), x3), x4) -> c9(VIA(S(x0), x1, x3, x4)) VIA[ITE](False, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), x5) -> c9(VIA(S(S(x0)), x1, x4, x5)) VIA[ITE](False, S(0), x0, Cons(E(S(S(x1)), x2), x3), x4) -> c9(VIA(S(0), x0, x3, x4)) VIA[ITE](False, S(S(x0)), x1, Cons(E(S(0), x2), x3), x4) -> c9(VIA(S(S(x0)), x1, x3, x4)) MEMBER[ITE](False, E(x0, S(x1)), Cons(E(x2, S(x3)), x4)) -> c12(MEMBER(E(x0, S(x1)), x4)) MEMBER[ITE](False, E(x0, 0), Cons(E(x1, S(x2)), x3)) -> c12(MEMBER(E(x0, 0), x3)) MEMBER[ITE](False, E(x0, S(x1)), Cons(E(x2, 0), x3)) -> c12(MEMBER(E(x0, S(x1)), x3)) MEMBER[ITE](False, E(x0, 0), Cons(E(x1, 0), x2)) -> c12(MEMBER(E(x0, 0), x2)) MEMBER[ITE](False, E(S(x0), x1), Cons(E(S(x2), x3), x4)) -> c12(MEMBER(E(S(x0), x1), x4)) MEMBER[ITE](False, E(0, x0), Cons(E(S(x1), x2), x3)) -> c12(MEMBER(E(0, x0), x3)) MEMBER[ITE](False, E(S(x0), x1), Cons(E(0, x2), x3)) -> c12(MEMBER(E(S(x0), x1), x3)) MEMBER[ITE](False, E(0, x0), Cons(E(0, x1), x2)) -> c12(MEMBER(E(0, x0), x2)) REACH[ITE](False, x0, x1, Nil) -> c14(VIA(x0, x1, Nil, Nil)) REACH[ITE](False, x0, x1, Cons(E(x2, x3), x4)) -> c14(VIA(x0, x1, Cons(E(x2, x3), x4), Cons(E(x2, x3), x4))) REACH(x0, x1, Nil) -> c1(REACH[ITE](False, x0, x1, Nil)) REACH(x0, x1, Nil) -> c1(MEMBER(E(x0, x1), Nil)) VIA(0, x0, Nil, x4) -> c22 VIA(S(x0), x1, Nil, x4) -> c22 VIA(S(S(x0)), x1, Nil, x5) -> c22 VIA(S(0), x0, Nil, x4) -> c22 VIA(x0, x1, Nil, Nil) -> c22 !EQ'(S(S(y0)), S(S(y1))) -> c(!EQ'(S(y0), S(y1))) VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5)) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5)) MEMBER(E(x0, x1), Nil) -> c24 MEMBER(E(x0, S(x1)), Nil) -> c24 MEMBER(E(x0, 0), Nil) -> c24 MEMBER(E(S(x0), x1), Nil) -> c24 MEMBER(E(0, x0), Nil) -> c24 VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), Cons(z5, z6)) -> c8(VIA[LET](0, x0, Cons(E(0, x1), x2), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x1, x0), z5), E(x1, x0), Cons(z5, z6)), x1, x0, Cons(z5, z6))), REACH(x1, x0, Cons(z5, z6))) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(z5, z6)) -> c8(VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x3, x1), z5), E(x3, x1), Cons(z5, z6)), x3, x1, Cons(z5, z6))), REACH(x3, x1, Cons(z5, z6))) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), Cons(z5, z6)) -> c8(VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x1, x0), z5), E(x1, x0), Cons(z5, z6)), x1, x0, Cons(z5, z6))), REACH(x1, x0, Cons(z5, z6))) VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), x3) -> c8(REACH(x1, x0, x3)) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), x5) -> c8(REACH(x3, x1, x5)) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), x3) -> c8(REACH(x1, x0, x3)) VIA[LET](0, x0, Cons(E(0, x1), x2), Cons(x3, x4), Nil) -> c10(VIA(0, x0, x2, Cons(x3, x4))) VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(x5, x6), Nil) -> c10(VIA(S(S(x0)), x1, x4, Cons(x5, x6))) VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Cons(x3, x4), Nil) -> c10(VIA(S(0), x0, x2, Cons(x3, x4))) VIA(0, x0, Nil, Cons(z2, z3)) -> c22 VIA(S(x0), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(S(x0)), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(0), x0, Nil, Cons(z2, z3)) -> c22 VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), Nil) -> c8(VIA[LET](0, x0, Cons(E(0, x1), x2), Nil, Nil), REACH(x1, x0, Nil)) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Nil) -> c8(VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Nil, Nil), REACH(x3, x1, Nil)) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), Nil) -> c8(VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Nil, Nil), REACH(x1, x0, Nil)) EQEDGE(E(S(S(y0)), z1), E(S(S(y1)), z3)) -> c25(!EQ'(S(S(y0)), S(S(y1)))) EQEDGE(E(z0, S(S(y0))), E(z2, S(S(y1)))) -> c26(!EQ'(S(S(y0)), S(S(y1)))) VIA[LET](0, x0, Cons(E(0, x1), x2), Nil, Nil) -> c10(VIA(0, x0, x2, Nil)) VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Nil, Nil) -> c10(VIA(S(S(x0)), x1, x4, Nil)) VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Nil, Nil) -> c10(VIA(S(0), x0, x2, Nil)) REACH(z0, S(y1), Cons(E(y2, S(y3)), y4)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, S(y3)), y4))) REACH(z0, 0, Cons(E(y1, S(y2)), y3)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, S(y2)), y3))) REACH(z0, S(y1), Cons(E(y2, 0), y3)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, 0), y3))) REACH(z0, 0, Cons(E(y1, 0), y2)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, 0), y2))) REACH(S(y0), z1, Cons(E(S(y2), y3), y4)) -> c29(MEMBER(E(S(y0), z1), Cons(E(S(y2), y3), y4))) REACH(0, z1, Cons(E(S(y1), y2), y3)) -> c29(MEMBER(E(0, z1), Cons(E(S(y1), y2), y3))) REACH(S(y0), z1, Cons(E(0, y2), y3)) -> c29(MEMBER(E(S(y0), z1), Cons(E(0, y2), y3))) REACH(0, z1, Cons(E(0, y1), y2)) -> c29(MEMBER(E(0, z1), Cons(E(0, y1), y2))) REACH(z0, z1, Cons(E(y2, y3), y4)) -> c29(MEMBER(E(z0, z1), Cons(E(y2, y3), y4))) REACH(z0, z1, Nil) -> c29(MEMBER(E(z0, z1), Nil)) REACH(z0, S(y1), Nil) -> c29(MEMBER(E(z0, S(y1)), Nil)) REACH(z0, 0, Nil) -> c29(MEMBER(E(z0, 0), Nil)) REACH(S(y0), z1, Nil) -> c29(MEMBER(E(S(y0), z1), Nil)) REACH(0, z1, Nil) -> c29(MEMBER(E(0, z1), Nil)) S tuples: VIA(0, x1, Cons(E(S(z0), x3), x4), x5) -> c21(VIA[ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) VIA(S(z0), x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) VIA(S(x0), x1, Cons(E(S(x2), x3), x4), x5) -> c21(!EQ'(S(x0), S(x2))) MEMBER(E(x0, S(z0)), Cons(E(x2, S(z1)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), !EQ(z0, z1)), x2, S(z1), x0, S(z0)), E(x0, S(z0)), Cons(E(x2, S(z1)), x4)), EQEDGE(E(x0, S(z0)), E(x2, S(z1)))) MEMBER(E(x0, 0), Cons(E(x2, S(z0)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, S(z0), x0, 0), E(x0, 0), Cons(E(x2, S(z0)), x4)), EQEDGE(E(x0, 0), E(x2, S(z0)))) MEMBER(E(x0, S(z0)), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, 0, x0, S(z0)), E(x0, S(z0)), Cons(E(x2, 0), x4)), EQEDGE(E(x0, S(z0)), E(x2, 0))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) MEMBER(E(x0, x1), Cons(E(x2, x3), x4)) -> c23(EQEDGE(E(x0, x1), E(x2, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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))) REACH(x0, x1, Nil) -> c1(REACH[ITE](False, x0, x1, Nil)) REACH(x0, x1, Nil) -> c1(MEMBER(E(x0, x1), Nil)) VIA(0, x0, Nil, x4) -> c22 VIA(S(x0), x1, Nil, x4) -> c22 VIA(S(S(x0)), x1, Nil, x5) -> c22 VIA(S(0), x0, Nil, x4) -> c22 VIA(x0, x1, Nil, Nil) -> c22 VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5)) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5)) MEMBER(E(x0, x1), Nil) -> c24 MEMBER(E(x0, S(x1)), Nil) -> c24 MEMBER(E(x0, 0), Nil) -> c24 MEMBER(E(S(x0), x1), Nil) -> c24 MEMBER(E(0, x0), Nil) -> c24 VIA(0, x0, Nil, Cons(z2, z3)) -> c22 VIA(S(x0), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(S(x0)), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(0), x0, Nil, Cons(z2, z3)) -> c22 EQEDGE(E(S(S(y0)), z1), E(S(S(y1)), z3)) -> c25(!EQ'(S(S(y0)), S(S(y1)))) EQEDGE(E(z0, S(S(y0))), E(z2, S(S(y1)))) -> c26(!EQ'(S(S(y0)), S(S(y1)))) REACH(z0, S(y1), Cons(E(y2, S(y3)), y4)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, S(y3)), y4))) REACH(z0, 0, Cons(E(y1, S(y2)), y3)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, S(y2)), y3))) REACH(z0, S(y1), Cons(E(y2, 0), y3)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, 0), y3))) REACH(z0, 0, Cons(E(y1, 0), y2)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, 0), y2))) REACH(S(y0), z1, Cons(E(S(y2), y3), y4)) -> c29(MEMBER(E(S(y0), z1), Cons(E(S(y2), y3), y4))) REACH(0, z1, Cons(E(S(y1), y2), y3)) -> c29(MEMBER(E(0, z1), Cons(E(S(y1), y2), y3))) REACH(S(y0), z1, Cons(E(0, y2), y3)) -> c29(MEMBER(E(S(y0), z1), Cons(E(0, y2), y3))) REACH(0, z1, Cons(E(0, y1), y2)) -> c29(MEMBER(E(0, z1), Cons(E(0, y1), y2))) REACH(z0, z1, Cons(E(y2, y3), y4)) -> c29(MEMBER(E(z0, z1), Cons(E(y2, y3), y4))) REACH(z0, z1, Nil) -> c29(MEMBER(E(z0, z1), Nil)) REACH(z0, S(y1), Nil) -> c29(MEMBER(E(z0, S(y1)), Nil)) REACH(z0, 0, Nil) -> c29(MEMBER(E(z0, 0), Nil)) REACH(S(y0), z1, Nil) -> c29(MEMBER(E(S(y0), z1), Nil)) REACH(0, z1, Nil) -> c29(MEMBER(E(0, z1), Nil)) K tuples:none Defined Rule Symbols: reach_3, reach[Ite]_4, member_2, member[Ite]_3, eqEdge_2, eqEdge[Ite]_5, and_2, !EQ_2, via_4, via[Ite]_5, via[Let]_5 Defined Pair Symbols: VIA_4, MEMBER_2, REACH_3, VIA[ITE]_5, MEMBER[ITE]_3, REACH[ITE]_4, !EQ'_2, VIA[LET]_5, EQEDGE_2 Compound Symbols: c21_1, c21_2, c23_2, c23_1, c29_2, c9_1, c12_1, c14_1, c1_1, c22, c_1, c24, c8_2, c8_1, c10_1, c25_1, c26_1, c29_1 ---------------------------------------- (91) CdtForwardInstantiationProof (BOTH BOUNDS(ID, ID)) Use forward instantiation to replace VIA(S(x0), x1, Cons(E(S(x2), x3), x4), x5) -> c21(!EQ'(S(x0), S(x2))) by VIA(S(S(y0)), z1, Cons(E(S(S(y1)), z3), z4), z5) -> c21(!EQ'(S(S(y0)), S(S(y1)))) ---------------------------------------- (92) Obligation: Complexity Dependency Tuples Problem Rules: reach(z0, z1, z2) -> reach[Ite](member(E(z0, z1), z2), z0, z1, z2) reach[Ite](False, z0, z1, z2) -> via(z0, z1, z2, z2) reach[Ite](True, z0, z1, z2) -> Cons(E(z0, z1), Nil) member(z0, Cons(z1, z2)) -> member[Ite](eqEdge(z0, z1), z0, Cons(z1, z2)) member(z0, Nil) -> False member[Ite](False, z0, Cons(z1, z2)) -> member(z0, z2) member[Ite](True, z0, z1) -> True eqEdge(E(z0, z1), E(z2, z3)) -> eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1) eqEdge[Ite](False, z0, z1, z2, z3) -> False eqEdge[Ite](True, z0, z1, z2, z3) -> True and(False, False) -> False and(True, False) -> False and(False, True) -> False and(True, True) -> True !EQ(S(z0), S(z1)) -> !EQ(z0, z1) !EQ(0, S(z0)) -> False !EQ(S(z0), 0) -> False !EQ(0, 0) -> True via(z0, z1, Cons(E(z2, z3), z4), z5) -> via[Ite](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5) via(z0, z1, Nil, z2) -> Nil via[Ite](True, z0, z1, Cons(E(z2, z3), z4), z5) -> via[Let](z0, z1, Cons(E(z2, z3), z4), z5, reach(z3, z1, z5)) via[Ite](False, z0, z1, Cons(z2, z3), z4) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Nil) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Cons(z5, z6)) -> Cons(z2, Cons(z5, z6)) Tuples: VIA(0, x1, Cons(E(S(z0), x3), x4), x5) -> c21(VIA[ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) VIA(S(z0), x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) MEMBER(E(x0, S(z0)), Cons(E(x2, S(z1)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), !EQ(z0, z1)), x2, S(z1), x0, S(z0)), E(x0, S(z0)), Cons(E(x2, S(z1)), x4)), EQEDGE(E(x0, S(z0)), E(x2, S(z1)))) MEMBER(E(x0, 0), Cons(E(x2, S(z0)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, S(z0), x0, 0), E(x0, 0), Cons(E(x2, S(z0)), x4)), EQEDGE(E(x0, 0), E(x2, S(z0)))) MEMBER(E(x0, S(z0)), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, 0, x0, S(z0)), E(x0, S(z0)), Cons(E(x2, 0), x4)), EQEDGE(E(x0, S(z0)), E(x2, 0))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) MEMBER(E(x0, x1), Cons(E(x2, x3), x4)) -> c23(EQEDGE(E(x0, x1), E(x2, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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))) VIA[ITE](False, 0, x0, Cons(E(S(x1), x2), x3), x4) -> c9(VIA(0, x0, x3, x4)) VIA[ITE](False, S(x0), x1, Cons(E(0, x2), x3), x4) -> c9(VIA(S(x0), x1, x3, x4)) VIA[ITE](False, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), x5) -> c9(VIA(S(S(x0)), x1, x4, x5)) VIA[ITE](False, S(0), x0, Cons(E(S(S(x1)), x2), x3), x4) -> c9(VIA(S(0), x0, x3, x4)) VIA[ITE](False, S(S(x0)), x1, Cons(E(S(0), x2), x3), x4) -> c9(VIA(S(S(x0)), x1, x3, x4)) MEMBER[ITE](False, E(x0, S(x1)), Cons(E(x2, S(x3)), x4)) -> c12(MEMBER(E(x0, S(x1)), x4)) MEMBER[ITE](False, E(x0, 0), Cons(E(x1, S(x2)), x3)) -> c12(MEMBER(E(x0, 0), x3)) MEMBER[ITE](False, E(x0, S(x1)), Cons(E(x2, 0), x3)) -> c12(MEMBER(E(x0, S(x1)), x3)) MEMBER[ITE](False, E(x0, 0), Cons(E(x1, 0), x2)) -> c12(MEMBER(E(x0, 0), x2)) MEMBER[ITE](False, E(S(x0), x1), Cons(E(S(x2), x3), x4)) -> c12(MEMBER(E(S(x0), x1), x4)) MEMBER[ITE](False, E(0, x0), Cons(E(S(x1), x2), x3)) -> c12(MEMBER(E(0, x0), x3)) MEMBER[ITE](False, E(S(x0), x1), Cons(E(0, x2), x3)) -> c12(MEMBER(E(S(x0), x1), x3)) MEMBER[ITE](False, E(0, x0), Cons(E(0, x1), x2)) -> c12(MEMBER(E(0, x0), x2)) REACH[ITE](False, x0, x1, Nil) -> c14(VIA(x0, x1, Nil, Nil)) REACH[ITE](False, x0, x1, Cons(E(x2, x3), x4)) -> c14(VIA(x0, x1, Cons(E(x2, x3), x4), Cons(E(x2, x3), x4))) REACH(x0, x1, Nil) -> c1(REACH[ITE](False, x0, x1, Nil)) REACH(x0, x1, Nil) -> c1(MEMBER(E(x0, x1), Nil)) VIA(0, x0, Nil, x4) -> c22 VIA(S(x0), x1, Nil, x4) -> c22 VIA(S(S(x0)), x1, Nil, x5) -> c22 VIA(S(0), x0, Nil, x4) -> c22 VIA(x0, x1, Nil, Nil) -> c22 !EQ'(S(S(y0)), S(S(y1))) -> c(!EQ'(S(y0), S(y1))) VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5)) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5)) MEMBER(E(x0, x1), Nil) -> c24 MEMBER(E(x0, S(x1)), Nil) -> c24 MEMBER(E(x0, 0), Nil) -> c24 MEMBER(E(S(x0), x1), Nil) -> c24 MEMBER(E(0, x0), Nil) -> c24 VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), Cons(z5, z6)) -> c8(VIA[LET](0, x0, Cons(E(0, x1), x2), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x1, x0), z5), E(x1, x0), Cons(z5, z6)), x1, x0, Cons(z5, z6))), REACH(x1, x0, Cons(z5, z6))) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(z5, z6)) -> c8(VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x3, x1), z5), E(x3, x1), Cons(z5, z6)), x3, x1, Cons(z5, z6))), REACH(x3, x1, Cons(z5, z6))) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), Cons(z5, z6)) -> c8(VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x1, x0), z5), E(x1, x0), Cons(z5, z6)), x1, x0, Cons(z5, z6))), REACH(x1, x0, Cons(z5, z6))) VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), x3) -> c8(REACH(x1, x0, x3)) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), x5) -> c8(REACH(x3, x1, x5)) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), x3) -> c8(REACH(x1, x0, x3)) VIA[LET](0, x0, Cons(E(0, x1), x2), Cons(x3, x4), Nil) -> c10(VIA(0, x0, x2, Cons(x3, x4))) VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(x5, x6), Nil) -> c10(VIA(S(S(x0)), x1, x4, Cons(x5, x6))) VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Cons(x3, x4), Nil) -> c10(VIA(S(0), x0, x2, Cons(x3, x4))) VIA(0, x0, Nil, Cons(z2, z3)) -> c22 VIA(S(x0), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(S(x0)), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(0), x0, Nil, Cons(z2, z3)) -> c22 VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), Nil) -> c8(VIA[LET](0, x0, Cons(E(0, x1), x2), Nil, Nil), REACH(x1, x0, Nil)) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Nil) -> c8(VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Nil, Nil), REACH(x3, x1, Nil)) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), Nil) -> c8(VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Nil, Nil), REACH(x1, x0, Nil)) EQEDGE(E(S(S(y0)), z1), E(S(S(y1)), z3)) -> c25(!EQ'(S(S(y0)), S(S(y1)))) EQEDGE(E(z0, S(S(y0))), E(z2, S(S(y1)))) -> c26(!EQ'(S(S(y0)), S(S(y1)))) VIA[LET](0, x0, Cons(E(0, x1), x2), Nil, Nil) -> c10(VIA(0, x0, x2, Nil)) VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Nil, Nil) -> c10(VIA(S(S(x0)), x1, x4, Nil)) VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Nil, Nil) -> c10(VIA(S(0), x0, x2, Nil)) REACH(z0, S(y1), Cons(E(y2, S(y3)), y4)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, S(y3)), y4))) REACH(z0, 0, Cons(E(y1, S(y2)), y3)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, S(y2)), y3))) REACH(z0, S(y1), Cons(E(y2, 0), y3)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, 0), y3))) REACH(z0, 0, Cons(E(y1, 0), y2)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, 0), y2))) REACH(S(y0), z1, Cons(E(S(y2), y3), y4)) -> c29(MEMBER(E(S(y0), z1), Cons(E(S(y2), y3), y4))) REACH(0, z1, Cons(E(S(y1), y2), y3)) -> c29(MEMBER(E(0, z1), Cons(E(S(y1), y2), y3))) REACH(S(y0), z1, Cons(E(0, y2), y3)) -> c29(MEMBER(E(S(y0), z1), Cons(E(0, y2), y3))) REACH(0, z1, Cons(E(0, y1), y2)) -> c29(MEMBER(E(0, z1), Cons(E(0, y1), y2))) REACH(z0, z1, Cons(E(y2, y3), y4)) -> c29(MEMBER(E(z0, z1), Cons(E(y2, y3), y4))) REACH(z0, z1, Nil) -> c29(MEMBER(E(z0, z1), Nil)) REACH(z0, S(y1), Nil) -> c29(MEMBER(E(z0, S(y1)), Nil)) REACH(z0, 0, Nil) -> c29(MEMBER(E(z0, 0), Nil)) REACH(S(y0), z1, Nil) -> c29(MEMBER(E(S(y0), z1), Nil)) REACH(0, z1, Nil) -> c29(MEMBER(E(0, z1), Nil)) VIA(S(S(y0)), z1, Cons(E(S(S(y1)), z3), z4), z5) -> c21(!EQ'(S(S(y0)), S(S(y1)))) S tuples: VIA(0, x1, Cons(E(S(z0), x3), x4), x5) -> c21(VIA[ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) VIA(S(z0), x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) MEMBER(E(x0, S(z0)), Cons(E(x2, S(z1)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), !EQ(z0, z1)), x2, S(z1), x0, S(z0)), E(x0, S(z0)), Cons(E(x2, S(z1)), x4)), EQEDGE(E(x0, S(z0)), E(x2, S(z1)))) MEMBER(E(x0, 0), Cons(E(x2, S(z0)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, S(z0), x0, 0), E(x0, 0), Cons(E(x2, S(z0)), x4)), EQEDGE(E(x0, 0), E(x2, S(z0)))) MEMBER(E(x0, S(z0)), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, 0, x0, S(z0)), E(x0, S(z0)), Cons(E(x2, 0), x4)), EQEDGE(E(x0, S(z0)), E(x2, 0))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) MEMBER(E(x0, x1), Cons(E(x2, x3), x4)) -> c23(EQEDGE(E(x0, x1), E(x2, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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))) REACH(x0, x1, Nil) -> c1(REACH[ITE](False, x0, x1, Nil)) REACH(x0, x1, Nil) -> c1(MEMBER(E(x0, x1), Nil)) VIA(0, x0, Nil, x4) -> c22 VIA(S(x0), x1, Nil, x4) -> c22 VIA(S(S(x0)), x1, Nil, x5) -> c22 VIA(S(0), x0, Nil, x4) -> c22 VIA(x0, x1, Nil, Nil) -> c22 VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5)) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5)) MEMBER(E(x0, x1), Nil) -> c24 MEMBER(E(x0, S(x1)), Nil) -> c24 MEMBER(E(x0, 0), Nil) -> c24 MEMBER(E(S(x0), x1), Nil) -> c24 MEMBER(E(0, x0), Nil) -> c24 VIA(0, x0, Nil, Cons(z2, z3)) -> c22 VIA(S(x0), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(S(x0)), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(0), x0, Nil, Cons(z2, z3)) -> c22 EQEDGE(E(S(S(y0)), z1), E(S(S(y1)), z3)) -> c25(!EQ'(S(S(y0)), S(S(y1)))) EQEDGE(E(z0, S(S(y0))), E(z2, S(S(y1)))) -> c26(!EQ'(S(S(y0)), S(S(y1)))) REACH(z0, S(y1), Cons(E(y2, S(y3)), y4)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, S(y3)), y4))) REACH(z0, 0, Cons(E(y1, S(y2)), y3)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, S(y2)), y3))) REACH(z0, S(y1), Cons(E(y2, 0), y3)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, 0), y3))) REACH(z0, 0, Cons(E(y1, 0), y2)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, 0), y2))) REACH(S(y0), z1, Cons(E(S(y2), y3), y4)) -> c29(MEMBER(E(S(y0), z1), Cons(E(S(y2), y3), y4))) REACH(0, z1, Cons(E(S(y1), y2), y3)) -> c29(MEMBER(E(0, z1), Cons(E(S(y1), y2), y3))) REACH(S(y0), z1, Cons(E(0, y2), y3)) -> c29(MEMBER(E(S(y0), z1), Cons(E(0, y2), y3))) REACH(0, z1, Cons(E(0, y1), y2)) -> c29(MEMBER(E(0, z1), Cons(E(0, y1), y2))) REACH(z0, z1, Cons(E(y2, y3), y4)) -> c29(MEMBER(E(z0, z1), Cons(E(y2, y3), y4))) REACH(z0, z1, Nil) -> c29(MEMBER(E(z0, z1), Nil)) REACH(z0, S(y1), Nil) -> c29(MEMBER(E(z0, S(y1)), Nil)) REACH(z0, 0, Nil) -> c29(MEMBER(E(z0, 0), Nil)) REACH(S(y0), z1, Nil) -> c29(MEMBER(E(S(y0), z1), Nil)) REACH(0, z1, Nil) -> c29(MEMBER(E(0, z1), Nil)) VIA(S(S(y0)), z1, Cons(E(S(S(y1)), z3), z4), z5) -> c21(!EQ'(S(S(y0)), S(S(y1)))) K tuples:none Defined Rule Symbols: reach_3, reach[Ite]_4, member_2, member[Ite]_3, eqEdge_2, eqEdge[Ite]_5, and_2, !EQ_2, via_4, via[Ite]_5, via[Let]_5 Defined Pair Symbols: VIA_4, MEMBER_2, REACH_3, VIA[ITE]_5, MEMBER[ITE]_3, REACH[ITE]_4, !EQ'_2, VIA[LET]_5, EQEDGE_2 Compound Symbols: c21_1, c21_2, c23_2, c23_1, c29_2, c9_1, c12_1, c14_1, c1_1, c22, c_1, c24, c8_2, c8_1, c10_1, c25_1, c26_1, c29_1 ---------------------------------------- (93) CdtForwardInstantiationProof (BOTH BOUNDS(ID, ID)) Use forward instantiation to replace MEMBER(E(x0, x1), Cons(E(x2, x3), x4)) -> c23(EQEDGE(E(x0, x1), E(x2, x3))) by MEMBER(E(S(S(y0)), z1), Cons(E(S(S(y2)), z3), z4)) -> c23(EQEDGE(E(S(S(y0)), z1), E(S(S(y2)), z3))) MEMBER(E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)) -> c23(EQEDGE(E(z0, S(S(y1))), E(z2, S(S(y3))))) ---------------------------------------- (94) Obligation: Complexity Dependency Tuples Problem Rules: reach(z0, z1, z2) -> reach[Ite](member(E(z0, z1), z2), z0, z1, z2) reach[Ite](False, z0, z1, z2) -> via(z0, z1, z2, z2) reach[Ite](True, z0, z1, z2) -> Cons(E(z0, z1), Nil) member(z0, Cons(z1, z2)) -> member[Ite](eqEdge(z0, z1), z0, Cons(z1, z2)) member(z0, Nil) -> False member[Ite](False, z0, Cons(z1, z2)) -> member(z0, z2) member[Ite](True, z0, z1) -> True eqEdge(E(z0, z1), E(z2, z3)) -> eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1) eqEdge[Ite](False, z0, z1, z2, z3) -> False eqEdge[Ite](True, z0, z1, z2, z3) -> True and(False, False) -> False and(True, False) -> False and(False, True) -> False and(True, True) -> True !EQ(S(z0), S(z1)) -> !EQ(z0, z1) !EQ(0, S(z0)) -> False !EQ(S(z0), 0) -> False !EQ(0, 0) -> True via(z0, z1, Cons(E(z2, z3), z4), z5) -> via[Ite](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5) via(z0, z1, Nil, z2) -> Nil via[Ite](True, z0, z1, Cons(E(z2, z3), z4), z5) -> via[Let](z0, z1, Cons(E(z2, z3), z4), z5, reach(z3, z1, z5)) via[Ite](False, z0, z1, Cons(z2, z3), z4) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Nil) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Cons(z5, z6)) -> Cons(z2, Cons(z5, z6)) Tuples: VIA(0, x1, Cons(E(S(z0), x3), x4), x5) -> c21(VIA[ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) VIA(S(z0), x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) MEMBER(E(x0, S(z0)), Cons(E(x2, S(z1)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), !EQ(z0, z1)), x2, S(z1), x0, S(z0)), E(x0, S(z0)), Cons(E(x2, S(z1)), x4)), EQEDGE(E(x0, S(z0)), E(x2, S(z1)))) MEMBER(E(x0, 0), Cons(E(x2, S(z0)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, S(z0), x0, 0), E(x0, 0), Cons(E(x2, S(z0)), x4)), EQEDGE(E(x0, 0), E(x2, S(z0)))) MEMBER(E(x0, S(z0)), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, 0, x0, S(z0)), E(x0, S(z0)), Cons(E(x2, 0), x4)), EQEDGE(E(x0, S(z0)), E(x2, 0))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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))) VIA[ITE](False, 0, x0, Cons(E(S(x1), x2), x3), x4) -> c9(VIA(0, x0, x3, x4)) VIA[ITE](False, S(x0), x1, Cons(E(0, x2), x3), x4) -> c9(VIA(S(x0), x1, x3, x4)) VIA[ITE](False, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), x5) -> c9(VIA(S(S(x0)), x1, x4, x5)) VIA[ITE](False, S(0), x0, Cons(E(S(S(x1)), x2), x3), x4) -> c9(VIA(S(0), x0, x3, x4)) VIA[ITE](False, S(S(x0)), x1, Cons(E(S(0), x2), x3), x4) -> c9(VIA(S(S(x0)), x1, x3, x4)) MEMBER[ITE](False, E(x0, S(x1)), Cons(E(x2, S(x3)), x4)) -> c12(MEMBER(E(x0, S(x1)), x4)) MEMBER[ITE](False, E(x0, 0), Cons(E(x1, S(x2)), x3)) -> c12(MEMBER(E(x0, 0), x3)) MEMBER[ITE](False, E(x0, S(x1)), Cons(E(x2, 0), x3)) -> c12(MEMBER(E(x0, S(x1)), x3)) MEMBER[ITE](False, E(x0, 0), Cons(E(x1, 0), x2)) -> c12(MEMBER(E(x0, 0), x2)) MEMBER[ITE](False, E(S(x0), x1), Cons(E(S(x2), x3), x4)) -> c12(MEMBER(E(S(x0), x1), x4)) MEMBER[ITE](False, E(0, x0), Cons(E(S(x1), x2), x3)) -> c12(MEMBER(E(0, x0), x3)) MEMBER[ITE](False, E(S(x0), x1), Cons(E(0, x2), x3)) -> c12(MEMBER(E(S(x0), x1), x3)) MEMBER[ITE](False, E(0, x0), Cons(E(0, x1), x2)) -> c12(MEMBER(E(0, x0), x2)) REACH[ITE](False, x0, x1, Nil) -> c14(VIA(x0, x1, Nil, Nil)) REACH[ITE](False, x0, x1, Cons(E(x2, x3), x4)) -> c14(VIA(x0, x1, Cons(E(x2, x3), x4), Cons(E(x2, x3), x4))) REACH(x0, x1, Nil) -> c1(REACH[ITE](False, x0, x1, Nil)) REACH(x0, x1, Nil) -> c1(MEMBER(E(x0, x1), Nil)) VIA(0, x0, Nil, x4) -> c22 VIA(S(x0), x1, Nil, x4) -> c22 VIA(S(S(x0)), x1, Nil, x5) -> c22 VIA(S(0), x0, Nil, x4) -> c22 VIA(x0, x1, Nil, Nil) -> c22 !EQ'(S(S(y0)), S(S(y1))) -> c(!EQ'(S(y0), S(y1))) VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5)) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5)) MEMBER(E(x0, x1), Nil) -> c24 MEMBER(E(x0, S(x1)), Nil) -> c24 MEMBER(E(x0, 0), Nil) -> c24 MEMBER(E(S(x0), x1), Nil) -> c24 MEMBER(E(0, x0), Nil) -> c24 VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), Cons(z5, z6)) -> c8(VIA[LET](0, x0, Cons(E(0, x1), x2), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x1, x0), z5), E(x1, x0), Cons(z5, z6)), x1, x0, Cons(z5, z6))), REACH(x1, x0, Cons(z5, z6))) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(z5, z6)) -> c8(VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x3, x1), z5), E(x3, x1), Cons(z5, z6)), x3, x1, Cons(z5, z6))), REACH(x3, x1, Cons(z5, z6))) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), Cons(z5, z6)) -> c8(VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x1, x0), z5), E(x1, x0), Cons(z5, z6)), x1, x0, Cons(z5, z6))), REACH(x1, x0, Cons(z5, z6))) VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), x3) -> c8(REACH(x1, x0, x3)) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), x5) -> c8(REACH(x3, x1, x5)) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), x3) -> c8(REACH(x1, x0, x3)) VIA[LET](0, x0, Cons(E(0, x1), x2), Cons(x3, x4), Nil) -> c10(VIA(0, x0, x2, Cons(x3, x4))) VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(x5, x6), Nil) -> c10(VIA(S(S(x0)), x1, x4, Cons(x5, x6))) VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Cons(x3, x4), Nil) -> c10(VIA(S(0), x0, x2, Cons(x3, x4))) VIA(0, x0, Nil, Cons(z2, z3)) -> c22 VIA(S(x0), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(S(x0)), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(0), x0, Nil, Cons(z2, z3)) -> c22 VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), Nil) -> c8(VIA[LET](0, x0, Cons(E(0, x1), x2), Nil, Nil), REACH(x1, x0, Nil)) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Nil) -> c8(VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Nil, Nil), REACH(x3, x1, Nil)) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), Nil) -> c8(VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Nil, Nil), REACH(x1, x0, Nil)) EQEDGE(E(S(S(y0)), z1), E(S(S(y1)), z3)) -> c25(!EQ'(S(S(y0)), S(S(y1)))) EQEDGE(E(z0, S(S(y0))), E(z2, S(S(y1)))) -> c26(!EQ'(S(S(y0)), S(S(y1)))) VIA[LET](0, x0, Cons(E(0, x1), x2), Nil, Nil) -> c10(VIA(0, x0, x2, Nil)) VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Nil, Nil) -> c10(VIA(S(S(x0)), x1, x4, Nil)) VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Nil, Nil) -> c10(VIA(S(0), x0, x2, Nil)) REACH(z0, S(y1), Cons(E(y2, S(y3)), y4)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, S(y3)), y4))) REACH(z0, 0, Cons(E(y1, S(y2)), y3)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, S(y2)), y3))) REACH(z0, S(y1), Cons(E(y2, 0), y3)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, 0), y3))) REACH(z0, 0, Cons(E(y1, 0), y2)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, 0), y2))) REACH(S(y0), z1, Cons(E(S(y2), y3), y4)) -> c29(MEMBER(E(S(y0), z1), Cons(E(S(y2), y3), y4))) REACH(0, z1, Cons(E(S(y1), y2), y3)) -> c29(MEMBER(E(0, z1), Cons(E(S(y1), y2), y3))) REACH(S(y0), z1, Cons(E(0, y2), y3)) -> c29(MEMBER(E(S(y0), z1), Cons(E(0, y2), y3))) REACH(0, z1, Cons(E(0, y1), y2)) -> c29(MEMBER(E(0, z1), Cons(E(0, y1), y2))) REACH(z0, z1, Cons(E(y2, y3), y4)) -> c29(MEMBER(E(z0, z1), Cons(E(y2, y3), y4))) REACH(z0, z1, Nil) -> c29(MEMBER(E(z0, z1), Nil)) REACH(z0, S(y1), Nil) -> c29(MEMBER(E(z0, S(y1)), Nil)) REACH(z0, 0, Nil) -> c29(MEMBER(E(z0, 0), Nil)) REACH(S(y0), z1, Nil) -> c29(MEMBER(E(S(y0), z1), Nil)) REACH(0, z1, Nil) -> c29(MEMBER(E(0, z1), Nil)) VIA(S(S(y0)), z1, Cons(E(S(S(y1)), z3), z4), z5) -> c21(!EQ'(S(S(y0)), S(S(y1)))) MEMBER(E(S(S(y0)), z1), Cons(E(S(S(y2)), z3), z4)) -> c23(EQEDGE(E(S(S(y0)), z1), E(S(S(y2)), z3))) MEMBER(E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)) -> c23(EQEDGE(E(z0, S(S(y1))), E(z2, S(S(y3))))) S tuples: VIA(0, x1, Cons(E(S(z0), x3), x4), x5) -> c21(VIA[ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) VIA(S(z0), x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) MEMBER(E(x0, S(z0)), Cons(E(x2, S(z1)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), !EQ(z0, z1)), x2, S(z1), x0, S(z0)), E(x0, S(z0)), Cons(E(x2, S(z1)), x4)), EQEDGE(E(x0, S(z0)), E(x2, S(z1)))) MEMBER(E(x0, 0), Cons(E(x2, S(z0)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, S(z0), x0, 0), E(x0, 0), Cons(E(x2, S(z0)), x4)), EQEDGE(E(x0, 0), E(x2, S(z0)))) MEMBER(E(x0, S(z0)), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, 0, x0, S(z0)), E(x0, S(z0)), Cons(E(x2, 0), x4)), EQEDGE(E(x0, S(z0)), E(x2, 0))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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))) REACH(x0, x1, Nil) -> c1(REACH[ITE](False, x0, x1, Nil)) REACH(x0, x1, Nil) -> c1(MEMBER(E(x0, x1), Nil)) VIA(0, x0, Nil, x4) -> c22 VIA(S(x0), x1, Nil, x4) -> c22 VIA(S(S(x0)), x1, Nil, x5) -> c22 VIA(S(0), x0, Nil, x4) -> c22 VIA(x0, x1, Nil, Nil) -> c22 VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5)) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5)) MEMBER(E(x0, x1), Nil) -> c24 MEMBER(E(x0, S(x1)), Nil) -> c24 MEMBER(E(x0, 0), Nil) -> c24 MEMBER(E(S(x0), x1), Nil) -> c24 MEMBER(E(0, x0), Nil) -> c24 VIA(0, x0, Nil, Cons(z2, z3)) -> c22 VIA(S(x0), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(S(x0)), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(0), x0, Nil, Cons(z2, z3)) -> c22 EQEDGE(E(S(S(y0)), z1), E(S(S(y1)), z3)) -> c25(!EQ'(S(S(y0)), S(S(y1)))) EQEDGE(E(z0, S(S(y0))), E(z2, S(S(y1)))) -> c26(!EQ'(S(S(y0)), S(S(y1)))) REACH(z0, S(y1), Cons(E(y2, S(y3)), y4)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, S(y3)), y4))) REACH(z0, 0, Cons(E(y1, S(y2)), y3)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, S(y2)), y3))) REACH(z0, S(y1), Cons(E(y2, 0), y3)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, 0), y3))) REACH(z0, 0, Cons(E(y1, 0), y2)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, 0), y2))) REACH(S(y0), z1, Cons(E(S(y2), y3), y4)) -> c29(MEMBER(E(S(y0), z1), Cons(E(S(y2), y3), y4))) REACH(0, z1, Cons(E(S(y1), y2), y3)) -> c29(MEMBER(E(0, z1), Cons(E(S(y1), y2), y3))) REACH(S(y0), z1, Cons(E(0, y2), y3)) -> c29(MEMBER(E(S(y0), z1), Cons(E(0, y2), y3))) REACH(0, z1, Cons(E(0, y1), y2)) -> c29(MEMBER(E(0, z1), Cons(E(0, y1), y2))) REACH(z0, z1, Cons(E(y2, y3), y4)) -> c29(MEMBER(E(z0, z1), Cons(E(y2, y3), y4))) REACH(z0, z1, Nil) -> c29(MEMBER(E(z0, z1), Nil)) REACH(z0, S(y1), Nil) -> c29(MEMBER(E(z0, S(y1)), Nil)) REACH(z0, 0, Nil) -> c29(MEMBER(E(z0, 0), Nil)) REACH(S(y0), z1, Nil) -> c29(MEMBER(E(S(y0), z1), Nil)) REACH(0, z1, Nil) -> c29(MEMBER(E(0, z1), Nil)) VIA(S(S(y0)), z1, Cons(E(S(S(y1)), z3), z4), z5) -> c21(!EQ'(S(S(y0)), S(S(y1)))) MEMBER(E(S(S(y0)), z1), Cons(E(S(S(y2)), z3), z4)) -> c23(EQEDGE(E(S(S(y0)), z1), E(S(S(y2)), z3))) MEMBER(E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)) -> c23(EQEDGE(E(z0, S(S(y1))), E(z2, S(S(y3))))) K tuples:none Defined Rule Symbols: reach_3, reach[Ite]_4, member_2, member[Ite]_3, eqEdge_2, eqEdge[Ite]_5, and_2, !EQ_2, via_4, via[Ite]_5, via[Let]_5 Defined Pair Symbols: VIA_4, MEMBER_2, REACH_3, VIA[ITE]_5, MEMBER[ITE]_3, REACH[ITE]_4, !EQ'_2, VIA[LET]_5, EQEDGE_2 Compound Symbols: c21_1, c21_2, c23_2, c29_2, c9_1, c12_1, c14_1, c1_1, c22, c_1, c24, c8_2, c8_1, c10_1, c25_1, c26_1, c29_1, c23_1 ---------------------------------------- (95) CdtForwardInstantiationProof (BOTH BOUNDS(ID, ID)) Use forward instantiation to replace VIA[ITE](False, 0, x0, Cons(E(S(x1), x2), x3), x4) -> c9(VIA(0, x0, x3, x4)) by VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(S(y1), y2), y3)), z4) -> c9(VIA(0, z0, Cons(E(S(y1), y2), y3), z4)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(0, y1), y2)), z4) -> c9(VIA(0, z0, Cons(E(0, y1), y2), z4)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), z4) -> c9(VIA(0, z0, Nil, z4)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Nil) -> c9(VIA(0, z0, Nil, Nil)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Cons(y1, y2)) -> c9(VIA(0, z0, Nil, Cons(y1, y2))) ---------------------------------------- (96) Obligation: Complexity Dependency Tuples Problem Rules: reach(z0, z1, z2) -> reach[Ite](member(E(z0, z1), z2), z0, z1, z2) reach[Ite](False, z0, z1, z2) -> via(z0, z1, z2, z2) reach[Ite](True, z0, z1, z2) -> Cons(E(z0, z1), Nil) member(z0, Cons(z1, z2)) -> member[Ite](eqEdge(z0, z1), z0, Cons(z1, z2)) member(z0, Nil) -> False member[Ite](False, z0, Cons(z1, z2)) -> member(z0, z2) member[Ite](True, z0, z1) -> True eqEdge(E(z0, z1), E(z2, z3)) -> eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1) eqEdge[Ite](False, z0, z1, z2, z3) -> False eqEdge[Ite](True, z0, z1, z2, z3) -> True and(False, False) -> False and(True, False) -> False and(False, True) -> False and(True, True) -> True !EQ(S(z0), S(z1)) -> !EQ(z0, z1) !EQ(0, S(z0)) -> False !EQ(S(z0), 0) -> False !EQ(0, 0) -> True via(z0, z1, Cons(E(z2, z3), z4), z5) -> via[Ite](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5) via(z0, z1, Nil, z2) -> Nil via[Ite](True, z0, z1, Cons(E(z2, z3), z4), z5) -> via[Let](z0, z1, Cons(E(z2, z3), z4), z5, reach(z3, z1, z5)) via[Ite](False, z0, z1, Cons(z2, z3), z4) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Nil) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Cons(z5, z6)) -> Cons(z2, Cons(z5, z6)) Tuples: VIA(0, x1, Cons(E(S(z0), x3), x4), x5) -> c21(VIA[ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) VIA(S(z0), x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) MEMBER(E(x0, S(z0)), Cons(E(x2, S(z1)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), !EQ(z0, z1)), x2, S(z1), x0, S(z0)), E(x0, S(z0)), Cons(E(x2, S(z1)), x4)), EQEDGE(E(x0, S(z0)), E(x2, S(z1)))) MEMBER(E(x0, 0), Cons(E(x2, S(z0)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, S(z0), x0, 0), E(x0, 0), Cons(E(x2, S(z0)), x4)), EQEDGE(E(x0, 0), E(x2, S(z0)))) MEMBER(E(x0, S(z0)), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, 0, x0, S(z0)), E(x0, S(z0)), Cons(E(x2, 0), x4)), EQEDGE(E(x0, S(z0)), E(x2, 0))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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))) VIA[ITE](False, S(x0), x1, Cons(E(0, x2), x3), x4) -> c9(VIA(S(x0), x1, x3, x4)) VIA[ITE](False, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), x5) -> c9(VIA(S(S(x0)), x1, x4, x5)) VIA[ITE](False, S(0), x0, Cons(E(S(S(x1)), x2), x3), x4) -> c9(VIA(S(0), x0, x3, x4)) VIA[ITE](False, S(S(x0)), x1, Cons(E(S(0), x2), x3), x4) -> c9(VIA(S(S(x0)), x1, x3, x4)) MEMBER[ITE](False, E(x0, S(x1)), Cons(E(x2, S(x3)), x4)) -> c12(MEMBER(E(x0, S(x1)), x4)) MEMBER[ITE](False, E(x0, 0), Cons(E(x1, S(x2)), x3)) -> c12(MEMBER(E(x0, 0), x3)) MEMBER[ITE](False, E(x0, S(x1)), Cons(E(x2, 0), x3)) -> c12(MEMBER(E(x0, S(x1)), x3)) MEMBER[ITE](False, E(x0, 0), Cons(E(x1, 0), x2)) -> c12(MEMBER(E(x0, 0), x2)) MEMBER[ITE](False, E(S(x0), x1), Cons(E(S(x2), x3), x4)) -> c12(MEMBER(E(S(x0), x1), x4)) MEMBER[ITE](False, E(0, x0), Cons(E(S(x1), x2), x3)) -> c12(MEMBER(E(0, x0), x3)) MEMBER[ITE](False, E(S(x0), x1), Cons(E(0, x2), x3)) -> c12(MEMBER(E(S(x0), x1), x3)) MEMBER[ITE](False, E(0, x0), Cons(E(0, x1), x2)) -> c12(MEMBER(E(0, x0), x2)) REACH[ITE](False, x0, x1, Nil) -> c14(VIA(x0, x1, Nil, Nil)) REACH[ITE](False, x0, x1, Cons(E(x2, x3), x4)) -> c14(VIA(x0, x1, Cons(E(x2, x3), x4), Cons(E(x2, x3), x4))) REACH(x0, x1, Nil) -> c1(REACH[ITE](False, x0, x1, Nil)) REACH(x0, x1, Nil) -> c1(MEMBER(E(x0, x1), Nil)) VIA(0, x0, Nil, x4) -> c22 VIA(S(x0), x1, Nil, x4) -> c22 VIA(S(S(x0)), x1, Nil, x5) -> c22 VIA(S(0), x0, Nil, x4) -> c22 VIA(x0, x1, Nil, Nil) -> c22 !EQ'(S(S(y0)), S(S(y1))) -> c(!EQ'(S(y0), S(y1))) VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5)) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5)) MEMBER(E(x0, x1), Nil) -> c24 MEMBER(E(x0, S(x1)), Nil) -> c24 MEMBER(E(x0, 0), Nil) -> c24 MEMBER(E(S(x0), x1), Nil) -> c24 MEMBER(E(0, x0), Nil) -> c24 VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), Cons(z5, z6)) -> c8(VIA[LET](0, x0, Cons(E(0, x1), x2), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x1, x0), z5), E(x1, x0), Cons(z5, z6)), x1, x0, Cons(z5, z6))), REACH(x1, x0, Cons(z5, z6))) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(z5, z6)) -> c8(VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x3, x1), z5), E(x3, x1), Cons(z5, z6)), x3, x1, Cons(z5, z6))), REACH(x3, x1, Cons(z5, z6))) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), Cons(z5, z6)) -> c8(VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x1, x0), z5), E(x1, x0), Cons(z5, z6)), x1, x0, Cons(z5, z6))), REACH(x1, x0, Cons(z5, z6))) VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), x3) -> c8(REACH(x1, x0, x3)) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), x5) -> c8(REACH(x3, x1, x5)) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), x3) -> c8(REACH(x1, x0, x3)) VIA[LET](0, x0, Cons(E(0, x1), x2), Cons(x3, x4), Nil) -> c10(VIA(0, x0, x2, Cons(x3, x4))) VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(x5, x6), Nil) -> c10(VIA(S(S(x0)), x1, x4, Cons(x5, x6))) VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Cons(x3, x4), Nil) -> c10(VIA(S(0), x0, x2, Cons(x3, x4))) VIA(0, x0, Nil, Cons(z2, z3)) -> c22 VIA(S(x0), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(S(x0)), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(0), x0, Nil, Cons(z2, z3)) -> c22 VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), Nil) -> c8(VIA[LET](0, x0, Cons(E(0, x1), x2), Nil, Nil), REACH(x1, x0, Nil)) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Nil) -> c8(VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Nil, Nil), REACH(x3, x1, Nil)) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), Nil) -> c8(VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Nil, Nil), REACH(x1, x0, Nil)) EQEDGE(E(S(S(y0)), z1), E(S(S(y1)), z3)) -> c25(!EQ'(S(S(y0)), S(S(y1)))) EQEDGE(E(z0, S(S(y0))), E(z2, S(S(y1)))) -> c26(!EQ'(S(S(y0)), S(S(y1)))) VIA[LET](0, x0, Cons(E(0, x1), x2), Nil, Nil) -> c10(VIA(0, x0, x2, Nil)) VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Nil, Nil) -> c10(VIA(S(S(x0)), x1, x4, Nil)) VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Nil, Nil) -> c10(VIA(S(0), x0, x2, Nil)) REACH(z0, S(y1), Cons(E(y2, S(y3)), y4)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, S(y3)), y4))) REACH(z0, 0, Cons(E(y1, S(y2)), y3)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, S(y2)), y3))) REACH(z0, S(y1), Cons(E(y2, 0), y3)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, 0), y3))) REACH(z0, 0, Cons(E(y1, 0), y2)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, 0), y2))) REACH(S(y0), z1, Cons(E(S(y2), y3), y4)) -> c29(MEMBER(E(S(y0), z1), Cons(E(S(y2), y3), y4))) REACH(0, z1, Cons(E(S(y1), y2), y3)) -> c29(MEMBER(E(0, z1), Cons(E(S(y1), y2), y3))) REACH(S(y0), z1, Cons(E(0, y2), y3)) -> c29(MEMBER(E(S(y0), z1), Cons(E(0, y2), y3))) REACH(0, z1, Cons(E(0, y1), y2)) -> c29(MEMBER(E(0, z1), Cons(E(0, y1), y2))) REACH(z0, z1, Cons(E(y2, y3), y4)) -> c29(MEMBER(E(z0, z1), Cons(E(y2, y3), y4))) REACH(z0, z1, Nil) -> c29(MEMBER(E(z0, z1), Nil)) REACH(z0, S(y1), Nil) -> c29(MEMBER(E(z0, S(y1)), Nil)) REACH(z0, 0, Nil) -> c29(MEMBER(E(z0, 0), Nil)) REACH(S(y0), z1, Nil) -> c29(MEMBER(E(S(y0), z1), Nil)) REACH(0, z1, Nil) -> c29(MEMBER(E(0, z1), Nil)) VIA(S(S(y0)), z1, Cons(E(S(S(y1)), z3), z4), z5) -> c21(!EQ'(S(S(y0)), S(S(y1)))) MEMBER(E(S(S(y0)), z1), Cons(E(S(S(y2)), z3), z4)) -> c23(EQEDGE(E(S(S(y0)), z1), E(S(S(y2)), z3))) MEMBER(E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)) -> c23(EQEDGE(E(z0, S(S(y1))), E(z2, S(S(y3))))) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(S(y1), y2), y3)), z4) -> c9(VIA(0, z0, Cons(E(S(y1), y2), y3), z4)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(0, y1), y2)), z4) -> c9(VIA(0, z0, Cons(E(0, y1), y2), z4)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), z4) -> c9(VIA(0, z0, Nil, z4)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Nil) -> c9(VIA(0, z0, Nil, Nil)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Cons(y1, y2)) -> c9(VIA(0, z0, Nil, Cons(y1, y2))) S tuples: VIA(0, x1, Cons(E(S(z0), x3), x4), x5) -> c21(VIA[ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) VIA(S(z0), x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) MEMBER(E(x0, S(z0)), Cons(E(x2, S(z1)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), !EQ(z0, z1)), x2, S(z1), x0, S(z0)), E(x0, S(z0)), Cons(E(x2, S(z1)), x4)), EQEDGE(E(x0, S(z0)), E(x2, S(z1)))) MEMBER(E(x0, 0), Cons(E(x2, S(z0)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, S(z0), x0, 0), E(x0, 0), Cons(E(x2, S(z0)), x4)), EQEDGE(E(x0, 0), E(x2, S(z0)))) MEMBER(E(x0, S(z0)), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, 0, x0, S(z0)), E(x0, S(z0)), Cons(E(x2, 0), x4)), EQEDGE(E(x0, S(z0)), E(x2, 0))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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))) REACH(x0, x1, Nil) -> c1(REACH[ITE](False, x0, x1, Nil)) REACH(x0, x1, Nil) -> c1(MEMBER(E(x0, x1), Nil)) VIA(0, x0, Nil, x4) -> c22 VIA(S(x0), x1, Nil, x4) -> c22 VIA(S(S(x0)), x1, Nil, x5) -> c22 VIA(S(0), x0, Nil, x4) -> c22 VIA(x0, x1, Nil, Nil) -> c22 VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5)) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5)) MEMBER(E(x0, x1), Nil) -> c24 MEMBER(E(x0, S(x1)), Nil) -> c24 MEMBER(E(x0, 0), Nil) -> c24 MEMBER(E(S(x0), x1), Nil) -> c24 MEMBER(E(0, x0), Nil) -> c24 VIA(0, x0, Nil, Cons(z2, z3)) -> c22 VIA(S(x0), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(S(x0)), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(0), x0, Nil, Cons(z2, z3)) -> c22 EQEDGE(E(S(S(y0)), z1), E(S(S(y1)), z3)) -> c25(!EQ'(S(S(y0)), S(S(y1)))) EQEDGE(E(z0, S(S(y0))), E(z2, S(S(y1)))) -> c26(!EQ'(S(S(y0)), S(S(y1)))) REACH(z0, S(y1), Cons(E(y2, S(y3)), y4)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, S(y3)), y4))) REACH(z0, 0, Cons(E(y1, S(y2)), y3)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, S(y2)), y3))) REACH(z0, S(y1), Cons(E(y2, 0), y3)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, 0), y3))) REACH(z0, 0, Cons(E(y1, 0), y2)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, 0), y2))) REACH(S(y0), z1, Cons(E(S(y2), y3), y4)) -> c29(MEMBER(E(S(y0), z1), Cons(E(S(y2), y3), y4))) REACH(0, z1, Cons(E(S(y1), y2), y3)) -> c29(MEMBER(E(0, z1), Cons(E(S(y1), y2), y3))) REACH(S(y0), z1, Cons(E(0, y2), y3)) -> c29(MEMBER(E(S(y0), z1), Cons(E(0, y2), y3))) REACH(0, z1, Cons(E(0, y1), y2)) -> c29(MEMBER(E(0, z1), Cons(E(0, y1), y2))) REACH(z0, z1, Cons(E(y2, y3), y4)) -> c29(MEMBER(E(z0, z1), Cons(E(y2, y3), y4))) REACH(z0, z1, Nil) -> c29(MEMBER(E(z0, z1), Nil)) REACH(z0, S(y1), Nil) -> c29(MEMBER(E(z0, S(y1)), Nil)) REACH(z0, 0, Nil) -> c29(MEMBER(E(z0, 0), Nil)) REACH(S(y0), z1, Nil) -> c29(MEMBER(E(S(y0), z1), Nil)) REACH(0, z1, Nil) -> c29(MEMBER(E(0, z1), Nil)) VIA(S(S(y0)), z1, Cons(E(S(S(y1)), z3), z4), z5) -> c21(!EQ'(S(S(y0)), S(S(y1)))) MEMBER(E(S(S(y0)), z1), Cons(E(S(S(y2)), z3), z4)) -> c23(EQEDGE(E(S(S(y0)), z1), E(S(S(y2)), z3))) MEMBER(E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)) -> c23(EQEDGE(E(z0, S(S(y1))), E(z2, S(S(y3))))) K tuples:none Defined Rule Symbols: reach_3, reach[Ite]_4, member_2, member[Ite]_3, eqEdge_2, eqEdge[Ite]_5, and_2, !EQ_2, via_4, via[Ite]_5, via[Let]_5 Defined Pair Symbols: VIA_4, MEMBER_2, REACH_3, VIA[ITE]_5, MEMBER[ITE]_3, REACH[ITE]_4, !EQ'_2, VIA[LET]_5, EQEDGE_2 Compound Symbols: c21_1, c21_2, c23_2, c29_2, c9_1, c12_1, c14_1, c1_1, c22, c_1, c24, c8_2, c8_1, c10_1, c25_1, c26_1, c29_1, c23_1 ---------------------------------------- (97) CdtForwardInstantiationProof (BOTH BOUNDS(ID, ID)) Use forward instantiation to replace VIA(0, x1, Cons(E(S(z0), x3), x4), x5) -> c21(VIA[ITE](False, 0, x1, Cons(E(S(z0), x3), x4), x5)) by VIA(0, z0, Cons(E(S(z1), z2), Cons(E(S(y3), y4), y5)), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(S(y3), y4), y5)), z4)) VIA(0, z0, Cons(E(S(z1), z2), Cons(E(0, y3), y4)), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(0, y3), y4)), z4)) VIA(0, z0, Cons(E(S(z1), z2), Nil), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), z4)) VIA(0, z0, Cons(E(S(z1), z2), Nil), Nil) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Nil)) VIA(0, z0, Cons(E(S(z1), z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Cons(y3, y4))) ---------------------------------------- (98) Obligation: Complexity Dependency Tuples Problem Rules: reach(z0, z1, z2) -> reach[Ite](member(E(z0, z1), z2), z0, z1, z2) reach[Ite](False, z0, z1, z2) -> via(z0, z1, z2, z2) reach[Ite](True, z0, z1, z2) -> Cons(E(z0, z1), Nil) member(z0, Cons(z1, z2)) -> member[Ite](eqEdge(z0, z1), z0, Cons(z1, z2)) member(z0, Nil) -> False member[Ite](False, z0, Cons(z1, z2)) -> member(z0, z2) member[Ite](True, z0, z1) -> True eqEdge(E(z0, z1), E(z2, z3)) -> eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1) eqEdge[Ite](False, z0, z1, z2, z3) -> False eqEdge[Ite](True, z0, z1, z2, z3) -> True and(False, False) -> False and(True, False) -> False and(False, True) -> False and(True, True) -> True !EQ(S(z0), S(z1)) -> !EQ(z0, z1) !EQ(0, S(z0)) -> False !EQ(S(z0), 0) -> False !EQ(0, 0) -> True via(z0, z1, Cons(E(z2, z3), z4), z5) -> via[Ite](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5) via(z0, z1, Nil, z2) -> Nil via[Ite](True, z0, z1, Cons(E(z2, z3), z4), z5) -> via[Let](z0, z1, Cons(E(z2, z3), z4), z5, reach(z3, z1, z5)) via[Ite](False, z0, z1, Cons(z2, z3), z4) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Nil) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Cons(z5, z6)) -> Cons(z2, Cons(z5, z6)) Tuples: VIA(S(z0), x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) MEMBER(E(x0, S(z0)), Cons(E(x2, S(z1)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), !EQ(z0, z1)), x2, S(z1), x0, S(z0)), E(x0, S(z0)), Cons(E(x2, S(z1)), x4)), EQEDGE(E(x0, S(z0)), E(x2, S(z1)))) MEMBER(E(x0, 0), Cons(E(x2, S(z0)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, S(z0), x0, 0), E(x0, 0), Cons(E(x2, S(z0)), x4)), EQEDGE(E(x0, 0), E(x2, S(z0)))) MEMBER(E(x0, S(z0)), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, 0, x0, S(z0)), E(x0, S(z0)), Cons(E(x2, 0), x4)), EQEDGE(E(x0, S(z0)), E(x2, 0))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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))) VIA[ITE](False, S(x0), x1, Cons(E(0, x2), x3), x4) -> c9(VIA(S(x0), x1, x3, x4)) VIA[ITE](False, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), x5) -> c9(VIA(S(S(x0)), x1, x4, x5)) VIA[ITE](False, S(0), x0, Cons(E(S(S(x1)), x2), x3), x4) -> c9(VIA(S(0), x0, x3, x4)) VIA[ITE](False, S(S(x0)), x1, Cons(E(S(0), x2), x3), x4) -> c9(VIA(S(S(x0)), x1, x3, x4)) MEMBER[ITE](False, E(x0, S(x1)), Cons(E(x2, S(x3)), x4)) -> c12(MEMBER(E(x0, S(x1)), x4)) MEMBER[ITE](False, E(x0, 0), Cons(E(x1, S(x2)), x3)) -> c12(MEMBER(E(x0, 0), x3)) MEMBER[ITE](False, E(x0, S(x1)), Cons(E(x2, 0), x3)) -> c12(MEMBER(E(x0, S(x1)), x3)) MEMBER[ITE](False, E(x0, 0), Cons(E(x1, 0), x2)) -> c12(MEMBER(E(x0, 0), x2)) MEMBER[ITE](False, E(S(x0), x1), Cons(E(S(x2), x3), x4)) -> c12(MEMBER(E(S(x0), x1), x4)) MEMBER[ITE](False, E(0, x0), Cons(E(S(x1), x2), x3)) -> c12(MEMBER(E(0, x0), x3)) MEMBER[ITE](False, E(S(x0), x1), Cons(E(0, x2), x3)) -> c12(MEMBER(E(S(x0), x1), x3)) MEMBER[ITE](False, E(0, x0), Cons(E(0, x1), x2)) -> c12(MEMBER(E(0, x0), x2)) REACH[ITE](False, x0, x1, Nil) -> c14(VIA(x0, x1, Nil, Nil)) REACH[ITE](False, x0, x1, Cons(E(x2, x3), x4)) -> c14(VIA(x0, x1, Cons(E(x2, x3), x4), Cons(E(x2, x3), x4))) REACH(x0, x1, Nil) -> c1(REACH[ITE](False, x0, x1, Nil)) REACH(x0, x1, Nil) -> c1(MEMBER(E(x0, x1), Nil)) VIA(0, x0, Nil, x4) -> c22 VIA(S(x0), x1, Nil, x4) -> c22 VIA(S(S(x0)), x1, Nil, x5) -> c22 VIA(S(0), x0, Nil, x4) -> c22 VIA(x0, x1, Nil, Nil) -> c22 !EQ'(S(S(y0)), S(S(y1))) -> c(!EQ'(S(y0), S(y1))) VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5)) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5)) MEMBER(E(x0, x1), Nil) -> c24 MEMBER(E(x0, S(x1)), Nil) -> c24 MEMBER(E(x0, 0), Nil) -> c24 MEMBER(E(S(x0), x1), Nil) -> c24 MEMBER(E(0, x0), Nil) -> c24 VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), Cons(z5, z6)) -> c8(VIA[LET](0, x0, Cons(E(0, x1), x2), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x1, x0), z5), E(x1, x0), Cons(z5, z6)), x1, x0, Cons(z5, z6))), REACH(x1, x0, Cons(z5, z6))) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(z5, z6)) -> c8(VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x3, x1), z5), E(x3, x1), Cons(z5, z6)), x3, x1, Cons(z5, z6))), REACH(x3, x1, Cons(z5, z6))) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), Cons(z5, z6)) -> c8(VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x1, x0), z5), E(x1, x0), Cons(z5, z6)), x1, x0, Cons(z5, z6))), REACH(x1, x0, Cons(z5, z6))) VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), x3) -> c8(REACH(x1, x0, x3)) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), x5) -> c8(REACH(x3, x1, x5)) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), x3) -> c8(REACH(x1, x0, x3)) VIA[LET](0, x0, Cons(E(0, x1), x2), Cons(x3, x4), Nil) -> c10(VIA(0, x0, x2, Cons(x3, x4))) VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(x5, x6), Nil) -> c10(VIA(S(S(x0)), x1, x4, Cons(x5, x6))) VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Cons(x3, x4), Nil) -> c10(VIA(S(0), x0, x2, Cons(x3, x4))) VIA(0, x0, Nil, Cons(z2, z3)) -> c22 VIA(S(x0), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(S(x0)), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(0), x0, Nil, Cons(z2, z3)) -> c22 VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), Nil) -> c8(VIA[LET](0, x0, Cons(E(0, x1), x2), Nil, Nil), REACH(x1, x0, Nil)) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Nil) -> c8(VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Nil, Nil), REACH(x3, x1, Nil)) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), Nil) -> c8(VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Nil, Nil), REACH(x1, x0, Nil)) EQEDGE(E(S(S(y0)), z1), E(S(S(y1)), z3)) -> c25(!EQ'(S(S(y0)), S(S(y1)))) EQEDGE(E(z0, S(S(y0))), E(z2, S(S(y1)))) -> c26(!EQ'(S(S(y0)), S(S(y1)))) VIA[LET](0, x0, Cons(E(0, x1), x2), Nil, Nil) -> c10(VIA(0, x0, x2, Nil)) VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Nil, Nil) -> c10(VIA(S(S(x0)), x1, x4, Nil)) VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Nil, Nil) -> c10(VIA(S(0), x0, x2, Nil)) REACH(z0, S(y1), Cons(E(y2, S(y3)), y4)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, S(y3)), y4))) REACH(z0, 0, Cons(E(y1, S(y2)), y3)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, S(y2)), y3))) REACH(z0, S(y1), Cons(E(y2, 0), y3)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, 0), y3))) REACH(z0, 0, Cons(E(y1, 0), y2)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, 0), y2))) REACH(S(y0), z1, Cons(E(S(y2), y3), y4)) -> c29(MEMBER(E(S(y0), z1), Cons(E(S(y2), y3), y4))) REACH(0, z1, Cons(E(S(y1), y2), y3)) -> c29(MEMBER(E(0, z1), Cons(E(S(y1), y2), y3))) REACH(S(y0), z1, Cons(E(0, y2), y3)) -> c29(MEMBER(E(S(y0), z1), Cons(E(0, y2), y3))) REACH(0, z1, Cons(E(0, y1), y2)) -> c29(MEMBER(E(0, z1), Cons(E(0, y1), y2))) REACH(z0, z1, Cons(E(y2, y3), y4)) -> c29(MEMBER(E(z0, z1), Cons(E(y2, y3), y4))) REACH(z0, z1, Nil) -> c29(MEMBER(E(z0, z1), Nil)) REACH(z0, S(y1), Nil) -> c29(MEMBER(E(z0, S(y1)), Nil)) REACH(z0, 0, Nil) -> c29(MEMBER(E(z0, 0), Nil)) REACH(S(y0), z1, Nil) -> c29(MEMBER(E(S(y0), z1), Nil)) REACH(0, z1, Nil) -> c29(MEMBER(E(0, z1), Nil)) VIA(S(S(y0)), z1, Cons(E(S(S(y1)), z3), z4), z5) -> c21(!EQ'(S(S(y0)), S(S(y1)))) MEMBER(E(S(S(y0)), z1), Cons(E(S(S(y2)), z3), z4)) -> c23(EQEDGE(E(S(S(y0)), z1), E(S(S(y2)), z3))) MEMBER(E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)) -> c23(EQEDGE(E(z0, S(S(y1))), E(z2, S(S(y3))))) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(S(y1), y2), y3)), z4) -> c9(VIA(0, z0, Cons(E(S(y1), y2), y3), z4)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(0, y1), y2)), z4) -> c9(VIA(0, z0, Cons(E(0, y1), y2), z4)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), z4) -> c9(VIA(0, z0, Nil, z4)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Nil) -> c9(VIA(0, z0, Nil, Nil)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Cons(y1, y2)) -> c9(VIA(0, z0, Nil, Cons(y1, y2))) VIA(0, z0, Cons(E(S(z1), z2), Cons(E(S(y3), y4), y5)), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(S(y3), y4), y5)), z4)) VIA(0, z0, Cons(E(S(z1), z2), Cons(E(0, y3), y4)), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(0, y3), y4)), z4)) VIA(0, z0, Cons(E(S(z1), z2), Nil), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), z4)) VIA(0, z0, Cons(E(S(z1), z2), Nil), Nil) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Nil)) VIA(0, z0, Cons(E(S(z1), z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Cons(y3, y4))) S tuples: VIA(S(z0), x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) MEMBER(E(x0, S(z0)), Cons(E(x2, S(z1)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), !EQ(z0, z1)), x2, S(z1), x0, S(z0)), E(x0, S(z0)), Cons(E(x2, S(z1)), x4)), EQEDGE(E(x0, S(z0)), E(x2, S(z1)))) MEMBER(E(x0, 0), Cons(E(x2, S(z0)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, S(z0), x0, 0), E(x0, 0), Cons(E(x2, S(z0)), x4)), EQEDGE(E(x0, 0), E(x2, S(z0)))) MEMBER(E(x0, S(z0)), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, 0, x0, S(z0)), E(x0, S(z0)), Cons(E(x2, 0), x4)), EQEDGE(E(x0, S(z0)), E(x2, 0))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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))) REACH(x0, x1, Nil) -> c1(REACH[ITE](False, x0, x1, Nil)) REACH(x0, x1, Nil) -> c1(MEMBER(E(x0, x1), Nil)) VIA(0, x0, Nil, x4) -> c22 VIA(S(x0), x1, Nil, x4) -> c22 VIA(S(S(x0)), x1, Nil, x5) -> c22 VIA(S(0), x0, Nil, x4) -> c22 VIA(x0, x1, Nil, Nil) -> c22 VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5)) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5)) MEMBER(E(x0, x1), Nil) -> c24 MEMBER(E(x0, S(x1)), Nil) -> c24 MEMBER(E(x0, 0), Nil) -> c24 MEMBER(E(S(x0), x1), Nil) -> c24 MEMBER(E(0, x0), Nil) -> c24 VIA(0, x0, Nil, Cons(z2, z3)) -> c22 VIA(S(x0), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(S(x0)), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(0), x0, Nil, Cons(z2, z3)) -> c22 EQEDGE(E(S(S(y0)), z1), E(S(S(y1)), z3)) -> c25(!EQ'(S(S(y0)), S(S(y1)))) EQEDGE(E(z0, S(S(y0))), E(z2, S(S(y1)))) -> c26(!EQ'(S(S(y0)), S(S(y1)))) REACH(z0, S(y1), Cons(E(y2, S(y3)), y4)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, S(y3)), y4))) REACH(z0, 0, Cons(E(y1, S(y2)), y3)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, S(y2)), y3))) REACH(z0, S(y1), Cons(E(y2, 0), y3)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, 0), y3))) REACH(z0, 0, Cons(E(y1, 0), y2)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, 0), y2))) REACH(S(y0), z1, Cons(E(S(y2), y3), y4)) -> c29(MEMBER(E(S(y0), z1), Cons(E(S(y2), y3), y4))) REACH(0, z1, Cons(E(S(y1), y2), y3)) -> c29(MEMBER(E(0, z1), Cons(E(S(y1), y2), y3))) REACH(S(y0), z1, Cons(E(0, y2), y3)) -> c29(MEMBER(E(S(y0), z1), Cons(E(0, y2), y3))) REACH(0, z1, Cons(E(0, y1), y2)) -> c29(MEMBER(E(0, z1), Cons(E(0, y1), y2))) REACH(z0, z1, Cons(E(y2, y3), y4)) -> c29(MEMBER(E(z0, z1), Cons(E(y2, y3), y4))) REACH(z0, z1, Nil) -> c29(MEMBER(E(z0, z1), Nil)) REACH(z0, S(y1), Nil) -> c29(MEMBER(E(z0, S(y1)), Nil)) REACH(z0, 0, Nil) -> c29(MEMBER(E(z0, 0), Nil)) REACH(S(y0), z1, Nil) -> c29(MEMBER(E(S(y0), z1), Nil)) REACH(0, z1, Nil) -> c29(MEMBER(E(0, z1), Nil)) VIA(S(S(y0)), z1, Cons(E(S(S(y1)), z3), z4), z5) -> c21(!EQ'(S(S(y0)), S(S(y1)))) MEMBER(E(S(S(y0)), z1), Cons(E(S(S(y2)), z3), z4)) -> c23(EQEDGE(E(S(S(y0)), z1), E(S(S(y2)), z3))) MEMBER(E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)) -> c23(EQEDGE(E(z0, S(S(y1))), E(z2, S(S(y3))))) VIA(0, z0, Cons(E(S(z1), z2), Cons(E(S(y3), y4), y5)), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(S(y3), y4), y5)), z4)) VIA(0, z0, Cons(E(S(z1), z2), Cons(E(0, y3), y4)), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(0, y3), y4)), z4)) VIA(0, z0, Cons(E(S(z1), z2), Nil), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), z4)) VIA(0, z0, Cons(E(S(z1), z2), Nil), Nil) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Nil)) VIA(0, z0, Cons(E(S(z1), z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Cons(y3, y4))) K tuples:none Defined Rule Symbols: reach_3, reach[Ite]_4, member_2, member[Ite]_3, eqEdge_2, eqEdge[Ite]_5, and_2, !EQ_2, via_4, via[Ite]_5, via[Let]_5 Defined Pair Symbols: VIA_4, MEMBER_2, REACH_3, VIA[ITE]_5, MEMBER[ITE]_3, REACH[ITE]_4, !EQ'_2, VIA[LET]_5, EQEDGE_2 Compound Symbols: c21_1, c21_2, c23_2, c29_2, c9_1, c12_1, c14_1, c1_1, c22, c_1, c24, c8_2, c8_1, c10_1, c25_1, c26_1, c29_1, c23_1 ---------------------------------------- (99) CdtForwardInstantiationProof (BOTH BOUNDS(ID, ID)) Use forward instantiation to replace VIA[ITE](False, S(x0), x1, Cons(E(0, x2), x3), x4) -> c9(VIA(S(x0), x1, x3, x4)) by VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Cons(E(0, y2), y3)), z4) -> c9(VIA(S(z0), z1, Cons(E(0, y2), y3), z4)) VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4) -> c9(VIA(S(S(y0)), z1, Cons(E(S(S(y2)), y3), y4), z4)) VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), z4) -> c9(VIA(S(z0), z1, Nil, z4)) VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), z4) -> c9(VIA(S(S(y0)), z1, Nil, z4)) VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), z4) -> c9(VIA(S(0), z1, Nil, z4)) VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Nil) -> c9(VIA(S(z0), z1, Nil, Nil)) VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(S(y1)), y2), y3)), z4) -> c9(VIA(S(0), z1, Cons(E(S(S(y1)), y2), y3), z4)) VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4) -> c9(VIA(S(S(y0)), z1, Cons(E(S(0), y2), y3), z4)) VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(0), y1), y2)), z4) -> c9(VIA(S(0), z1, Cons(E(S(0), y1), y2), z4)) VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Cons(y2, y3)) -> c9(VIA(S(z0), z1, Nil, Cons(y2, y3))) VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y2, y3)) -> c9(VIA(S(S(y0)), z1, Nil, Cons(y2, y3))) VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), Cons(y1, y2)) -> c9(VIA(S(0), z1, Nil, Cons(y1, y2))) ---------------------------------------- (100) Obligation: Complexity Dependency Tuples Problem Rules: reach(z0, z1, z2) -> reach[Ite](member(E(z0, z1), z2), z0, z1, z2) reach[Ite](False, z0, z1, z2) -> via(z0, z1, z2, z2) reach[Ite](True, z0, z1, z2) -> Cons(E(z0, z1), Nil) member(z0, Cons(z1, z2)) -> member[Ite](eqEdge(z0, z1), z0, Cons(z1, z2)) member(z0, Nil) -> False member[Ite](False, z0, Cons(z1, z2)) -> member(z0, z2) member[Ite](True, z0, z1) -> True eqEdge(E(z0, z1), E(z2, z3)) -> eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1) eqEdge[Ite](False, z0, z1, z2, z3) -> False eqEdge[Ite](True, z0, z1, z2, z3) -> True and(False, False) -> False and(True, False) -> False and(False, True) -> False and(True, True) -> True !EQ(S(z0), S(z1)) -> !EQ(z0, z1) !EQ(0, S(z0)) -> False !EQ(S(z0), 0) -> False !EQ(0, 0) -> True via(z0, z1, Cons(E(z2, z3), z4), z5) -> via[Ite](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5) via(z0, z1, Nil, z2) -> Nil via[Ite](True, z0, z1, Cons(E(z2, z3), z4), z5) -> via[Let](z0, z1, Cons(E(z2, z3), z4), z5, reach(z3, z1, z5)) via[Ite](False, z0, z1, Cons(z2, z3), z4) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Nil) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Cons(z5, z6)) -> Cons(z2, Cons(z5, z6)) Tuples: VIA(S(z0), x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) MEMBER(E(x0, S(z0)), Cons(E(x2, S(z1)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), !EQ(z0, z1)), x2, S(z1), x0, S(z0)), E(x0, S(z0)), Cons(E(x2, S(z1)), x4)), EQEDGE(E(x0, S(z0)), E(x2, S(z1)))) MEMBER(E(x0, 0), Cons(E(x2, S(z0)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, S(z0), x0, 0), E(x0, 0), Cons(E(x2, S(z0)), x4)), EQEDGE(E(x0, 0), E(x2, S(z0)))) MEMBER(E(x0, S(z0)), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, 0, x0, S(z0)), E(x0, S(z0)), Cons(E(x2, 0), x4)), EQEDGE(E(x0, S(z0)), E(x2, 0))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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))) VIA[ITE](False, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), x5) -> c9(VIA(S(S(x0)), x1, x4, x5)) VIA[ITE](False, S(0), x0, Cons(E(S(S(x1)), x2), x3), x4) -> c9(VIA(S(0), x0, x3, x4)) VIA[ITE](False, S(S(x0)), x1, Cons(E(S(0), x2), x3), x4) -> c9(VIA(S(S(x0)), x1, x3, x4)) MEMBER[ITE](False, E(x0, S(x1)), Cons(E(x2, S(x3)), x4)) -> c12(MEMBER(E(x0, S(x1)), x4)) MEMBER[ITE](False, E(x0, 0), Cons(E(x1, S(x2)), x3)) -> c12(MEMBER(E(x0, 0), x3)) MEMBER[ITE](False, E(x0, S(x1)), Cons(E(x2, 0), x3)) -> c12(MEMBER(E(x0, S(x1)), x3)) MEMBER[ITE](False, E(x0, 0), Cons(E(x1, 0), x2)) -> c12(MEMBER(E(x0, 0), x2)) MEMBER[ITE](False, E(S(x0), x1), Cons(E(S(x2), x3), x4)) -> c12(MEMBER(E(S(x0), x1), x4)) MEMBER[ITE](False, E(0, x0), Cons(E(S(x1), x2), x3)) -> c12(MEMBER(E(0, x0), x3)) MEMBER[ITE](False, E(S(x0), x1), Cons(E(0, x2), x3)) -> c12(MEMBER(E(S(x0), x1), x3)) MEMBER[ITE](False, E(0, x0), Cons(E(0, x1), x2)) -> c12(MEMBER(E(0, x0), x2)) REACH[ITE](False, x0, x1, Nil) -> c14(VIA(x0, x1, Nil, Nil)) REACH[ITE](False, x0, x1, Cons(E(x2, x3), x4)) -> c14(VIA(x0, x1, Cons(E(x2, x3), x4), Cons(E(x2, x3), x4))) REACH(x0, x1, Nil) -> c1(REACH[ITE](False, x0, x1, Nil)) REACH(x0, x1, Nil) -> c1(MEMBER(E(x0, x1), Nil)) VIA(0, x0, Nil, x4) -> c22 VIA(S(x0), x1, Nil, x4) -> c22 VIA(S(S(x0)), x1, Nil, x5) -> c22 VIA(S(0), x0, Nil, x4) -> c22 VIA(x0, x1, Nil, Nil) -> c22 !EQ'(S(S(y0)), S(S(y1))) -> c(!EQ'(S(y0), S(y1))) VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5)) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5)) MEMBER(E(x0, x1), Nil) -> c24 MEMBER(E(x0, S(x1)), Nil) -> c24 MEMBER(E(x0, 0), Nil) -> c24 MEMBER(E(S(x0), x1), Nil) -> c24 MEMBER(E(0, x0), Nil) -> c24 VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), Cons(z5, z6)) -> c8(VIA[LET](0, x0, Cons(E(0, x1), x2), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x1, x0), z5), E(x1, x0), Cons(z5, z6)), x1, x0, Cons(z5, z6))), REACH(x1, x0, Cons(z5, z6))) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(z5, z6)) -> c8(VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x3, x1), z5), E(x3, x1), Cons(z5, z6)), x3, x1, Cons(z5, z6))), REACH(x3, x1, Cons(z5, z6))) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), Cons(z5, z6)) -> c8(VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x1, x0), z5), E(x1, x0), Cons(z5, z6)), x1, x0, Cons(z5, z6))), REACH(x1, x0, Cons(z5, z6))) VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), x3) -> c8(REACH(x1, x0, x3)) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), x5) -> c8(REACH(x3, x1, x5)) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), x3) -> c8(REACH(x1, x0, x3)) VIA[LET](0, x0, Cons(E(0, x1), x2), Cons(x3, x4), Nil) -> c10(VIA(0, x0, x2, Cons(x3, x4))) VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(x5, x6), Nil) -> c10(VIA(S(S(x0)), x1, x4, Cons(x5, x6))) VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Cons(x3, x4), Nil) -> c10(VIA(S(0), x0, x2, Cons(x3, x4))) VIA(0, x0, Nil, Cons(z2, z3)) -> c22 VIA(S(x0), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(S(x0)), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(0), x0, Nil, Cons(z2, z3)) -> c22 VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), Nil) -> c8(VIA[LET](0, x0, Cons(E(0, x1), x2), Nil, Nil), REACH(x1, x0, Nil)) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Nil) -> c8(VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Nil, Nil), REACH(x3, x1, Nil)) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), Nil) -> c8(VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Nil, Nil), REACH(x1, x0, Nil)) EQEDGE(E(S(S(y0)), z1), E(S(S(y1)), z3)) -> c25(!EQ'(S(S(y0)), S(S(y1)))) EQEDGE(E(z0, S(S(y0))), E(z2, S(S(y1)))) -> c26(!EQ'(S(S(y0)), S(S(y1)))) VIA[LET](0, x0, Cons(E(0, x1), x2), Nil, Nil) -> c10(VIA(0, x0, x2, Nil)) VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Nil, Nil) -> c10(VIA(S(S(x0)), x1, x4, Nil)) VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Nil, Nil) -> c10(VIA(S(0), x0, x2, Nil)) REACH(z0, S(y1), Cons(E(y2, S(y3)), y4)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, S(y3)), y4))) REACH(z0, 0, Cons(E(y1, S(y2)), y3)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, S(y2)), y3))) REACH(z0, S(y1), Cons(E(y2, 0), y3)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, 0), y3))) REACH(z0, 0, Cons(E(y1, 0), y2)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, 0), y2))) REACH(S(y0), z1, Cons(E(S(y2), y3), y4)) -> c29(MEMBER(E(S(y0), z1), Cons(E(S(y2), y3), y4))) REACH(0, z1, Cons(E(S(y1), y2), y3)) -> c29(MEMBER(E(0, z1), Cons(E(S(y1), y2), y3))) REACH(S(y0), z1, Cons(E(0, y2), y3)) -> c29(MEMBER(E(S(y0), z1), Cons(E(0, y2), y3))) REACH(0, z1, Cons(E(0, y1), y2)) -> c29(MEMBER(E(0, z1), Cons(E(0, y1), y2))) REACH(z0, z1, Cons(E(y2, y3), y4)) -> c29(MEMBER(E(z0, z1), Cons(E(y2, y3), y4))) REACH(z0, z1, Nil) -> c29(MEMBER(E(z0, z1), Nil)) REACH(z0, S(y1), Nil) -> c29(MEMBER(E(z0, S(y1)), Nil)) REACH(z0, 0, Nil) -> c29(MEMBER(E(z0, 0), Nil)) REACH(S(y0), z1, Nil) -> c29(MEMBER(E(S(y0), z1), Nil)) REACH(0, z1, Nil) -> c29(MEMBER(E(0, z1), Nil)) VIA(S(S(y0)), z1, Cons(E(S(S(y1)), z3), z4), z5) -> c21(!EQ'(S(S(y0)), S(S(y1)))) MEMBER(E(S(S(y0)), z1), Cons(E(S(S(y2)), z3), z4)) -> c23(EQEDGE(E(S(S(y0)), z1), E(S(S(y2)), z3))) MEMBER(E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)) -> c23(EQEDGE(E(z0, S(S(y1))), E(z2, S(S(y3))))) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(S(y1), y2), y3)), z4) -> c9(VIA(0, z0, Cons(E(S(y1), y2), y3), z4)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(0, y1), y2)), z4) -> c9(VIA(0, z0, Cons(E(0, y1), y2), z4)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), z4) -> c9(VIA(0, z0, Nil, z4)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Nil) -> c9(VIA(0, z0, Nil, Nil)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Cons(y1, y2)) -> c9(VIA(0, z0, Nil, Cons(y1, y2))) VIA(0, z0, Cons(E(S(z1), z2), Cons(E(S(y3), y4), y5)), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(S(y3), y4), y5)), z4)) VIA(0, z0, Cons(E(S(z1), z2), Cons(E(0, y3), y4)), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(0, y3), y4)), z4)) VIA(0, z0, Cons(E(S(z1), z2), Nil), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), z4)) VIA(0, z0, Cons(E(S(z1), z2), Nil), Nil) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Nil)) VIA(0, z0, Cons(E(S(z1), z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Cons(y3, y4))) VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Cons(E(0, y2), y3)), z4) -> c9(VIA(S(z0), z1, Cons(E(0, y2), y3), z4)) VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4) -> c9(VIA(S(S(y0)), z1, Cons(E(S(S(y2)), y3), y4), z4)) VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), z4) -> c9(VIA(S(z0), z1, Nil, z4)) VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), z4) -> c9(VIA(S(S(y0)), z1, Nil, z4)) VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), z4) -> c9(VIA(S(0), z1, Nil, z4)) VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Nil) -> c9(VIA(S(z0), z1, Nil, Nil)) VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(S(y1)), y2), y3)), z4) -> c9(VIA(S(0), z1, Cons(E(S(S(y1)), y2), y3), z4)) VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4) -> c9(VIA(S(S(y0)), z1, Cons(E(S(0), y2), y3), z4)) VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(0), y1), y2)), z4) -> c9(VIA(S(0), z1, Cons(E(S(0), y1), y2), z4)) VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Cons(y2, y3)) -> c9(VIA(S(z0), z1, Nil, Cons(y2, y3))) VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y2, y3)) -> c9(VIA(S(S(y0)), z1, Nil, Cons(y2, y3))) VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), Cons(y1, y2)) -> c9(VIA(S(0), z1, Nil, Cons(y1, y2))) S tuples: VIA(S(z0), x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) MEMBER(E(x0, S(z0)), Cons(E(x2, S(z1)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), !EQ(z0, z1)), x2, S(z1), x0, S(z0)), E(x0, S(z0)), Cons(E(x2, S(z1)), x4)), EQEDGE(E(x0, S(z0)), E(x2, S(z1)))) MEMBER(E(x0, 0), Cons(E(x2, S(z0)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, S(z0), x0, 0), E(x0, 0), Cons(E(x2, S(z0)), x4)), EQEDGE(E(x0, 0), E(x2, S(z0)))) MEMBER(E(x0, S(z0)), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, 0, x0, S(z0)), E(x0, S(z0)), Cons(E(x2, 0), x4)), EQEDGE(E(x0, S(z0)), E(x2, 0))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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))) REACH(x0, x1, Nil) -> c1(REACH[ITE](False, x0, x1, Nil)) REACH(x0, x1, Nil) -> c1(MEMBER(E(x0, x1), Nil)) VIA(0, x0, Nil, x4) -> c22 VIA(S(x0), x1, Nil, x4) -> c22 VIA(S(S(x0)), x1, Nil, x5) -> c22 VIA(S(0), x0, Nil, x4) -> c22 VIA(x0, x1, Nil, Nil) -> c22 VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5)) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5)) MEMBER(E(x0, x1), Nil) -> c24 MEMBER(E(x0, S(x1)), Nil) -> c24 MEMBER(E(x0, 0), Nil) -> c24 MEMBER(E(S(x0), x1), Nil) -> c24 MEMBER(E(0, x0), Nil) -> c24 VIA(0, x0, Nil, Cons(z2, z3)) -> c22 VIA(S(x0), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(S(x0)), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(0), x0, Nil, Cons(z2, z3)) -> c22 EQEDGE(E(S(S(y0)), z1), E(S(S(y1)), z3)) -> c25(!EQ'(S(S(y0)), S(S(y1)))) EQEDGE(E(z0, S(S(y0))), E(z2, S(S(y1)))) -> c26(!EQ'(S(S(y0)), S(S(y1)))) REACH(z0, S(y1), Cons(E(y2, S(y3)), y4)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, S(y3)), y4))) REACH(z0, 0, Cons(E(y1, S(y2)), y3)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, S(y2)), y3))) REACH(z0, S(y1), Cons(E(y2, 0), y3)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, 0), y3))) REACH(z0, 0, Cons(E(y1, 0), y2)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, 0), y2))) REACH(S(y0), z1, Cons(E(S(y2), y3), y4)) -> c29(MEMBER(E(S(y0), z1), Cons(E(S(y2), y3), y4))) REACH(0, z1, Cons(E(S(y1), y2), y3)) -> c29(MEMBER(E(0, z1), Cons(E(S(y1), y2), y3))) REACH(S(y0), z1, Cons(E(0, y2), y3)) -> c29(MEMBER(E(S(y0), z1), Cons(E(0, y2), y3))) REACH(0, z1, Cons(E(0, y1), y2)) -> c29(MEMBER(E(0, z1), Cons(E(0, y1), y2))) REACH(z0, z1, Cons(E(y2, y3), y4)) -> c29(MEMBER(E(z0, z1), Cons(E(y2, y3), y4))) REACH(z0, z1, Nil) -> c29(MEMBER(E(z0, z1), Nil)) REACH(z0, S(y1), Nil) -> c29(MEMBER(E(z0, S(y1)), Nil)) REACH(z0, 0, Nil) -> c29(MEMBER(E(z0, 0), Nil)) REACH(S(y0), z1, Nil) -> c29(MEMBER(E(S(y0), z1), Nil)) REACH(0, z1, Nil) -> c29(MEMBER(E(0, z1), Nil)) VIA(S(S(y0)), z1, Cons(E(S(S(y1)), z3), z4), z5) -> c21(!EQ'(S(S(y0)), S(S(y1)))) MEMBER(E(S(S(y0)), z1), Cons(E(S(S(y2)), z3), z4)) -> c23(EQEDGE(E(S(S(y0)), z1), E(S(S(y2)), z3))) MEMBER(E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)) -> c23(EQEDGE(E(z0, S(S(y1))), E(z2, S(S(y3))))) VIA(0, z0, Cons(E(S(z1), z2), Cons(E(S(y3), y4), y5)), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(S(y3), y4), y5)), z4)) VIA(0, z0, Cons(E(S(z1), z2), Cons(E(0, y3), y4)), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(0, y3), y4)), z4)) VIA(0, z0, Cons(E(S(z1), z2), Nil), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), z4)) VIA(0, z0, Cons(E(S(z1), z2), Nil), Nil) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Nil)) VIA(0, z0, Cons(E(S(z1), z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Cons(y3, y4))) K tuples:none Defined Rule Symbols: reach_3, reach[Ite]_4, member_2, member[Ite]_3, eqEdge_2, eqEdge[Ite]_5, and_2, !EQ_2, via_4, via[Ite]_5, via[Let]_5 Defined Pair Symbols: VIA_4, MEMBER_2, REACH_3, VIA[ITE]_5, MEMBER[ITE]_3, REACH[ITE]_4, !EQ'_2, VIA[LET]_5, EQEDGE_2 Compound Symbols: c21_1, c21_2, c23_2, c29_2, c9_1, c12_1, c14_1, c1_1, c22, c_1, c24, c8_2, c8_1, c10_1, c25_1, c26_1, c29_1, c23_1 ---------------------------------------- (101) CdtForwardInstantiationProof (BOTH BOUNDS(ID, ID)) Use forward instantiation to replace VIA(S(z0), x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](False, S(z0), x1, Cons(E(0, x3), x4), x5)) by VIA(S(z0), z1, Cons(E(0, z2), Cons(E(0, y3), y4)), z4) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Cons(E(0, y3), y4)), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y3)), y4), y5)), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y3)), y4), y5)), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), z4)) VIA(S(0), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), Nil) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Nil)) VIA(S(0), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y3), y4)), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y3), y4)), z4)) VIA(S(0), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Cons(y3, y4))) VIA(S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y3, y4))) VIA(S(0), z1, Cons(E(0, z2), Nil), Cons(y2, y3)) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), Cons(y2, y3))) ---------------------------------------- (102) Obligation: Complexity Dependency Tuples Problem Rules: reach(z0, z1, z2) -> reach[Ite](member(E(z0, z1), z2), z0, z1, z2) reach[Ite](False, z0, z1, z2) -> via(z0, z1, z2, z2) reach[Ite](True, z0, z1, z2) -> Cons(E(z0, z1), Nil) member(z0, Cons(z1, z2)) -> member[Ite](eqEdge(z0, z1), z0, Cons(z1, z2)) member(z0, Nil) -> False member[Ite](False, z0, Cons(z1, z2)) -> member(z0, z2) member[Ite](True, z0, z1) -> True eqEdge(E(z0, z1), E(z2, z3)) -> eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1) eqEdge[Ite](False, z0, z1, z2, z3) -> False eqEdge[Ite](True, z0, z1, z2, z3) -> True and(False, False) -> False and(True, False) -> False and(False, True) -> False and(True, True) -> True !EQ(S(z0), S(z1)) -> !EQ(z0, z1) !EQ(0, S(z0)) -> False !EQ(S(z0), 0) -> False !EQ(0, 0) -> True via(z0, z1, Cons(E(z2, z3), z4), z5) -> via[Ite](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5) via(z0, z1, Nil, z2) -> Nil via[Ite](True, z0, z1, Cons(E(z2, z3), z4), z5) -> via[Let](z0, z1, Cons(E(z2, z3), z4), z5, reach(z3, z1, z5)) via[Ite](False, z0, z1, Cons(z2, z3), z4) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Nil) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Cons(z5, z6)) -> Cons(z2, Cons(z5, z6)) Tuples: VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) MEMBER(E(x0, S(z0)), Cons(E(x2, S(z1)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), !EQ(z0, z1)), x2, S(z1), x0, S(z0)), E(x0, S(z0)), Cons(E(x2, S(z1)), x4)), EQEDGE(E(x0, S(z0)), E(x2, S(z1)))) MEMBER(E(x0, 0), Cons(E(x2, S(z0)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, S(z0), x0, 0), E(x0, 0), Cons(E(x2, S(z0)), x4)), EQEDGE(E(x0, 0), E(x2, S(z0)))) MEMBER(E(x0, S(z0)), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, 0, x0, S(z0)), E(x0, S(z0)), Cons(E(x2, 0), x4)), EQEDGE(E(x0, S(z0)), E(x2, 0))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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))) VIA[ITE](False, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), x5) -> c9(VIA(S(S(x0)), x1, x4, x5)) VIA[ITE](False, S(0), x0, Cons(E(S(S(x1)), x2), x3), x4) -> c9(VIA(S(0), x0, x3, x4)) VIA[ITE](False, S(S(x0)), x1, Cons(E(S(0), x2), x3), x4) -> c9(VIA(S(S(x0)), x1, x3, x4)) MEMBER[ITE](False, E(x0, S(x1)), Cons(E(x2, S(x3)), x4)) -> c12(MEMBER(E(x0, S(x1)), x4)) MEMBER[ITE](False, E(x0, 0), Cons(E(x1, S(x2)), x3)) -> c12(MEMBER(E(x0, 0), x3)) MEMBER[ITE](False, E(x0, S(x1)), Cons(E(x2, 0), x3)) -> c12(MEMBER(E(x0, S(x1)), x3)) MEMBER[ITE](False, E(x0, 0), Cons(E(x1, 0), x2)) -> c12(MEMBER(E(x0, 0), x2)) MEMBER[ITE](False, E(S(x0), x1), Cons(E(S(x2), x3), x4)) -> c12(MEMBER(E(S(x0), x1), x4)) MEMBER[ITE](False, E(0, x0), Cons(E(S(x1), x2), x3)) -> c12(MEMBER(E(0, x0), x3)) MEMBER[ITE](False, E(S(x0), x1), Cons(E(0, x2), x3)) -> c12(MEMBER(E(S(x0), x1), x3)) MEMBER[ITE](False, E(0, x0), Cons(E(0, x1), x2)) -> c12(MEMBER(E(0, x0), x2)) REACH[ITE](False, x0, x1, Nil) -> c14(VIA(x0, x1, Nil, Nil)) REACH[ITE](False, x0, x1, Cons(E(x2, x3), x4)) -> c14(VIA(x0, x1, Cons(E(x2, x3), x4), Cons(E(x2, x3), x4))) REACH(x0, x1, Nil) -> c1(REACH[ITE](False, x0, x1, Nil)) REACH(x0, x1, Nil) -> c1(MEMBER(E(x0, x1), Nil)) VIA(0, x0, Nil, x4) -> c22 VIA(S(x0), x1, Nil, x4) -> c22 VIA(S(S(x0)), x1, Nil, x5) -> c22 VIA(S(0), x0, Nil, x4) -> c22 VIA(x0, x1, Nil, Nil) -> c22 !EQ'(S(S(y0)), S(S(y1))) -> c(!EQ'(S(y0), S(y1))) VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5)) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5)) MEMBER(E(x0, x1), Nil) -> c24 MEMBER(E(x0, S(x1)), Nil) -> c24 MEMBER(E(x0, 0), Nil) -> c24 MEMBER(E(S(x0), x1), Nil) -> c24 MEMBER(E(0, x0), Nil) -> c24 VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), Cons(z5, z6)) -> c8(VIA[LET](0, x0, Cons(E(0, x1), x2), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x1, x0), z5), E(x1, x0), Cons(z5, z6)), x1, x0, Cons(z5, z6))), REACH(x1, x0, Cons(z5, z6))) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(z5, z6)) -> c8(VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x3, x1), z5), E(x3, x1), Cons(z5, z6)), x3, x1, Cons(z5, z6))), REACH(x3, x1, Cons(z5, z6))) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), Cons(z5, z6)) -> c8(VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x1, x0), z5), E(x1, x0), Cons(z5, z6)), x1, x0, Cons(z5, z6))), REACH(x1, x0, Cons(z5, z6))) VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), x3) -> c8(REACH(x1, x0, x3)) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), x5) -> c8(REACH(x3, x1, x5)) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), x3) -> c8(REACH(x1, x0, x3)) VIA[LET](0, x0, Cons(E(0, x1), x2), Cons(x3, x4), Nil) -> c10(VIA(0, x0, x2, Cons(x3, x4))) VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(x5, x6), Nil) -> c10(VIA(S(S(x0)), x1, x4, Cons(x5, x6))) VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Cons(x3, x4), Nil) -> c10(VIA(S(0), x0, x2, Cons(x3, x4))) VIA(0, x0, Nil, Cons(z2, z3)) -> c22 VIA(S(x0), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(S(x0)), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(0), x0, Nil, Cons(z2, z3)) -> c22 VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), Nil) -> c8(VIA[LET](0, x0, Cons(E(0, x1), x2), Nil, Nil), REACH(x1, x0, Nil)) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Nil) -> c8(VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Nil, Nil), REACH(x3, x1, Nil)) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), Nil) -> c8(VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Nil, Nil), REACH(x1, x0, Nil)) EQEDGE(E(S(S(y0)), z1), E(S(S(y1)), z3)) -> c25(!EQ'(S(S(y0)), S(S(y1)))) EQEDGE(E(z0, S(S(y0))), E(z2, S(S(y1)))) -> c26(!EQ'(S(S(y0)), S(S(y1)))) VIA[LET](0, x0, Cons(E(0, x1), x2), Nil, Nil) -> c10(VIA(0, x0, x2, Nil)) VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Nil, Nil) -> c10(VIA(S(S(x0)), x1, x4, Nil)) VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Nil, Nil) -> c10(VIA(S(0), x0, x2, Nil)) REACH(z0, S(y1), Cons(E(y2, S(y3)), y4)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, S(y3)), y4))) REACH(z0, 0, Cons(E(y1, S(y2)), y3)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, S(y2)), y3))) REACH(z0, S(y1), Cons(E(y2, 0), y3)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, 0), y3))) REACH(z0, 0, Cons(E(y1, 0), y2)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, 0), y2))) REACH(S(y0), z1, Cons(E(S(y2), y3), y4)) -> c29(MEMBER(E(S(y0), z1), Cons(E(S(y2), y3), y4))) REACH(0, z1, Cons(E(S(y1), y2), y3)) -> c29(MEMBER(E(0, z1), Cons(E(S(y1), y2), y3))) REACH(S(y0), z1, Cons(E(0, y2), y3)) -> c29(MEMBER(E(S(y0), z1), Cons(E(0, y2), y3))) REACH(0, z1, Cons(E(0, y1), y2)) -> c29(MEMBER(E(0, z1), Cons(E(0, y1), y2))) REACH(z0, z1, Cons(E(y2, y3), y4)) -> c29(MEMBER(E(z0, z1), Cons(E(y2, y3), y4))) REACH(z0, z1, Nil) -> c29(MEMBER(E(z0, z1), Nil)) REACH(z0, S(y1), Nil) -> c29(MEMBER(E(z0, S(y1)), Nil)) REACH(z0, 0, Nil) -> c29(MEMBER(E(z0, 0), Nil)) REACH(S(y0), z1, Nil) -> c29(MEMBER(E(S(y0), z1), Nil)) REACH(0, z1, Nil) -> c29(MEMBER(E(0, z1), Nil)) VIA(S(S(y0)), z1, Cons(E(S(S(y1)), z3), z4), z5) -> c21(!EQ'(S(S(y0)), S(S(y1)))) MEMBER(E(S(S(y0)), z1), Cons(E(S(S(y2)), z3), z4)) -> c23(EQEDGE(E(S(S(y0)), z1), E(S(S(y2)), z3))) MEMBER(E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)) -> c23(EQEDGE(E(z0, S(S(y1))), E(z2, S(S(y3))))) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(S(y1), y2), y3)), z4) -> c9(VIA(0, z0, Cons(E(S(y1), y2), y3), z4)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(0, y1), y2)), z4) -> c9(VIA(0, z0, Cons(E(0, y1), y2), z4)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), z4) -> c9(VIA(0, z0, Nil, z4)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Nil) -> c9(VIA(0, z0, Nil, Nil)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Cons(y1, y2)) -> c9(VIA(0, z0, Nil, Cons(y1, y2))) VIA(0, z0, Cons(E(S(z1), z2), Cons(E(S(y3), y4), y5)), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(S(y3), y4), y5)), z4)) VIA(0, z0, Cons(E(S(z1), z2), Cons(E(0, y3), y4)), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(0, y3), y4)), z4)) VIA(0, z0, Cons(E(S(z1), z2), Nil), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), z4)) VIA(0, z0, Cons(E(S(z1), z2), Nil), Nil) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Nil)) VIA(0, z0, Cons(E(S(z1), z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Cons(y3, y4))) VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Cons(E(0, y2), y3)), z4) -> c9(VIA(S(z0), z1, Cons(E(0, y2), y3), z4)) VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4) -> c9(VIA(S(S(y0)), z1, Cons(E(S(S(y2)), y3), y4), z4)) VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), z4) -> c9(VIA(S(z0), z1, Nil, z4)) VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), z4) -> c9(VIA(S(S(y0)), z1, Nil, z4)) VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), z4) -> c9(VIA(S(0), z1, Nil, z4)) VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Nil) -> c9(VIA(S(z0), z1, Nil, Nil)) VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(S(y1)), y2), y3)), z4) -> c9(VIA(S(0), z1, Cons(E(S(S(y1)), y2), y3), z4)) VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4) -> c9(VIA(S(S(y0)), z1, Cons(E(S(0), y2), y3), z4)) VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(0), y1), y2)), z4) -> c9(VIA(S(0), z1, Cons(E(S(0), y1), y2), z4)) VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Cons(y2, y3)) -> c9(VIA(S(z0), z1, Nil, Cons(y2, y3))) VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y2, y3)) -> c9(VIA(S(S(y0)), z1, Nil, Cons(y2, y3))) VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), Cons(y1, y2)) -> c9(VIA(S(0), z1, Nil, Cons(y1, y2))) VIA(S(z0), z1, Cons(E(0, z2), Cons(E(0, y3), y4)), z4) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Cons(E(0, y3), y4)), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y3)), y4), y5)), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y3)), y4), y5)), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), z4)) VIA(S(0), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), Nil) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Nil)) VIA(S(0), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y3), y4)), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y3), y4)), z4)) VIA(S(0), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Cons(y3, y4))) VIA(S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y3, y4))) VIA(S(0), z1, Cons(E(0, z2), Nil), Cons(y2, y3)) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), Cons(y2, y3))) S tuples: VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) MEMBER(E(x0, S(z0)), Cons(E(x2, S(z1)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), !EQ(z0, z1)), x2, S(z1), x0, S(z0)), E(x0, S(z0)), Cons(E(x2, S(z1)), x4)), EQEDGE(E(x0, S(z0)), E(x2, S(z1)))) MEMBER(E(x0, 0), Cons(E(x2, S(z0)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, S(z0), x0, 0), E(x0, 0), Cons(E(x2, S(z0)), x4)), EQEDGE(E(x0, 0), E(x2, S(z0)))) MEMBER(E(x0, S(z0)), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, 0, x0, S(z0)), E(x0, S(z0)), Cons(E(x2, 0), x4)), EQEDGE(E(x0, S(z0)), E(x2, 0))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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))) REACH(x0, x1, Nil) -> c1(REACH[ITE](False, x0, x1, Nil)) REACH(x0, x1, Nil) -> c1(MEMBER(E(x0, x1), Nil)) VIA(0, x0, Nil, x4) -> c22 VIA(S(x0), x1, Nil, x4) -> c22 VIA(S(S(x0)), x1, Nil, x5) -> c22 VIA(S(0), x0, Nil, x4) -> c22 VIA(x0, x1, Nil, Nil) -> c22 VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5)) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5)) MEMBER(E(x0, x1), Nil) -> c24 MEMBER(E(x0, S(x1)), Nil) -> c24 MEMBER(E(x0, 0), Nil) -> c24 MEMBER(E(S(x0), x1), Nil) -> c24 MEMBER(E(0, x0), Nil) -> c24 VIA(0, x0, Nil, Cons(z2, z3)) -> c22 VIA(S(x0), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(S(x0)), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(0), x0, Nil, Cons(z2, z3)) -> c22 EQEDGE(E(S(S(y0)), z1), E(S(S(y1)), z3)) -> c25(!EQ'(S(S(y0)), S(S(y1)))) EQEDGE(E(z0, S(S(y0))), E(z2, S(S(y1)))) -> c26(!EQ'(S(S(y0)), S(S(y1)))) REACH(z0, S(y1), Cons(E(y2, S(y3)), y4)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, S(y3)), y4))) REACH(z0, 0, Cons(E(y1, S(y2)), y3)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, S(y2)), y3))) REACH(z0, S(y1), Cons(E(y2, 0), y3)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, 0), y3))) REACH(z0, 0, Cons(E(y1, 0), y2)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, 0), y2))) REACH(S(y0), z1, Cons(E(S(y2), y3), y4)) -> c29(MEMBER(E(S(y0), z1), Cons(E(S(y2), y3), y4))) REACH(0, z1, Cons(E(S(y1), y2), y3)) -> c29(MEMBER(E(0, z1), Cons(E(S(y1), y2), y3))) REACH(S(y0), z1, Cons(E(0, y2), y3)) -> c29(MEMBER(E(S(y0), z1), Cons(E(0, y2), y3))) REACH(0, z1, Cons(E(0, y1), y2)) -> c29(MEMBER(E(0, z1), Cons(E(0, y1), y2))) REACH(z0, z1, Cons(E(y2, y3), y4)) -> c29(MEMBER(E(z0, z1), Cons(E(y2, y3), y4))) REACH(z0, z1, Nil) -> c29(MEMBER(E(z0, z1), Nil)) REACH(z0, S(y1), Nil) -> c29(MEMBER(E(z0, S(y1)), Nil)) REACH(z0, 0, Nil) -> c29(MEMBER(E(z0, 0), Nil)) REACH(S(y0), z1, Nil) -> c29(MEMBER(E(S(y0), z1), Nil)) REACH(0, z1, Nil) -> c29(MEMBER(E(0, z1), Nil)) VIA(S(S(y0)), z1, Cons(E(S(S(y1)), z3), z4), z5) -> c21(!EQ'(S(S(y0)), S(S(y1)))) MEMBER(E(S(S(y0)), z1), Cons(E(S(S(y2)), z3), z4)) -> c23(EQEDGE(E(S(S(y0)), z1), E(S(S(y2)), z3))) MEMBER(E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)) -> c23(EQEDGE(E(z0, S(S(y1))), E(z2, S(S(y3))))) VIA(0, z0, Cons(E(S(z1), z2), Cons(E(S(y3), y4), y5)), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(S(y3), y4), y5)), z4)) VIA(0, z0, Cons(E(S(z1), z2), Cons(E(0, y3), y4)), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(0, y3), y4)), z4)) VIA(0, z0, Cons(E(S(z1), z2), Nil), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), z4)) VIA(0, z0, Cons(E(S(z1), z2), Nil), Nil) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Nil)) VIA(0, z0, Cons(E(S(z1), z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Cons(y3, y4))) VIA(S(z0), z1, Cons(E(0, z2), Cons(E(0, y3), y4)), z4) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Cons(E(0, y3), y4)), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y3)), y4), y5)), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y3)), y4), y5)), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), z4)) VIA(S(0), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), Nil) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Nil)) VIA(S(0), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y3), y4)), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y3), y4)), z4)) VIA(S(0), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Cons(y3, y4))) VIA(S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y3, y4))) VIA(S(0), z1, Cons(E(0, z2), Nil), Cons(y2, y3)) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), Cons(y2, y3))) K tuples:none Defined Rule Symbols: reach_3, reach[Ite]_4, member_2, member[Ite]_3, eqEdge_2, eqEdge[Ite]_5, and_2, !EQ_2, via_4, via[Ite]_5, via[Let]_5 Defined Pair Symbols: VIA_4, MEMBER_2, REACH_3, VIA[ITE]_5, MEMBER[ITE]_3, REACH[ITE]_4, !EQ'_2, VIA[LET]_5, EQEDGE_2 Compound Symbols: c21_1, c21_2, c23_2, c29_2, c9_1, c12_1, c14_1, c1_1, c22, c_1, c24, c8_2, c8_1, c10_1, c25_1, c26_1, c29_1, c23_1 ---------------------------------------- (103) CdtForwardInstantiationProof (BOTH BOUNDS(ID, ID)) Use forward instantiation to replace VIA[ITE](False, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), x5) -> c9(VIA(S(S(x0)), x1, x4, x5)) by VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(S(S(y2)), y3), y4)), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(S(S(y2)), y3), y4), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Nil), z5) -> c9(VIA(S(S(z0)), z1, Nil, z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Nil), Nil) -> c9(VIA(S(S(z0)), z1, Nil, Nil)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(S(0), y2), y3)), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(S(0), y2), y3), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Nil), Cons(y2, y3)) -> c9(VIA(S(S(z0)), z1, Nil, Cons(y2, y3))) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Cons(E(0, y3), y4))), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(0, y3), y4)), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Cons(E(S(S(y3)), y4), y5))), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(S(S(y3)), y4), y5)), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Nil)), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Nil)), Nil) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), Nil)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Cons(E(S(0), y3), y4))), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(S(0), y3), y4)), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Nil)), Cons(y3, y4)) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), Cons(y3, y4))) ---------------------------------------- (104) Obligation: Complexity Dependency Tuples Problem Rules: reach(z0, z1, z2) -> reach[Ite](member(E(z0, z1), z2), z0, z1, z2) reach[Ite](False, z0, z1, z2) -> via(z0, z1, z2, z2) reach[Ite](True, z0, z1, z2) -> Cons(E(z0, z1), Nil) member(z0, Cons(z1, z2)) -> member[Ite](eqEdge(z0, z1), z0, Cons(z1, z2)) member(z0, Nil) -> False member[Ite](False, z0, Cons(z1, z2)) -> member(z0, z2) member[Ite](True, z0, z1) -> True eqEdge(E(z0, z1), E(z2, z3)) -> eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1) eqEdge[Ite](False, z0, z1, z2, z3) -> False eqEdge[Ite](True, z0, z1, z2, z3) -> True and(False, False) -> False and(True, False) -> False and(False, True) -> False and(True, True) -> True !EQ(S(z0), S(z1)) -> !EQ(z0, z1) !EQ(0, S(z0)) -> False !EQ(S(z0), 0) -> False !EQ(0, 0) -> True via(z0, z1, Cons(E(z2, z3), z4), z5) -> via[Ite](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5) via(z0, z1, Nil, z2) -> Nil via[Ite](True, z0, z1, Cons(E(z2, z3), z4), z5) -> via[Let](z0, z1, Cons(E(z2, z3), z4), z5, reach(z3, z1, z5)) via[Ite](False, z0, z1, Cons(z2, z3), z4) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Nil) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Cons(z5, z6)) -> Cons(z2, Cons(z5, z6)) Tuples: VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) MEMBER(E(x0, S(z0)), Cons(E(x2, S(z1)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), !EQ(z0, z1)), x2, S(z1), x0, S(z0)), E(x0, S(z0)), Cons(E(x2, S(z1)), x4)), EQEDGE(E(x0, S(z0)), E(x2, S(z1)))) MEMBER(E(x0, 0), Cons(E(x2, S(z0)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, S(z0), x0, 0), E(x0, 0), Cons(E(x2, S(z0)), x4)), EQEDGE(E(x0, 0), E(x2, S(z0)))) MEMBER(E(x0, S(z0)), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, 0, x0, S(z0)), E(x0, S(z0)), Cons(E(x2, 0), x4)), EQEDGE(E(x0, S(z0)), E(x2, 0))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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))) VIA[ITE](False, S(0), x0, Cons(E(S(S(x1)), x2), x3), x4) -> c9(VIA(S(0), x0, x3, x4)) VIA[ITE](False, S(S(x0)), x1, Cons(E(S(0), x2), x3), x4) -> c9(VIA(S(S(x0)), x1, x3, x4)) MEMBER[ITE](False, E(x0, S(x1)), Cons(E(x2, S(x3)), x4)) -> c12(MEMBER(E(x0, S(x1)), x4)) MEMBER[ITE](False, E(x0, 0), Cons(E(x1, S(x2)), x3)) -> c12(MEMBER(E(x0, 0), x3)) MEMBER[ITE](False, E(x0, S(x1)), Cons(E(x2, 0), x3)) -> c12(MEMBER(E(x0, S(x1)), x3)) MEMBER[ITE](False, E(x0, 0), Cons(E(x1, 0), x2)) -> c12(MEMBER(E(x0, 0), x2)) MEMBER[ITE](False, E(S(x0), x1), Cons(E(S(x2), x3), x4)) -> c12(MEMBER(E(S(x0), x1), x4)) MEMBER[ITE](False, E(0, x0), Cons(E(S(x1), x2), x3)) -> c12(MEMBER(E(0, x0), x3)) MEMBER[ITE](False, E(S(x0), x1), Cons(E(0, x2), x3)) -> c12(MEMBER(E(S(x0), x1), x3)) MEMBER[ITE](False, E(0, x0), Cons(E(0, x1), x2)) -> c12(MEMBER(E(0, x0), x2)) REACH[ITE](False, x0, x1, Nil) -> c14(VIA(x0, x1, Nil, Nil)) REACH[ITE](False, x0, x1, Cons(E(x2, x3), x4)) -> c14(VIA(x0, x1, Cons(E(x2, x3), x4), Cons(E(x2, x3), x4))) REACH(x0, x1, Nil) -> c1(REACH[ITE](False, x0, x1, Nil)) REACH(x0, x1, Nil) -> c1(MEMBER(E(x0, x1), Nil)) VIA(0, x0, Nil, x4) -> c22 VIA(S(x0), x1, Nil, x4) -> c22 VIA(S(S(x0)), x1, Nil, x5) -> c22 VIA(S(0), x0, Nil, x4) -> c22 VIA(x0, x1, Nil, Nil) -> c22 !EQ'(S(S(y0)), S(S(y1))) -> c(!EQ'(S(y0), S(y1))) VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5)) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5)) MEMBER(E(x0, x1), Nil) -> c24 MEMBER(E(x0, S(x1)), Nil) -> c24 MEMBER(E(x0, 0), Nil) -> c24 MEMBER(E(S(x0), x1), Nil) -> c24 MEMBER(E(0, x0), Nil) -> c24 VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), Cons(z5, z6)) -> c8(VIA[LET](0, x0, Cons(E(0, x1), x2), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x1, x0), z5), E(x1, x0), Cons(z5, z6)), x1, x0, Cons(z5, z6))), REACH(x1, x0, Cons(z5, z6))) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(z5, z6)) -> c8(VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x3, x1), z5), E(x3, x1), Cons(z5, z6)), x3, x1, Cons(z5, z6))), REACH(x3, x1, Cons(z5, z6))) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), Cons(z5, z6)) -> c8(VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x1, x0), z5), E(x1, x0), Cons(z5, z6)), x1, x0, Cons(z5, z6))), REACH(x1, x0, Cons(z5, z6))) VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), x3) -> c8(REACH(x1, x0, x3)) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), x5) -> c8(REACH(x3, x1, x5)) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), x3) -> c8(REACH(x1, x0, x3)) VIA[LET](0, x0, Cons(E(0, x1), x2), Cons(x3, x4), Nil) -> c10(VIA(0, x0, x2, Cons(x3, x4))) VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(x5, x6), Nil) -> c10(VIA(S(S(x0)), x1, x4, Cons(x5, x6))) VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Cons(x3, x4), Nil) -> c10(VIA(S(0), x0, x2, Cons(x3, x4))) VIA(0, x0, Nil, Cons(z2, z3)) -> c22 VIA(S(x0), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(S(x0)), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(0), x0, Nil, Cons(z2, z3)) -> c22 VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), Nil) -> c8(VIA[LET](0, x0, Cons(E(0, x1), x2), Nil, Nil), REACH(x1, x0, Nil)) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Nil) -> c8(VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Nil, Nil), REACH(x3, x1, Nil)) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), Nil) -> c8(VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Nil, Nil), REACH(x1, x0, Nil)) EQEDGE(E(S(S(y0)), z1), E(S(S(y1)), z3)) -> c25(!EQ'(S(S(y0)), S(S(y1)))) EQEDGE(E(z0, S(S(y0))), E(z2, S(S(y1)))) -> c26(!EQ'(S(S(y0)), S(S(y1)))) VIA[LET](0, x0, Cons(E(0, x1), x2), Nil, Nil) -> c10(VIA(0, x0, x2, Nil)) VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Nil, Nil) -> c10(VIA(S(S(x0)), x1, x4, Nil)) VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Nil, Nil) -> c10(VIA(S(0), x0, x2, Nil)) REACH(z0, S(y1), Cons(E(y2, S(y3)), y4)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, S(y3)), y4))) REACH(z0, 0, Cons(E(y1, S(y2)), y3)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, S(y2)), y3))) REACH(z0, S(y1), Cons(E(y2, 0), y3)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, 0), y3))) REACH(z0, 0, Cons(E(y1, 0), y2)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, 0), y2))) REACH(S(y0), z1, Cons(E(S(y2), y3), y4)) -> c29(MEMBER(E(S(y0), z1), Cons(E(S(y2), y3), y4))) REACH(0, z1, Cons(E(S(y1), y2), y3)) -> c29(MEMBER(E(0, z1), Cons(E(S(y1), y2), y3))) REACH(S(y0), z1, Cons(E(0, y2), y3)) -> c29(MEMBER(E(S(y0), z1), Cons(E(0, y2), y3))) REACH(0, z1, Cons(E(0, y1), y2)) -> c29(MEMBER(E(0, z1), Cons(E(0, y1), y2))) REACH(z0, z1, Cons(E(y2, y3), y4)) -> c29(MEMBER(E(z0, z1), Cons(E(y2, y3), y4))) REACH(z0, z1, Nil) -> c29(MEMBER(E(z0, z1), Nil)) REACH(z0, S(y1), Nil) -> c29(MEMBER(E(z0, S(y1)), Nil)) REACH(z0, 0, Nil) -> c29(MEMBER(E(z0, 0), Nil)) REACH(S(y0), z1, Nil) -> c29(MEMBER(E(S(y0), z1), Nil)) REACH(0, z1, Nil) -> c29(MEMBER(E(0, z1), Nil)) VIA(S(S(y0)), z1, Cons(E(S(S(y1)), z3), z4), z5) -> c21(!EQ'(S(S(y0)), S(S(y1)))) MEMBER(E(S(S(y0)), z1), Cons(E(S(S(y2)), z3), z4)) -> c23(EQEDGE(E(S(S(y0)), z1), E(S(S(y2)), z3))) MEMBER(E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)) -> c23(EQEDGE(E(z0, S(S(y1))), E(z2, S(S(y3))))) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(S(y1), y2), y3)), z4) -> c9(VIA(0, z0, Cons(E(S(y1), y2), y3), z4)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(0, y1), y2)), z4) -> c9(VIA(0, z0, Cons(E(0, y1), y2), z4)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), z4) -> c9(VIA(0, z0, Nil, z4)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Nil) -> c9(VIA(0, z0, Nil, Nil)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Cons(y1, y2)) -> c9(VIA(0, z0, Nil, Cons(y1, y2))) VIA(0, z0, Cons(E(S(z1), z2), Cons(E(S(y3), y4), y5)), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(S(y3), y4), y5)), z4)) VIA(0, z0, Cons(E(S(z1), z2), Cons(E(0, y3), y4)), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(0, y3), y4)), z4)) VIA(0, z0, Cons(E(S(z1), z2), Nil), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), z4)) VIA(0, z0, Cons(E(S(z1), z2), Nil), Nil) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Nil)) VIA(0, z0, Cons(E(S(z1), z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Cons(y3, y4))) VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Cons(E(0, y2), y3)), z4) -> c9(VIA(S(z0), z1, Cons(E(0, y2), y3), z4)) VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4) -> c9(VIA(S(S(y0)), z1, Cons(E(S(S(y2)), y3), y4), z4)) VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), z4) -> c9(VIA(S(z0), z1, Nil, z4)) VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), z4) -> c9(VIA(S(S(y0)), z1, Nil, z4)) VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), z4) -> c9(VIA(S(0), z1, Nil, z4)) VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Nil) -> c9(VIA(S(z0), z1, Nil, Nil)) VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(S(y1)), y2), y3)), z4) -> c9(VIA(S(0), z1, Cons(E(S(S(y1)), y2), y3), z4)) VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4) -> c9(VIA(S(S(y0)), z1, Cons(E(S(0), y2), y3), z4)) VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(0), y1), y2)), z4) -> c9(VIA(S(0), z1, Cons(E(S(0), y1), y2), z4)) VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Cons(y2, y3)) -> c9(VIA(S(z0), z1, Nil, Cons(y2, y3))) VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y2, y3)) -> c9(VIA(S(S(y0)), z1, Nil, Cons(y2, y3))) VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), Cons(y1, y2)) -> c9(VIA(S(0), z1, Nil, Cons(y1, y2))) VIA(S(z0), z1, Cons(E(0, z2), Cons(E(0, y3), y4)), z4) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Cons(E(0, y3), y4)), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y3)), y4), y5)), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y3)), y4), y5)), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), z4)) VIA(S(0), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), Nil) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Nil)) VIA(S(0), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y3), y4)), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y3), y4)), z4)) VIA(S(0), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Cons(y3, y4))) VIA(S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y3, y4))) VIA(S(0), z1, Cons(E(0, z2), Nil), Cons(y2, y3)) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), Cons(y2, y3))) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(S(S(y2)), y3), y4)), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(S(S(y2)), y3), y4), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Nil), z5) -> c9(VIA(S(S(z0)), z1, Nil, z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Nil), Nil) -> c9(VIA(S(S(z0)), z1, Nil, Nil)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(S(0), y2), y3)), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(S(0), y2), y3), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Nil), Cons(y2, y3)) -> c9(VIA(S(S(z0)), z1, Nil, Cons(y2, y3))) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Cons(E(0, y3), y4))), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(0, y3), y4)), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Cons(E(S(S(y3)), y4), y5))), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(S(S(y3)), y4), y5)), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Nil)), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Nil)), Nil) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), Nil)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Cons(E(S(0), y3), y4))), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(S(0), y3), y4)), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Nil)), Cons(y3, y4)) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), Cons(y3, y4))) S tuples: VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) MEMBER(E(x0, S(z0)), Cons(E(x2, S(z1)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), !EQ(z0, z1)), x2, S(z1), x0, S(z0)), E(x0, S(z0)), Cons(E(x2, S(z1)), x4)), EQEDGE(E(x0, S(z0)), E(x2, S(z1)))) MEMBER(E(x0, 0), Cons(E(x2, S(z0)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, S(z0), x0, 0), E(x0, 0), Cons(E(x2, S(z0)), x4)), EQEDGE(E(x0, 0), E(x2, S(z0)))) MEMBER(E(x0, S(z0)), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, 0, x0, S(z0)), E(x0, S(z0)), Cons(E(x2, 0), x4)), EQEDGE(E(x0, S(z0)), E(x2, 0))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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))) REACH(x0, x1, Nil) -> c1(REACH[ITE](False, x0, x1, Nil)) REACH(x0, x1, Nil) -> c1(MEMBER(E(x0, x1), Nil)) VIA(0, x0, Nil, x4) -> c22 VIA(S(x0), x1, Nil, x4) -> c22 VIA(S(S(x0)), x1, Nil, x5) -> c22 VIA(S(0), x0, Nil, x4) -> c22 VIA(x0, x1, Nil, Nil) -> c22 VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5)) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5)) MEMBER(E(x0, x1), Nil) -> c24 MEMBER(E(x0, S(x1)), Nil) -> c24 MEMBER(E(x0, 0), Nil) -> c24 MEMBER(E(S(x0), x1), Nil) -> c24 MEMBER(E(0, x0), Nil) -> c24 VIA(0, x0, Nil, Cons(z2, z3)) -> c22 VIA(S(x0), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(S(x0)), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(0), x0, Nil, Cons(z2, z3)) -> c22 EQEDGE(E(S(S(y0)), z1), E(S(S(y1)), z3)) -> c25(!EQ'(S(S(y0)), S(S(y1)))) EQEDGE(E(z0, S(S(y0))), E(z2, S(S(y1)))) -> c26(!EQ'(S(S(y0)), S(S(y1)))) REACH(z0, S(y1), Cons(E(y2, S(y3)), y4)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, S(y3)), y4))) REACH(z0, 0, Cons(E(y1, S(y2)), y3)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, S(y2)), y3))) REACH(z0, S(y1), Cons(E(y2, 0), y3)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, 0), y3))) REACH(z0, 0, Cons(E(y1, 0), y2)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, 0), y2))) REACH(S(y0), z1, Cons(E(S(y2), y3), y4)) -> c29(MEMBER(E(S(y0), z1), Cons(E(S(y2), y3), y4))) REACH(0, z1, Cons(E(S(y1), y2), y3)) -> c29(MEMBER(E(0, z1), Cons(E(S(y1), y2), y3))) REACH(S(y0), z1, Cons(E(0, y2), y3)) -> c29(MEMBER(E(S(y0), z1), Cons(E(0, y2), y3))) REACH(0, z1, Cons(E(0, y1), y2)) -> c29(MEMBER(E(0, z1), Cons(E(0, y1), y2))) REACH(z0, z1, Cons(E(y2, y3), y4)) -> c29(MEMBER(E(z0, z1), Cons(E(y2, y3), y4))) REACH(z0, z1, Nil) -> c29(MEMBER(E(z0, z1), Nil)) REACH(z0, S(y1), Nil) -> c29(MEMBER(E(z0, S(y1)), Nil)) REACH(z0, 0, Nil) -> c29(MEMBER(E(z0, 0), Nil)) REACH(S(y0), z1, Nil) -> c29(MEMBER(E(S(y0), z1), Nil)) REACH(0, z1, Nil) -> c29(MEMBER(E(0, z1), Nil)) VIA(S(S(y0)), z1, Cons(E(S(S(y1)), z3), z4), z5) -> c21(!EQ'(S(S(y0)), S(S(y1)))) MEMBER(E(S(S(y0)), z1), Cons(E(S(S(y2)), z3), z4)) -> c23(EQEDGE(E(S(S(y0)), z1), E(S(S(y2)), z3))) MEMBER(E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)) -> c23(EQEDGE(E(z0, S(S(y1))), E(z2, S(S(y3))))) VIA(0, z0, Cons(E(S(z1), z2), Cons(E(S(y3), y4), y5)), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(S(y3), y4), y5)), z4)) VIA(0, z0, Cons(E(S(z1), z2), Cons(E(0, y3), y4)), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(0, y3), y4)), z4)) VIA(0, z0, Cons(E(S(z1), z2), Nil), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), z4)) VIA(0, z0, Cons(E(S(z1), z2), Nil), Nil) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Nil)) VIA(0, z0, Cons(E(S(z1), z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Cons(y3, y4))) VIA(S(z0), z1, Cons(E(0, z2), Cons(E(0, y3), y4)), z4) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Cons(E(0, y3), y4)), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y3)), y4), y5)), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y3)), y4), y5)), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), z4)) VIA(S(0), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), Nil) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Nil)) VIA(S(0), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y3), y4)), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y3), y4)), z4)) VIA(S(0), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Cons(y3, y4))) VIA(S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y3, y4))) VIA(S(0), z1, Cons(E(0, z2), Nil), Cons(y2, y3)) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), Cons(y2, y3))) K tuples:none Defined Rule Symbols: reach_3, reach[Ite]_4, member_2, member[Ite]_3, eqEdge_2, eqEdge[Ite]_5, and_2, !EQ_2, via_4, via[Ite]_5, via[Let]_5 Defined Pair Symbols: VIA_4, MEMBER_2, REACH_3, VIA[ITE]_5, MEMBER[ITE]_3, REACH[ITE]_4, !EQ'_2, VIA[LET]_5, EQEDGE_2 Compound Symbols: c21_1, c21_2, c23_2, c29_2, c9_1, c12_1, c14_1, c1_1, c22, c_1, c24, c8_2, c8_1, c10_1, c25_1, c26_1, c29_1, c23_1 ---------------------------------------- (105) CdtForwardInstantiationProof (BOTH BOUNDS(ID, ID)) Use forward instantiation to replace VIA[ITE](False, S(0), x0, Cons(E(S(S(x1)), x2), x3), x4) -> c9(VIA(S(0), x0, x3, x4)) by VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Nil), z4) -> c9(VIA(S(0), z0, Nil, z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Nil), Nil) -> c9(VIA(S(0), z0, Nil, Nil)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(S(S(y1)), y2), y3)), z4) -> c9(VIA(S(0), z0, Cons(E(S(S(y1)), y2), y3), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(S(0), y1), y2)), z4) -> c9(VIA(S(0), z0, Cons(E(S(0), y1), y2), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Nil), Cons(y2, y3)) -> c9(VIA(S(0), z0, Nil, Cons(y2, y3))) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y2), Cons(E(0, y3), y4))), z4) -> c9(VIA(S(0), z0, Cons(E(0, y2), Cons(E(0, y3), y4)), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y2), Nil)), z4) -> c9(VIA(S(0), z0, Cons(E(0, y2), Nil), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y2), Nil)), Nil) -> c9(VIA(S(0), z0, Cons(E(0, y2), Nil), Nil)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y1), Cons(E(S(S(y2)), y3), y4))), z4) -> c9(VIA(S(0), z0, Cons(E(0, y1), Cons(E(S(S(y2)), y3), y4)), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y1), Cons(E(S(0), y2), y3))), z4) -> c9(VIA(S(0), z0, Cons(E(0, y1), Cons(E(S(0), y2), y3)), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y2), Nil)), Cons(y3, y4)) -> c9(VIA(S(0), z0, Cons(E(0, y2), Nil), Cons(y3, y4))) ---------------------------------------- (106) Obligation: Complexity Dependency Tuples Problem Rules: reach(z0, z1, z2) -> reach[Ite](member(E(z0, z1), z2), z0, z1, z2) reach[Ite](False, z0, z1, z2) -> via(z0, z1, z2, z2) reach[Ite](True, z0, z1, z2) -> Cons(E(z0, z1), Nil) member(z0, Cons(z1, z2)) -> member[Ite](eqEdge(z0, z1), z0, Cons(z1, z2)) member(z0, Nil) -> False member[Ite](False, z0, Cons(z1, z2)) -> member(z0, z2) member[Ite](True, z0, z1) -> True eqEdge(E(z0, z1), E(z2, z3)) -> eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1) eqEdge[Ite](False, z0, z1, z2, z3) -> False eqEdge[Ite](True, z0, z1, z2, z3) -> True and(False, False) -> False and(True, False) -> False and(False, True) -> False and(True, True) -> True !EQ(S(z0), S(z1)) -> !EQ(z0, z1) !EQ(0, S(z0)) -> False !EQ(S(z0), 0) -> False !EQ(0, 0) -> True via(z0, z1, Cons(E(z2, z3), z4), z5) -> via[Ite](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5) via(z0, z1, Nil, z2) -> Nil via[Ite](True, z0, z1, Cons(E(z2, z3), z4), z5) -> via[Let](z0, z1, Cons(E(z2, z3), z4), z5, reach(z3, z1, z5)) via[Ite](False, z0, z1, Cons(z2, z3), z4) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Nil) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Cons(z5, z6)) -> Cons(z2, Cons(z5, z6)) Tuples: VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) MEMBER(E(x0, S(z0)), Cons(E(x2, S(z1)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), !EQ(z0, z1)), x2, S(z1), x0, S(z0)), E(x0, S(z0)), Cons(E(x2, S(z1)), x4)), EQEDGE(E(x0, S(z0)), E(x2, S(z1)))) MEMBER(E(x0, 0), Cons(E(x2, S(z0)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, S(z0), x0, 0), E(x0, 0), Cons(E(x2, S(z0)), x4)), EQEDGE(E(x0, 0), E(x2, S(z0)))) MEMBER(E(x0, S(z0)), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, 0, x0, S(z0)), E(x0, S(z0)), Cons(E(x2, 0), x4)), EQEDGE(E(x0, S(z0)), E(x2, 0))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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))) VIA[ITE](False, S(S(x0)), x1, Cons(E(S(0), x2), x3), x4) -> c9(VIA(S(S(x0)), x1, x3, x4)) MEMBER[ITE](False, E(x0, S(x1)), Cons(E(x2, S(x3)), x4)) -> c12(MEMBER(E(x0, S(x1)), x4)) MEMBER[ITE](False, E(x0, 0), Cons(E(x1, S(x2)), x3)) -> c12(MEMBER(E(x0, 0), x3)) MEMBER[ITE](False, E(x0, S(x1)), Cons(E(x2, 0), x3)) -> c12(MEMBER(E(x0, S(x1)), x3)) MEMBER[ITE](False, E(x0, 0), Cons(E(x1, 0), x2)) -> c12(MEMBER(E(x0, 0), x2)) MEMBER[ITE](False, E(S(x0), x1), Cons(E(S(x2), x3), x4)) -> c12(MEMBER(E(S(x0), x1), x4)) MEMBER[ITE](False, E(0, x0), Cons(E(S(x1), x2), x3)) -> c12(MEMBER(E(0, x0), x3)) MEMBER[ITE](False, E(S(x0), x1), Cons(E(0, x2), x3)) -> c12(MEMBER(E(S(x0), x1), x3)) MEMBER[ITE](False, E(0, x0), Cons(E(0, x1), x2)) -> c12(MEMBER(E(0, x0), x2)) REACH[ITE](False, x0, x1, Nil) -> c14(VIA(x0, x1, Nil, Nil)) REACH[ITE](False, x0, x1, Cons(E(x2, x3), x4)) -> c14(VIA(x0, x1, Cons(E(x2, x3), x4), Cons(E(x2, x3), x4))) REACH(x0, x1, Nil) -> c1(REACH[ITE](False, x0, x1, Nil)) REACH(x0, x1, Nil) -> c1(MEMBER(E(x0, x1), Nil)) VIA(0, x0, Nil, x4) -> c22 VIA(S(x0), x1, Nil, x4) -> c22 VIA(S(S(x0)), x1, Nil, x5) -> c22 VIA(S(0), x0, Nil, x4) -> c22 VIA(x0, x1, Nil, Nil) -> c22 !EQ'(S(S(y0)), S(S(y1))) -> c(!EQ'(S(y0), S(y1))) VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5)) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5)) MEMBER(E(x0, x1), Nil) -> c24 MEMBER(E(x0, S(x1)), Nil) -> c24 MEMBER(E(x0, 0), Nil) -> c24 MEMBER(E(S(x0), x1), Nil) -> c24 MEMBER(E(0, x0), Nil) -> c24 VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), Cons(z5, z6)) -> c8(VIA[LET](0, x0, Cons(E(0, x1), x2), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x1, x0), z5), E(x1, x0), Cons(z5, z6)), x1, x0, Cons(z5, z6))), REACH(x1, x0, Cons(z5, z6))) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(z5, z6)) -> c8(VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x3, x1), z5), E(x3, x1), Cons(z5, z6)), x3, x1, Cons(z5, z6))), REACH(x3, x1, Cons(z5, z6))) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), Cons(z5, z6)) -> c8(VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x1, x0), z5), E(x1, x0), Cons(z5, z6)), x1, x0, Cons(z5, z6))), REACH(x1, x0, Cons(z5, z6))) VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), x3) -> c8(REACH(x1, x0, x3)) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), x5) -> c8(REACH(x3, x1, x5)) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), x3) -> c8(REACH(x1, x0, x3)) VIA[LET](0, x0, Cons(E(0, x1), x2), Cons(x3, x4), Nil) -> c10(VIA(0, x0, x2, Cons(x3, x4))) VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(x5, x6), Nil) -> c10(VIA(S(S(x0)), x1, x4, Cons(x5, x6))) VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Cons(x3, x4), Nil) -> c10(VIA(S(0), x0, x2, Cons(x3, x4))) VIA(0, x0, Nil, Cons(z2, z3)) -> c22 VIA(S(x0), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(S(x0)), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(0), x0, Nil, Cons(z2, z3)) -> c22 VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), Nil) -> c8(VIA[LET](0, x0, Cons(E(0, x1), x2), Nil, Nil), REACH(x1, x0, Nil)) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Nil) -> c8(VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Nil, Nil), REACH(x3, x1, Nil)) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), Nil) -> c8(VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Nil, Nil), REACH(x1, x0, Nil)) EQEDGE(E(S(S(y0)), z1), E(S(S(y1)), z3)) -> c25(!EQ'(S(S(y0)), S(S(y1)))) EQEDGE(E(z0, S(S(y0))), E(z2, S(S(y1)))) -> c26(!EQ'(S(S(y0)), S(S(y1)))) VIA[LET](0, x0, Cons(E(0, x1), x2), Nil, Nil) -> c10(VIA(0, x0, x2, Nil)) VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Nil, Nil) -> c10(VIA(S(S(x0)), x1, x4, Nil)) VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Nil, Nil) -> c10(VIA(S(0), x0, x2, Nil)) REACH(z0, S(y1), Cons(E(y2, S(y3)), y4)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, S(y3)), y4))) REACH(z0, 0, Cons(E(y1, S(y2)), y3)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, S(y2)), y3))) REACH(z0, S(y1), Cons(E(y2, 0), y3)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, 0), y3))) REACH(z0, 0, Cons(E(y1, 0), y2)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, 0), y2))) REACH(S(y0), z1, Cons(E(S(y2), y3), y4)) -> c29(MEMBER(E(S(y0), z1), Cons(E(S(y2), y3), y4))) REACH(0, z1, Cons(E(S(y1), y2), y3)) -> c29(MEMBER(E(0, z1), Cons(E(S(y1), y2), y3))) REACH(S(y0), z1, Cons(E(0, y2), y3)) -> c29(MEMBER(E(S(y0), z1), Cons(E(0, y2), y3))) REACH(0, z1, Cons(E(0, y1), y2)) -> c29(MEMBER(E(0, z1), Cons(E(0, y1), y2))) REACH(z0, z1, Cons(E(y2, y3), y4)) -> c29(MEMBER(E(z0, z1), Cons(E(y2, y3), y4))) REACH(z0, z1, Nil) -> c29(MEMBER(E(z0, z1), Nil)) REACH(z0, S(y1), Nil) -> c29(MEMBER(E(z0, S(y1)), Nil)) REACH(z0, 0, Nil) -> c29(MEMBER(E(z0, 0), Nil)) REACH(S(y0), z1, Nil) -> c29(MEMBER(E(S(y0), z1), Nil)) REACH(0, z1, Nil) -> c29(MEMBER(E(0, z1), Nil)) VIA(S(S(y0)), z1, Cons(E(S(S(y1)), z3), z4), z5) -> c21(!EQ'(S(S(y0)), S(S(y1)))) MEMBER(E(S(S(y0)), z1), Cons(E(S(S(y2)), z3), z4)) -> c23(EQEDGE(E(S(S(y0)), z1), E(S(S(y2)), z3))) MEMBER(E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)) -> c23(EQEDGE(E(z0, S(S(y1))), E(z2, S(S(y3))))) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(S(y1), y2), y3)), z4) -> c9(VIA(0, z0, Cons(E(S(y1), y2), y3), z4)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(0, y1), y2)), z4) -> c9(VIA(0, z0, Cons(E(0, y1), y2), z4)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), z4) -> c9(VIA(0, z0, Nil, z4)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Nil) -> c9(VIA(0, z0, Nil, Nil)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Cons(y1, y2)) -> c9(VIA(0, z0, Nil, Cons(y1, y2))) VIA(0, z0, Cons(E(S(z1), z2), Cons(E(S(y3), y4), y5)), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(S(y3), y4), y5)), z4)) VIA(0, z0, Cons(E(S(z1), z2), Cons(E(0, y3), y4)), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(0, y3), y4)), z4)) VIA(0, z0, Cons(E(S(z1), z2), Nil), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), z4)) VIA(0, z0, Cons(E(S(z1), z2), Nil), Nil) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Nil)) VIA(0, z0, Cons(E(S(z1), z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Cons(y3, y4))) VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Cons(E(0, y2), y3)), z4) -> c9(VIA(S(z0), z1, Cons(E(0, y2), y3), z4)) VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4) -> c9(VIA(S(S(y0)), z1, Cons(E(S(S(y2)), y3), y4), z4)) VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), z4) -> c9(VIA(S(z0), z1, Nil, z4)) VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), z4) -> c9(VIA(S(S(y0)), z1, Nil, z4)) VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), z4) -> c9(VIA(S(0), z1, Nil, z4)) VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Nil) -> c9(VIA(S(z0), z1, Nil, Nil)) VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(S(y1)), y2), y3)), z4) -> c9(VIA(S(0), z1, Cons(E(S(S(y1)), y2), y3), z4)) VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4) -> c9(VIA(S(S(y0)), z1, Cons(E(S(0), y2), y3), z4)) VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(0), y1), y2)), z4) -> c9(VIA(S(0), z1, Cons(E(S(0), y1), y2), z4)) VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Cons(y2, y3)) -> c9(VIA(S(z0), z1, Nil, Cons(y2, y3))) VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y2, y3)) -> c9(VIA(S(S(y0)), z1, Nil, Cons(y2, y3))) VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), Cons(y1, y2)) -> c9(VIA(S(0), z1, Nil, Cons(y1, y2))) VIA(S(z0), z1, Cons(E(0, z2), Cons(E(0, y3), y4)), z4) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Cons(E(0, y3), y4)), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y3)), y4), y5)), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y3)), y4), y5)), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), z4)) VIA(S(0), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), Nil) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Nil)) VIA(S(0), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y3), y4)), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y3), y4)), z4)) VIA(S(0), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Cons(y3, y4))) VIA(S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y3, y4))) VIA(S(0), z1, Cons(E(0, z2), Nil), Cons(y2, y3)) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), Cons(y2, y3))) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(S(S(y2)), y3), y4)), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(S(S(y2)), y3), y4), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Nil), z5) -> c9(VIA(S(S(z0)), z1, Nil, z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Nil), Nil) -> c9(VIA(S(S(z0)), z1, Nil, Nil)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(S(0), y2), y3)), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(S(0), y2), y3), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Nil), Cons(y2, y3)) -> c9(VIA(S(S(z0)), z1, Nil, Cons(y2, y3))) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Cons(E(0, y3), y4))), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(0, y3), y4)), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Cons(E(S(S(y3)), y4), y5))), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(S(S(y3)), y4), y5)), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Nil)), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Nil)), Nil) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), Nil)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Cons(E(S(0), y3), y4))), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(S(0), y3), y4)), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Nil)), Cons(y3, y4)) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), Cons(y3, y4))) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Nil), z4) -> c9(VIA(S(0), z0, Nil, z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Nil), Nil) -> c9(VIA(S(0), z0, Nil, Nil)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(S(S(y1)), y2), y3)), z4) -> c9(VIA(S(0), z0, Cons(E(S(S(y1)), y2), y3), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(S(0), y1), y2)), z4) -> c9(VIA(S(0), z0, Cons(E(S(0), y1), y2), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Nil), Cons(y2, y3)) -> c9(VIA(S(0), z0, Nil, Cons(y2, y3))) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y2), Cons(E(0, y3), y4))), z4) -> c9(VIA(S(0), z0, Cons(E(0, y2), Cons(E(0, y3), y4)), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y2), Nil)), z4) -> c9(VIA(S(0), z0, Cons(E(0, y2), Nil), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y2), Nil)), Nil) -> c9(VIA(S(0), z0, Cons(E(0, y2), Nil), Nil)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y1), Cons(E(S(S(y2)), y3), y4))), z4) -> c9(VIA(S(0), z0, Cons(E(0, y1), Cons(E(S(S(y2)), y3), y4)), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y1), Cons(E(S(0), y2), y3))), z4) -> c9(VIA(S(0), z0, Cons(E(0, y1), Cons(E(S(0), y2), y3)), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y2), Nil)), Cons(y3, y4)) -> c9(VIA(S(0), z0, Cons(E(0, y2), Nil), Cons(y3, y4))) S tuples: VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) MEMBER(E(x0, S(z0)), Cons(E(x2, S(z1)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), !EQ(z0, z1)), x2, S(z1), x0, S(z0)), E(x0, S(z0)), Cons(E(x2, S(z1)), x4)), EQEDGE(E(x0, S(z0)), E(x2, S(z1)))) MEMBER(E(x0, 0), Cons(E(x2, S(z0)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, S(z0), x0, 0), E(x0, 0), Cons(E(x2, S(z0)), x4)), EQEDGE(E(x0, 0), E(x2, S(z0)))) MEMBER(E(x0, S(z0)), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, 0, x0, S(z0)), E(x0, S(z0)), Cons(E(x2, 0), x4)), EQEDGE(E(x0, S(z0)), E(x2, 0))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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))) REACH(x0, x1, Nil) -> c1(REACH[ITE](False, x0, x1, Nil)) REACH(x0, x1, Nil) -> c1(MEMBER(E(x0, x1), Nil)) VIA(0, x0, Nil, x4) -> c22 VIA(S(x0), x1, Nil, x4) -> c22 VIA(S(S(x0)), x1, Nil, x5) -> c22 VIA(S(0), x0, Nil, x4) -> c22 VIA(x0, x1, Nil, Nil) -> c22 VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5)) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5)) MEMBER(E(x0, x1), Nil) -> c24 MEMBER(E(x0, S(x1)), Nil) -> c24 MEMBER(E(x0, 0), Nil) -> c24 MEMBER(E(S(x0), x1), Nil) -> c24 MEMBER(E(0, x0), Nil) -> c24 VIA(0, x0, Nil, Cons(z2, z3)) -> c22 VIA(S(x0), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(S(x0)), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(0), x0, Nil, Cons(z2, z3)) -> c22 EQEDGE(E(S(S(y0)), z1), E(S(S(y1)), z3)) -> c25(!EQ'(S(S(y0)), S(S(y1)))) EQEDGE(E(z0, S(S(y0))), E(z2, S(S(y1)))) -> c26(!EQ'(S(S(y0)), S(S(y1)))) REACH(z0, S(y1), Cons(E(y2, S(y3)), y4)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, S(y3)), y4))) REACH(z0, 0, Cons(E(y1, S(y2)), y3)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, S(y2)), y3))) REACH(z0, S(y1), Cons(E(y2, 0), y3)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, 0), y3))) REACH(z0, 0, Cons(E(y1, 0), y2)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, 0), y2))) REACH(S(y0), z1, Cons(E(S(y2), y3), y4)) -> c29(MEMBER(E(S(y0), z1), Cons(E(S(y2), y3), y4))) REACH(0, z1, Cons(E(S(y1), y2), y3)) -> c29(MEMBER(E(0, z1), Cons(E(S(y1), y2), y3))) REACH(S(y0), z1, Cons(E(0, y2), y3)) -> c29(MEMBER(E(S(y0), z1), Cons(E(0, y2), y3))) REACH(0, z1, Cons(E(0, y1), y2)) -> c29(MEMBER(E(0, z1), Cons(E(0, y1), y2))) REACH(z0, z1, Cons(E(y2, y3), y4)) -> c29(MEMBER(E(z0, z1), Cons(E(y2, y3), y4))) REACH(z0, z1, Nil) -> c29(MEMBER(E(z0, z1), Nil)) REACH(z0, S(y1), Nil) -> c29(MEMBER(E(z0, S(y1)), Nil)) REACH(z0, 0, Nil) -> c29(MEMBER(E(z0, 0), Nil)) REACH(S(y0), z1, Nil) -> c29(MEMBER(E(S(y0), z1), Nil)) REACH(0, z1, Nil) -> c29(MEMBER(E(0, z1), Nil)) VIA(S(S(y0)), z1, Cons(E(S(S(y1)), z3), z4), z5) -> c21(!EQ'(S(S(y0)), S(S(y1)))) MEMBER(E(S(S(y0)), z1), Cons(E(S(S(y2)), z3), z4)) -> c23(EQEDGE(E(S(S(y0)), z1), E(S(S(y2)), z3))) MEMBER(E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)) -> c23(EQEDGE(E(z0, S(S(y1))), E(z2, S(S(y3))))) VIA(0, z0, Cons(E(S(z1), z2), Cons(E(S(y3), y4), y5)), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(S(y3), y4), y5)), z4)) VIA(0, z0, Cons(E(S(z1), z2), Cons(E(0, y3), y4)), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(0, y3), y4)), z4)) VIA(0, z0, Cons(E(S(z1), z2), Nil), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), z4)) VIA(0, z0, Cons(E(S(z1), z2), Nil), Nil) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Nil)) VIA(0, z0, Cons(E(S(z1), z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Cons(y3, y4))) VIA(S(z0), z1, Cons(E(0, z2), Cons(E(0, y3), y4)), z4) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Cons(E(0, y3), y4)), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y3)), y4), y5)), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y3)), y4), y5)), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), z4)) VIA(S(0), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), Nil) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Nil)) VIA(S(0), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y3), y4)), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y3), y4)), z4)) VIA(S(0), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Cons(y3, y4))) VIA(S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y3, y4))) VIA(S(0), z1, Cons(E(0, z2), Nil), Cons(y2, y3)) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), Cons(y2, y3))) K tuples:none Defined Rule Symbols: reach_3, reach[Ite]_4, member_2, member[Ite]_3, eqEdge_2, eqEdge[Ite]_5, and_2, !EQ_2, via_4, via[Ite]_5, via[Let]_5 Defined Pair Symbols: VIA_4, MEMBER_2, REACH_3, VIA[ITE]_5, MEMBER[ITE]_3, REACH[ITE]_4, !EQ'_2, VIA[LET]_5, EQEDGE_2 Compound Symbols: c21_1, c21_2, c23_2, c29_2, c9_1, c12_1, c14_1, c1_1, c22, c_1, c24, c8_2, c8_1, c10_1, c25_1, c26_1, c29_1, c23_1 ---------------------------------------- (107) CdtForwardInstantiationProof (BOTH BOUNDS(ID, ID)) Use forward instantiation to replace VIA[ITE](False, S(S(x0)), x1, Cons(E(S(0), x2), x3), x4) -> c9(VIA(S(S(x0)), x1, x3, x4)) by VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(S(S(y2)), y3), y4)), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(S(S(y2)), y3), y4), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Nil), z4) -> c9(VIA(S(S(z0)), z1, Nil, z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Nil), Nil) -> c9(VIA(S(S(z0)), z1, Nil, Nil)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(S(0), y2), y3)), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(S(0), y2), y3), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Nil), Cons(y2, y3)) -> c9(VIA(S(S(z0)), z1, Nil, Cons(y2, y3))) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Cons(E(0, y3), y4))), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(0, y3), y4)), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Cons(E(S(S(y3)), y4), y5))), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(S(S(y3)), y4), y5)), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Nil)), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Nil)), Nil) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), Nil)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Cons(E(S(0), y3), y4))), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(S(0), y3), y4)), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Nil)), Cons(y3, y4)) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), Cons(y3, y4))) ---------------------------------------- (108) Obligation: Complexity Dependency Tuples Problem Rules: reach(z0, z1, z2) -> reach[Ite](member(E(z0, z1), z2), z0, z1, z2) reach[Ite](False, z0, z1, z2) -> via(z0, z1, z2, z2) reach[Ite](True, z0, z1, z2) -> Cons(E(z0, z1), Nil) member(z0, Cons(z1, z2)) -> member[Ite](eqEdge(z0, z1), z0, Cons(z1, z2)) member(z0, Nil) -> False member[Ite](False, z0, Cons(z1, z2)) -> member(z0, z2) member[Ite](True, z0, z1) -> True eqEdge(E(z0, z1), E(z2, z3)) -> eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1) eqEdge[Ite](False, z0, z1, z2, z3) -> False eqEdge[Ite](True, z0, z1, z2, z3) -> True and(False, False) -> False and(True, False) -> False and(False, True) -> False and(True, True) -> True !EQ(S(z0), S(z1)) -> !EQ(z0, z1) !EQ(0, S(z0)) -> False !EQ(S(z0), 0) -> False !EQ(0, 0) -> True via(z0, z1, Cons(E(z2, z3), z4), z5) -> via[Ite](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5) via(z0, z1, Nil, z2) -> Nil via[Ite](True, z0, z1, Cons(E(z2, z3), z4), z5) -> via[Let](z0, z1, Cons(E(z2, z3), z4), z5, reach(z3, z1, z5)) via[Ite](False, z0, z1, Cons(z2, z3), z4) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Nil) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Cons(z5, z6)) -> Cons(z2, Cons(z5, z6)) Tuples: VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) MEMBER(E(x0, S(z0)), Cons(E(x2, S(z1)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), !EQ(z0, z1)), x2, S(z1), x0, S(z0)), E(x0, S(z0)), Cons(E(x2, S(z1)), x4)), EQEDGE(E(x0, S(z0)), E(x2, S(z1)))) MEMBER(E(x0, 0), Cons(E(x2, S(z0)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, S(z0), x0, 0), E(x0, 0), Cons(E(x2, S(z0)), x4)), EQEDGE(E(x0, 0), E(x2, S(z0)))) MEMBER(E(x0, S(z0)), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, 0, x0, S(z0)), E(x0, S(z0)), Cons(E(x2, 0), x4)), EQEDGE(E(x0, S(z0)), E(x2, 0))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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))) MEMBER[ITE](False, E(x0, S(x1)), Cons(E(x2, S(x3)), x4)) -> c12(MEMBER(E(x0, S(x1)), x4)) MEMBER[ITE](False, E(x0, 0), Cons(E(x1, S(x2)), x3)) -> c12(MEMBER(E(x0, 0), x3)) MEMBER[ITE](False, E(x0, S(x1)), Cons(E(x2, 0), x3)) -> c12(MEMBER(E(x0, S(x1)), x3)) MEMBER[ITE](False, E(x0, 0), Cons(E(x1, 0), x2)) -> c12(MEMBER(E(x0, 0), x2)) MEMBER[ITE](False, E(S(x0), x1), Cons(E(S(x2), x3), x4)) -> c12(MEMBER(E(S(x0), x1), x4)) MEMBER[ITE](False, E(0, x0), Cons(E(S(x1), x2), x3)) -> c12(MEMBER(E(0, x0), x3)) MEMBER[ITE](False, E(S(x0), x1), Cons(E(0, x2), x3)) -> c12(MEMBER(E(S(x0), x1), x3)) MEMBER[ITE](False, E(0, x0), Cons(E(0, x1), x2)) -> c12(MEMBER(E(0, x0), x2)) REACH[ITE](False, x0, x1, Nil) -> c14(VIA(x0, x1, Nil, Nil)) REACH[ITE](False, x0, x1, Cons(E(x2, x3), x4)) -> c14(VIA(x0, x1, Cons(E(x2, x3), x4), Cons(E(x2, x3), x4))) REACH(x0, x1, Nil) -> c1(REACH[ITE](False, x0, x1, Nil)) REACH(x0, x1, Nil) -> c1(MEMBER(E(x0, x1), Nil)) VIA(0, x0, Nil, x4) -> c22 VIA(S(x0), x1, Nil, x4) -> c22 VIA(S(S(x0)), x1, Nil, x5) -> c22 VIA(S(0), x0, Nil, x4) -> c22 VIA(x0, x1, Nil, Nil) -> c22 !EQ'(S(S(y0)), S(S(y1))) -> c(!EQ'(S(y0), S(y1))) VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5)) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5)) MEMBER(E(x0, x1), Nil) -> c24 MEMBER(E(x0, S(x1)), Nil) -> c24 MEMBER(E(x0, 0), Nil) -> c24 MEMBER(E(S(x0), x1), Nil) -> c24 MEMBER(E(0, x0), Nil) -> c24 VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), Cons(z5, z6)) -> c8(VIA[LET](0, x0, Cons(E(0, x1), x2), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x1, x0), z5), E(x1, x0), Cons(z5, z6)), x1, x0, Cons(z5, z6))), REACH(x1, x0, Cons(z5, z6))) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(z5, z6)) -> c8(VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x3, x1), z5), E(x3, x1), Cons(z5, z6)), x3, x1, Cons(z5, z6))), REACH(x3, x1, Cons(z5, z6))) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), Cons(z5, z6)) -> c8(VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x1, x0), z5), E(x1, x0), Cons(z5, z6)), x1, x0, Cons(z5, z6))), REACH(x1, x0, Cons(z5, z6))) VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), x3) -> c8(REACH(x1, x0, x3)) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), x5) -> c8(REACH(x3, x1, x5)) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), x3) -> c8(REACH(x1, x0, x3)) VIA[LET](0, x0, Cons(E(0, x1), x2), Cons(x3, x4), Nil) -> c10(VIA(0, x0, x2, Cons(x3, x4))) VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(x5, x6), Nil) -> c10(VIA(S(S(x0)), x1, x4, Cons(x5, x6))) VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Cons(x3, x4), Nil) -> c10(VIA(S(0), x0, x2, Cons(x3, x4))) VIA(0, x0, Nil, Cons(z2, z3)) -> c22 VIA(S(x0), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(S(x0)), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(0), x0, Nil, Cons(z2, z3)) -> c22 VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), Nil) -> c8(VIA[LET](0, x0, Cons(E(0, x1), x2), Nil, Nil), REACH(x1, x0, Nil)) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Nil) -> c8(VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Nil, Nil), REACH(x3, x1, Nil)) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), Nil) -> c8(VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Nil, Nil), REACH(x1, x0, Nil)) EQEDGE(E(S(S(y0)), z1), E(S(S(y1)), z3)) -> c25(!EQ'(S(S(y0)), S(S(y1)))) EQEDGE(E(z0, S(S(y0))), E(z2, S(S(y1)))) -> c26(!EQ'(S(S(y0)), S(S(y1)))) VIA[LET](0, x0, Cons(E(0, x1), x2), Nil, Nil) -> c10(VIA(0, x0, x2, Nil)) VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Nil, Nil) -> c10(VIA(S(S(x0)), x1, x4, Nil)) VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Nil, Nil) -> c10(VIA(S(0), x0, x2, Nil)) REACH(z0, S(y1), Cons(E(y2, S(y3)), y4)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, S(y3)), y4))) REACH(z0, 0, Cons(E(y1, S(y2)), y3)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, S(y2)), y3))) REACH(z0, S(y1), Cons(E(y2, 0), y3)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, 0), y3))) REACH(z0, 0, Cons(E(y1, 0), y2)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, 0), y2))) REACH(S(y0), z1, Cons(E(S(y2), y3), y4)) -> c29(MEMBER(E(S(y0), z1), Cons(E(S(y2), y3), y4))) REACH(0, z1, Cons(E(S(y1), y2), y3)) -> c29(MEMBER(E(0, z1), Cons(E(S(y1), y2), y3))) REACH(S(y0), z1, Cons(E(0, y2), y3)) -> c29(MEMBER(E(S(y0), z1), Cons(E(0, y2), y3))) REACH(0, z1, Cons(E(0, y1), y2)) -> c29(MEMBER(E(0, z1), Cons(E(0, y1), y2))) REACH(z0, z1, Cons(E(y2, y3), y4)) -> c29(MEMBER(E(z0, z1), Cons(E(y2, y3), y4))) REACH(z0, z1, Nil) -> c29(MEMBER(E(z0, z1), Nil)) REACH(z0, S(y1), Nil) -> c29(MEMBER(E(z0, S(y1)), Nil)) REACH(z0, 0, Nil) -> c29(MEMBER(E(z0, 0), Nil)) REACH(S(y0), z1, Nil) -> c29(MEMBER(E(S(y0), z1), Nil)) REACH(0, z1, Nil) -> c29(MEMBER(E(0, z1), Nil)) VIA(S(S(y0)), z1, Cons(E(S(S(y1)), z3), z4), z5) -> c21(!EQ'(S(S(y0)), S(S(y1)))) MEMBER(E(S(S(y0)), z1), Cons(E(S(S(y2)), z3), z4)) -> c23(EQEDGE(E(S(S(y0)), z1), E(S(S(y2)), z3))) MEMBER(E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)) -> c23(EQEDGE(E(z0, S(S(y1))), E(z2, S(S(y3))))) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(S(y1), y2), y3)), z4) -> c9(VIA(0, z0, Cons(E(S(y1), y2), y3), z4)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(0, y1), y2)), z4) -> c9(VIA(0, z0, Cons(E(0, y1), y2), z4)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), z4) -> c9(VIA(0, z0, Nil, z4)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Nil) -> c9(VIA(0, z0, Nil, Nil)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Cons(y1, y2)) -> c9(VIA(0, z0, Nil, Cons(y1, y2))) VIA(0, z0, Cons(E(S(z1), z2), Cons(E(S(y3), y4), y5)), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(S(y3), y4), y5)), z4)) VIA(0, z0, Cons(E(S(z1), z2), Cons(E(0, y3), y4)), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(0, y3), y4)), z4)) VIA(0, z0, Cons(E(S(z1), z2), Nil), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), z4)) VIA(0, z0, Cons(E(S(z1), z2), Nil), Nil) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Nil)) VIA(0, z0, Cons(E(S(z1), z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Cons(y3, y4))) VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Cons(E(0, y2), y3)), z4) -> c9(VIA(S(z0), z1, Cons(E(0, y2), y3), z4)) VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4) -> c9(VIA(S(S(y0)), z1, Cons(E(S(S(y2)), y3), y4), z4)) VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), z4) -> c9(VIA(S(z0), z1, Nil, z4)) VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), z4) -> c9(VIA(S(S(y0)), z1, Nil, z4)) VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), z4) -> c9(VIA(S(0), z1, Nil, z4)) VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Nil) -> c9(VIA(S(z0), z1, Nil, Nil)) VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(S(y1)), y2), y3)), z4) -> c9(VIA(S(0), z1, Cons(E(S(S(y1)), y2), y3), z4)) VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4) -> c9(VIA(S(S(y0)), z1, Cons(E(S(0), y2), y3), z4)) VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(0), y1), y2)), z4) -> c9(VIA(S(0), z1, Cons(E(S(0), y1), y2), z4)) VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Cons(y2, y3)) -> c9(VIA(S(z0), z1, Nil, Cons(y2, y3))) VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y2, y3)) -> c9(VIA(S(S(y0)), z1, Nil, Cons(y2, y3))) VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), Cons(y1, y2)) -> c9(VIA(S(0), z1, Nil, Cons(y1, y2))) VIA(S(z0), z1, Cons(E(0, z2), Cons(E(0, y3), y4)), z4) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Cons(E(0, y3), y4)), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y3)), y4), y5)), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y3)), y4), y5)), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), z4)) VIA(S(0), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), Nil) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Nil)) VIA(S(0), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y3), y4)), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y3), y4)), z4)) VIA(S(0), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Cons(y3, y4))) VIA(S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y3, y4))) VIA(S(0), z1, Cons(E(0, z2), Nil), Cons(y2, y3)) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), Cons(y2, y3))) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(S(S(y2)), y3), y4)), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(S(S(y2)), y3), y4), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Nil), z5) -> c9(VIA(S(S(z0)), z1, Nil, z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Nil), Nil) -> c9(VIA(S(S(z0)), z1, Nil, Nil)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(S(0), y2), y3)), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(S(0), y2), y3), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Nil), Cons(y2, y3)) -> c9(VIA(S(S(z0)), z1, Nil, Cons(y2, y3))) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Cons(E(0, y3), y4))), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(0, y3), y4)), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Cons(E(S(S(y3)), y4), y5))), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(S(S(y3)), y4), y5)), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Nil)), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Nil)), Nil) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), Nil)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Cons(E(S(0), y3), y4))), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(S(0), y3), y4)), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Nil)), Cons(y3, y4)) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), Cons(y3, y4))) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Nil), z4) -> c9(VIA(S(0), z0, Nil, z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Nil), Nil) -> c9(VIA(S(0), z0, Nil, Nil)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(S(S(y1)), y2), y3)), z4) -> c9(VIA(S(0), z0, Cons(E(S(S(y1)), y2), y3), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(S(0), y1), y2)), z4) -> c9(VIA(S(0), z0, Cons(E(S(0), y1), y2), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Nil), Cons(y2, y3)) -> c9(VIA(S(0), z0, Nil, Cons(y2, y3))) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y2), Cons(E(0, y3), y4))), z4) -> c9(VIA(S(0), z0, Cons(E(0, y2), Cons(E(0, y3), y4)), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y2), Nil)), z4) -> c9(VIA(S(0), z0, Cons(E(0, y2), Nil), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y2), Nil)), Nil) -> c9(VIA(S(0), z0, Cons(E(0, y2), Nil), Nil)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y1), Cons(E(S(S(y2)), y3), y4))), z4) -> c9(VIA(S(0), z0, Cons(E(0, y1), Cons(E(S(S(y2)), y3), y4)), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y1), Cons(E(S(0), y2), y3))), z4) -> c9(VIA(S(0), z0, Cons(E(0, y1), Cons(E(S(0), y2), y3)), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y2), Nil)), Cons(y3, y4)) -> c9(VIA(S(0), z0, Cons(E(0, y2), Nil), Cons(y3, y4))) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(S(S(y2)), y3), y4)), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(S(S(y2)), y3), y4), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Nil), z4) -> c9(VIA(S(S(z0)), z1, Nil, z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Nil), Nil) -> c9(VIA(S(S(z0)), z1, Nil, Nil)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(S(0), y2), y3)), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(S(0), y2), y3), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Nil), Cons(y2, y3)) -> c9(VIA(S(S(z0)), z1, Nil, Cons(y2, y3))) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Cons(E(0, y3), y4))), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(0, y3), y4)), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Cons(E(S(S(y3)), y4), y5))), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(S(S(y3)), y4), y5)), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Nil)), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Nil)), Nil) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), Nil)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Cons(E(S(0), y3), y4))), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(S(0), y3), y4)), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Nil)), Cons(y3, y4)) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), Cons(y3, y4))) S tuples: VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) MEMBER(E(x0, S(z0)), Cons(E(x2, S(z1)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), !EQ(z0, z1)), x2, S(z1), x0, S(z0)), E(x0, S(z0)), Cons(E(x2, S(z1)), x4)), EQEDGE(E(x0, S(z0)), E(x2, S(z1)))) MEMBER(E(x0, 0), Cons(E(x2, S(z0)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, S(z0), x0, 0), E(x0, 0), Cons(E(x2, S(z0)), x4)), EQEDGE(E(x0, 0), E(x2, S(z0)))) MEMBER(E(x0, S(z0)), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, 0, x0, S(z0)), E(x0, S(z0)), Cons(E(x2, 0), x4)), EQEDGE(E(x0, S(z0)), E(x2, 0))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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))) REACH(x0, x1, Nil) -> c1(REACH[ITE](False, x0, x1, Nil)) REACH(x0, x1, Nil) -> c1(MEMBER(E(x0, x1), Nil)) VIA(0, x0, Nil, x4) -> c22 VIA(S(x0), x1, Nil, x4) -> c22 VIA(S(S(x0)), x1, Nil, x5) -> c22 VIA(S(0), x0, Nil, x4) -> c22 VIA(x0, x1, Nil, Nil) -> c22 VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5)) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5)) MEMBER(E(x0, x1), Nil) -> c24 MEMBER(E(x0, S(x1)), Nil) -> c24 MEMBER(E(x0, 0), Nil) -> c24 MEMBER(E(S(x0), x1), Nil) -> c24 MEMBER(E(0, x0), Nil) -> c24 VIA(0, x0, Nil, Cons(z2, z3)) -> c22 VIA(S(x0), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(S(x0)), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(0), x0, Nil, Cons(z2, z3)) -> c22 EQEDGE(E(S(S(y0)), z1), E(S(S(y1)), z3)) -> c25(!EQ'(S(S(y0)), S(S(y1)))) EQEDGE(E(z0, S(S(y0))), E(z2, S(S(y1)))) -> c26(!EQ'(S(S(y0)), S(S(y1)))) REACH(z0, S(y1), Cons(E(y2, S(y3)), y4)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, S(y3)), y4))) REACH(z0, 0, Cons(E(y1, S(y2)), y3)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, S(y2)), y3))) REACH(z0, S(y1), Cons(E(y2, 0), y3)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, 0), y3))) REACH(z0, 0, Cons(E(y1, 0), y2)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, 0), y2))) REACH(S(y0), z1, Cons(E(S(y2), y3), y4)) -> c29(MEMBER(E(S(y0), z1), Cons(E(S(y2), y3), y4))) REACH(0, z1, Cons(E(S(y1), y2), y3)) -> c29(MEMBER(E(0, z1), Cons(E(S(y1), y2), y3))) REACH(S(y0), z1, Cons(E(0, y2), y3)) -> c29(MEMBER(E(S(y0), z1), Cons(E(0, y2), y3))) REACH(0, z1, Cons(E(0, y1), y2)) -> c29(MEMBER(E(0, z1), Cons(E(0, y1), y2))) REACH(z0, z1, Cons(E(y2, y3), y4)) -> c29(MEMBER(E(z0, z1), Cons(E(y2, y3), y4))) REACH(z0, z1, Nil) -> c29(MEMBER(E(z0, z1), Nil)) REACH(z0, S(y1), Nil) -> c29(MEMBER(E(z0, S(y1)), Nil)) REACH(z0, 0, Nil) -> c29(MEMBER(E(z0, 0), Nil)) REACH(S(y0), z1, Nil) -> c29(MEMBER(E(S(y0), z1), Nil)) REACH(0, z1, Nil) -> c29(MEMBER(E(0, z1), Nil)) VIA(S(S(y0)), z1, Cons(E(S(S(y1)), z3), z4), z5) -> c21(!EQ'(S(S(y0)), S(S(y1)))) MEMBER(E(S(S(y0)), z1), Cons(E(S(S(y2)), z3), z4)) -> c23(EQEDGE(E(S(S(y0)), z1), E(S(S(y2)), z3))) MEMBER(E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)) -> c23(EQEDGE(E(z0, S(S(y1))), E(z2, S(S(y3))))) VIA(0, z0, Cons(E(S(z1), z2), Cons(E(S(y3), y4), y5)), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(S(y3), y4), y5)), z4)) VIA(0, z0, Cons(E(S(z1), z2), Cons(E(0, y3), y4)), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(0, y3), y4)), z4)) VIA(0, z0, Cons(E(S(z1), z2), Nil), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), z4)) VIA(0, z0, Cons(E(S(z1), z2), Nil), Nil) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Nil)) VIA(0, z0, Cons(E(S(z1), z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Cons(y3, y4))) VIA(S(z0), z1, Cons(E(0, z2), Cons(E(0, y3), y4)), z4) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Cons(E(0, y3), y4)), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y3)), y4), y5)), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y3)), y4), y5)), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), z4)) VIA(S(0), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), Nil) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Nil)) VIA(S(0), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y3), y4)), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y3), y4)), z4)) VIA(S(0), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Cons(y3, y4))) VIA(S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y3, y4))) VIA(S(0), z1, Cons(E(0, z2), Nil), Cons(y2, y3)) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), Cons(y2, y3))) K tuples:none Defined Rule Symbols: reach_3, reach[Ite]_4, member_2, member[Ite]_3, eqEdge_2, eqEdge[Ite]_5, and_2, !EQ_2, via_4, via[Ite]_5, via[Let]_5 Defined Pair Symbols: VIA_4, MEMBER_2, REACH_3, MEMBER[ITE]_3, REACH[ITE]_4, !EQ'_2, VIA[ITE]_5, VIA[LET]_5, EQEDGE_2 Compound Symbols: c21_1, c21_2, c23_2, c29_2, c12_1, c14_1, c1_1, c22, c_1, c24, c8_2, c8_1, c10_1, c25_1, c26_1, c29_1, c23_1, c9_1 ---------------------------------------- (109) CdtForwardInstantiationProof (BOTH BOUNDS(ID, ID)) Use forward instantiation to replace MEMBER[ITE](False, E(x0, S(x1)), Cons(E(x2, S(x3)), x4)) -> c12(MEMBER(E(x0, S(x1)), x4)) by MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y2, S(y3)), y4))) -> c12(MEMBER(E(z0, S(z1)), Cons(E(y2, S(y3)), y4))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y2, 0), y3))) -> c12(MEMBER(E(z0, S(z1)), Cons(E(y2, 0), y3))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y2), y3), y4))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(S(y2), y3), y4))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y1), y2), y3))) -> c12(MEMBER(E(0, S(z1)), Cons(E(S(y1), y2), y3))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y2), y3))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(0, y2), y3))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y1), y2))) -> c12(MEMBER(E(0, S(z1)), Cons(E(0, y1), y2))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, S(z3)), Nil)) -> c12(MEMBER(E(z0, S(z1)), Nil)) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, S(z3)), Nil)) -> c12(MEMBER(E(S(y0), S(z1)), Nil)) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, S(z3)), Nil)) -> c12(MEMBER(E(0, S(z1)), Nil)) MEMBER[ITE](False, E(S(S(y0)), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(S(y2)), y3), y4))) -> c12(MEMBER(E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), y3), y4))) MEMBER[ITE](False, E(z0, S(S(y1))), Cons(E(z2, S(z3)), Cons(E(y2, S(S(y3))), y4))) -> c12(MEMBER(E(z0, S(S(y1))), Cons(E(y2, S(S(y3))), y4))) ---------------------------------------- (110) Obligation: Complexity Dependency Tuples Problem Rules: reach(z0, z1, z2) -> reach[Ite](member(E(z0, z1), z2), z0, z1, z2) reach[Ite](False, z0, z1, z2) -> via(z0, z1, z2, z2) reach[Ite](True, z0, z1, z2) -> Cons(E(z0, z1), Nil) member(z0, Cons(z1, z2)) -> member[Ite](eqEdge(z0, z1), z0, Cons(z1, z2)) member(z0, Nil) -> False member[Ite](False, z0, Cons(z1, z2)) -> member(z0, z2) member[Ite](True, z0, z1) -> True eqEdge(E(z0, z1), E(z2, z3)) -> eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1) eqEdge[Ite](False, z0, z1, z2, z3) -> False eqEdge[Ite](True, z0, z1, z2, z3) -> True and(False, False) -> False and(True, False) -> False and(False, True) -> False and(True, True) -> True !EQ(S(z0), S(z1)) -> !EQ(z0, z1) !EQ(0, S(z0)) -> False !EQ(S(z0), 0) -> False !EQ(0, 0) -> True via(z0, z1, Cons(E(z2, z3), z4), z5) -> via[Ite](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5) via(z0, z1, Nil, z2) -> Nil via[Ite](True, z0, z1, Cons(E(z2, z3), z4), z5) -> via[Let](z0, z1, Cons(E(z2, z3), z4), z5, reach(z3, z1, z5)) via[Ite](False, z0, z1, Cons(z2, z3), z4) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Nil) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Cons(z5, z6)) -> Cons(z2, Cons(z5, z6)) Tuples: VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) MEMBER(E(x0, S(z0)), Cons(E(x2, S(z1)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), !EQ(z0, z1)), x2, S(z1), x0, S(z0)), E(x0, S(z0)), Cons(E(x2, S(z1)), x4)), EQEDGE(E(x0, S(z0)), E(x2, S(z1)))) MEMBER(E(x0, 0), Cons(E(x2, S(z0)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, S(z0), x0, 0), E(x0, 0), Cons(E(x2, S(z0)), x4)), EQEDGE(E(x0, 0), E(x2, S(z0)))) MEMBER(E(x0, S(z0)), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, 0, x0, S(z0)), E(x0, S(z0)), Cons(E(x2, 0), x4)), EQEDGE(E(x0, S(z0)), E(x2, 0))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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))) MEMBER[ITE](False, E(x0, 0), Cons(E(x1, S(x2)), x3)) -> c12(MEMBER(E(x0, 0), x3)) MEMBER[ITE](False, E(x0, S(x1)), Cons(E(x2, 0), x3)) -> c12(MEMBER(E(x0, S(x1)), x3)) MEMBER[ITE](False, E(x0, 0), Cons(E(x1, 0), x2)) -> c12(MEMBER(E(x0, 0), x2)) MEMBER[ITE](False, E(S(x0), x1), Cons(E(S(x2), x3), x4)) -> c12(MEMBER(E(S(x0), x1), x4)) MEMBER[ITE](False, E(0, x0), Cons(E(S(x1), x2), x3)) -> c12(MEMBER(E(0, x0), x3)) MEMBER[ITE](False, E(S(x0), x1), Cons(E(0, x2), x3)) -> c12(MEMBER(E(S(x0), x1), x3)) MEMBER[ITE](False, E(0, x0), Cons(E(0, x1), x2)) -> c12(MEMBER(E(0, x0), x2)) REACH[ITE](False, x0, x1, Nil) -> c14(VIA(x0, x1, Nil, Nil)) REACH[ITE](False, x0, x1, Cons(E(x2, x3), x4)) -> c14(VIA(x0, x1, Cons(E(x2, x3), x4), Cons(E(x2, x3), x4))) REACH(x0, x1, Nil) -> c1(REACH[ITE](False, x0, x1, Nil)) REACH(x0, x1, Nil) -> c1(MEMBER(E(x0, x1), Nil)) VIA(0, x0, Nil, x4) -> c22 VIA(S(x0), x1, Nil, x4) -> c22 VIA(S(S(x0)), x1, Nil, x5) -> c22 VIA(S(0), x0, Nil, x4) -> c22 VIA(x0, x1, Nil, Nil) -> c22 !EQ'(S(S(y0)), S(S(y1))) -> c(!EQ'(S(y0), S(y1))) VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5)) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5)) MEMBER(E(x0, x1), Nil) -> c24 MEMBER(E(x0, S(x1)), Nil) -> c24 MEMBER(E(x0, 0), Nil) -> c24 MEMBER(E(S(x0), x1), Nil) -> c24 MEMBER(E(0, x0), Nil) -> c24 VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), Cons(z5, z6)) -> c8(VIA[LET](0, x0, Cons(E(0, x1), x2), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x1, x0), z5), E(x1, x0), Cons(z5, z6)), x1, x0, Cons(z5, z6))), REACH(x1, x0, Cons(z5, z6))) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(z5, z6)) -> c8(VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x3, x1), z5), E(x3, x1), Cons(z5, z6)), x3, x1, Cons(z5, z6))), REACH(x3, x1, Cons(z5, z6))) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), Cons(z5, z6)) -> c8(VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x1, x0), z5), E(x1, x0), Cons(z5, z6)), x1, x0, Cons(z5, z6))), REACH(x1, x0, Cons(z5, z6))) VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), x3) -> c8(REACH(x1, x0, x3)) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), x5) -> c8(REACH(x3, x1, x5)) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), x3) -> c8(REACH(x1, x0, x3)) VIA[LET](0, x0, Cons(E(0, x1), x2), Cons(x3, x4), Nil) -> c10(VIA(0, x0, x2, Cons(x3, x4))) VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(x5, x6), Nil) -> c10(VIA(S(S(x0)), x1, x4, Cons(x5, x6))) VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Cons(x3, x4), Nil) -> c10(VIA(S(0), x0, x2, Cons(x3, x4))) VIA(0, x0, Nil, Cons(z2, z3)) -> c22 VIA(S(x0), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(S(x0)), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(0), x0, Nil, Cons(z2, z3)) -> c22 VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), Nil) -> c8(VIA[LET](0, x0, Cons(E(0, x1), x2), Nil, Nil), REACH(x1, x0, Nil)) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Nil) -> c8(VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Nil, Nil), REACH(x3, x1, Nil)) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), Nil) -> c8(VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Nil, Nil), REACH(x1, x0, Nil)) EQEDGE(E(S(S(y0)), z1), E(S(S(y1)), z3)) -> c25(!EQ'(S(S(y0)), S(S(y1)))) EQEDGE(E(z0, S(S(y0))), E(z2, S(S(y1)))) -> c26(!EQ'(S(S(y0)), S(S(y1)))) VIA[LET](0, x0, Cons(E(0, x1), x2), Nil, Nil) -> c10(VIA(0, x0, x2, Nil)) VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Nil, Nil) -> c10(VIA(S(S(x0)), x1, x4, Nil)) VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Nil, Nil) -> c10(VIA(S(0), x0, x2, Nil)) REACH(z0, S(y1), Cons(E(y2, S(y3)), y4)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, S(y3)), y4))) REACH(z0, 0, Cons(E(y1, S(y2)), y3)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, S(y2)), y3))) REACH(z0, S(y1), Cons(E(y2, 0), y3)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, 0), y3))) REACH(z0, 0, Cons(E(y1, 0), y2)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, 0), y2))) REACH(S(y0), z1, Cons(E(S(y2), y3), y4)) -> c29(MEMBER(E(S(y0), z1), Cons(E(S(y2), y3), y4))) REACH(0, z1, Cons(E(S(y1), y2), y3)) -> c29(MEMBER(E(0, z1), Cons(E(S(y1), y2), y3))) REACH(S(y0), z1, Cons(E(0, y2), y3)) -> c29(MEMBER(E(S(y0), z1), Cons(E(0, y2), y3))) REACH(0, z1, Cons(E(0, y1), y2)) -> c29(MEMBER(E(0, z1), Cons(E(0, y1), y2))) REACH(z0, z1, Cons(E(y2, y3), y4)) -> c29(MEMBER(E(z0, z1), Cons(E(y2, y3), y4))) REACH(z0, z1, Nil) -> c29(MEMBER(E(z0, z1), Nil)) REACH(z0, S(y1), Nil) -> c29(MEMBER(E(z0, S(y1)), Nil)) REACH(z0, 0, Nil) -> c29(MEMBER(E(z0, 0), Nil)) REACH(S(y0), z1, Nil) -> c29(MEMBER(E(S(y0), z1), Nil)) REACH(0, z1, Nil) -> c29(MEMBER(E(0, z1), Nil)) VIA(S(S(y0)), z1, Cons(E(S(S(y1)), z3), z4), z5) -> c21(!EQ'(S(S(y0)), S(S(y1)))) MEMBER(E(S(S(y0)), z1), Cons(E(S(S(y2)), z3), z4)) -> c23(EQEDGE(E(S(S(y0)), z1), E(S(S(y2)), z3))) MEMBER(E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)) -> c23(EQEDGE(E(z0, S(S(y1))), E(z2, S(S(y3))))) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(S(y1), y2), y3)), z4) -> c9(VIA(0, z0, Cons(E(S(y1), y2), y3), z4)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(0, y1), y2)), z4) -> c9(VIA(0, z0, Cons(E(0, y1), y2), z4)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), z4) -> c9(VIA(0, z0, Nil, z4)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Nil) -> c9(VIA(0, z0, Nil, Nil)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Cons(y1, y2)) -> c9(VIA(0, z0, Nil, Cons(y1, y2))) VIA(0, z0, Cons(E(S(z1), z2), Cons(E(S(y3), y4), y5)), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(S(y3), y4), y5)), z4)) VIA(0, z0, Cons(E(S(z1), z2), Cons(E(0, y3), y4)), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(0, y3), y4)), z4)) VIA(0, z0, Cons(E(S(z1), z2), Nil), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), z4)) VIA(0, z0, Cons(E(S(z1), z2), Nil), Nil) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Nil)) VIA(0, z0, Cons(E(S(z1), z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Cons(y3, y4))) VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Cons(E(0, y2), y3)), z4) -> c9(VIA(S(z0), z1, Cons(E(0, y2), y3), z4)) VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4) -> c9(VIA(S(S(y0)), z1, Cons(E(S(S(y2)), y3), y4), z4)) VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), z4) -> c9(VIA(S(z0), z1, Nil, z4)) VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), z4) -> c9(VIA(S(S(y0)), z1, Nil, z4)) VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), z4) -> c9(VIA(S(0), z1, Nil, z4)) VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Nil) -> c9(VIA(S(z0), z1, Nil, Nil)) VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(S(y1)), y2), y3)), z4) -> c9(VIA(S(0), z1, Cons(E(S(S(y1)), y2), y3), z4)) VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4) -> c9(VIA(S(S(y0)), z1, Cons(E(S(0), y2), y3), z4)) VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(0), y1), y2)), z4) -> c9(VIA(S(0), z1, Cons(E(S(0), y1), y2), z4)) VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Cons(y2, y3)) -> c9(VIA(S(z0), z1, Nil, Cons(y2, y3))) VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y2, y3)) -> c9(VIA(S(S(y0)), z1, Nil, Cons(y2, y3))) VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), Cons(y1, y2)) -> c9(VIA(S(0), z1, Nil, Cons(y1, y2))) VIA(S(z0), z1, Cons(E(0, z2), Cons(E(0, y3), y4)), z4) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Cons(E(0, y3), y4)), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y3)), y4), y5)), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y3)), y4), y5)), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), z4)) VIA(S(0), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), Nil) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Nil)) VIA(S(0), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y3), y4)), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y3), y4)), z4)) VIA(S(0), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Cons(y3, y4))) VIA(S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y3, y4))) VIA(S(0), z1, Cons(E(0, z2), Nil), Cons(y2, y3)) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), Cons(y2, y3))) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(S(S(y2)), y3), y4)), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(S(S(y2)), y3), y4), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Nil), z5) -> c9(VIA(S(S(z0)), z1, Nil, z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Nil), Nil) -> c9(VIA(S(S(z0)), z1, Nil, Nil)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(S(0), y2), y3)), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(S(0), y2), y3), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Nil), Cons(y2, y3)) -> c9(VIA(S(S(z0)), z1, Nil, Cons(y2, y3))) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Cons(E(0, y3), y4))), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(0, y3), y4)), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Cons(E(S(S(y3)), y4), y5))), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(S(S(y3)), y4), y5)), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Nil)), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Nil)), Nil) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), Nil)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Cons(E(S(0), y3), y4))), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(S(0), y3), y4)), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Nil)), Cons(y3, y4)) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), Cons(y3, y4))) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Nil), z4) -> c9(VIA(S(0), z0, Nil, z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Nil), Nil) -> c9(VIA(S(0), z0, Nil, Nil)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(S(S(y1)), y2), y3)), z4) -> c9(VIA(S(0), z0, Cons(E(S(S(y1)), y2), y3), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(S(0), y1), y2)), z4) -> c9(VIA(S(0), z0, Cons(E(S(0), y1), y2), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Nil), Cons(y2, y3)) -> c9(VIA(S(0), z0, Nil, Cons(y2, y3))) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y2), Cons(E(0, y3), y4))), z4) -> c9(VIA(S(0), z0, Cons(E(0, y2), Cons(E(0, y3), y4)), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y2), Nil)), z4) -> c9(VIA(S(0), z0, Cons(E(0, y2), Nil), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y2), Nil)), Nil) -> c9(VIA(S(0), z0, Cons(E(0, y2), Nil), Nil)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y1), Cons(E(S(S(y2)), y3), y4))), z4) -> c9(VIA(S(0), z0, Cons(E(0, y1), Cons(E(S(S(y2)), y3), y4)), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y1), Cons(E(S(0), y2), y3))), z4) -> c9(VIA(S(0), z0, Cons(E(0, y1), Cons(E(S(0), y2), y3)), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y2), Nil)), Cons(y3, y4)) -> c9(VIA(S(0), z0, Cons(E(0, y2), Nil), Cons(y3, y4))) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(S(S(y2)), y3), y4)), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(S(S(y2)), y3), y4), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Nil), z4) -> c9(VIA(S(S(z0)), z1, Nil, z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Nil), Nil) -> c9(VIA(S(S(z0)), z1, Nil, Nil)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(S(0), y2), y3)), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(S(0), y2), y3), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Nil), Cons(y2, y3)) -> c9(VIA(S(S(z0)), z1, Nil, Cons(y2, y3))) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Cons(E(0, y3), y4))), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(0, y3), y4)), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Cons(E(S(S(y3)), y4), y5))), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(S(S(y3)), y4), y5)), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Nil)), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Nil)), Nil) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), Nil)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Cons(E(S(0), y3), y4))), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(S(0), y3), y4)), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Nil)), Cons(y3, y4)) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), Cons(y3, y4))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y2, S(y3)), y4))) -> c12(MEMBER(E(z0, S(z1)), Cons(E(y2, S(y3)), y4))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y2, 0), y3))) -> c12(MEMBER(E(z0, S(z1)), Cons(E(y2, 0), y3))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y2), y3), y4))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(S(y2), y3), y4))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y1), y2), y3))) -> c12(MEMBER(E(0, S(z1)), Cons(E(S(y1), y2), y3))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y2), y3))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(0, y2), y3))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y1), y2))) -> c12(MEMBER(E(0, S(z1)), Cons(E(0, y1), y2))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, S(z3)), Nil)) -> c12(MEMBER(E(z0, S(z1)), Nil)) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, S(z3)), Nil)) -> c12(MEMBER(E(S(y0), S(z1)), Nil)) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, S(z3)), Nil)) -> c12(MEMBER(E(0, S(z1)), Nil)) MEMBER[ITE](False, E(S(S(y0)), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(S(y2)), y3), y4))) -> c12(MEMBER(E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), y3), y4))) MEMBER[ITE](False, E(z0, S(S(y1))), Cons(E(z2, S(z3)), Cons(E(y2, S(S(y3))), y4))) -> c12(MEMBER(E(z0, S(S(y1))), Cons(E(y2, S(S(y3))), y4))) S tuples: VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) MEMBER(E(x0, S(z0)), Cons(E(x2, S(z1)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), !EQ(z0, z1)), x2, S(z1), x0, S(z0)), E(x0, S(z0)), Cons(E(x2, S(z1)), x4)), EQEDGE(E(x0, S(z0)), E(x2, S(z1)))) MEMBER(E(x0, 0), Cons(E(x2, S(z0)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, S(z0), x0, 0), E(x0, 0), Cons(E(x2, S(z0)), x4)), EQEDGE(E(x0, 0), E(x2, S(z0)))) MEMBER(E(x0, S(z0)), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, 0, x0, S(z0)), E(x0, S(z0)), Cons(E(x2, 0), x4)), EQEDGE(E(x0, S(z0)), E(x2, 0))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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))) REACH(x0, x1, Nil) -> c1(REACH[ITE](False, x0, x1, Nil)) REACH(x0, x1, Nil) -> c1(MEMBER(E(x0, x1), Nil)) VIA(0, x0, Nil, x4) -> c22 VIA(S(x0), x1, Nil, x4) -> c22 VIA(S(S(x0)), x1, Nil, x5) -> c22 VIA(S(0), x0, Nil, x4) -> c22 VIA(x0, x1, Nil, Nil) -> c22 VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5)) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5)) MEMBER(E(x0, x1), Nil) -> c24 MEMBER(E(x0, S(x1)), Nil) -> c24 MEMBER(E(x0, 0), Nil) -> c24 MEMBER(E(S(x0), x1), Nil) -> c24 MEMBER(E(0, x0), Nil) -> c24 VIA(0, x0, Nil, Cons(z2, z3)) -> c22 VIA(S(x0), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(S(x0)), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(0), x0, Nil, Cons(z2, z3)) -> c22 EQEDGE(E(S(S(y0)), z1), E(S(S(y1)), z3)) -> c25(!EQ'(S(S(y0)), S(S(y1)))) EQEDGE(E(z0, S(S(y0))), E(z2, S(S(y1)))) -> c26(!EQ'(S(S(y0)), S(S(y1)))) REACH(z0, S(y1), Cons(E(y2, S(y3)), y4)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, S(y3)), y4))) REACH(z0, 0, Cons(E(y1, S(y2)), y3)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, S(y2)), y3))) REACH(z0, S(y1), Cons(E(y2, 0), y3)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, 0), y3))) REACH(z0, 0, Cons(E(y1, 0), y2)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, 0), y2))) REACH(S(y0), z1, Cons(E(S(y2), y3), y4)) -> c29(MEMBER(E(S(y0), z1), Cons(E(S(y2), y3), y4))) REACH(0, z1, Cons(E(S(y1), y2), y3)) -> c29(MEMBER(E(0, z1), Cons(E(S(y1), y2), y3))) REACH(S(y0), z1, Cons(E(0, y2), y3)) -> c29(MEMBER(E(S(y0), z1), Cons(E(0, y2), y3))) REACH(0, z1, Cons(E(0, y1), y2)) -> c29(MEMBER(E(0, z1), Cons(E(0, y1), y2))) REACH(z0, z1, Cons(E(y2, y3), y4)) -> c29(MEMBER(E(z0, z1), Cons(E(y2, y3), y4))) REACH(z0, z1, Nil) -> c29(MEMBER(E(z0, z1), Nil)) REACH(z0, S(y1), Nil) -> c29(MEMBER(E(z0, S(y1)), Nil)) REACH(z0, 0, Nil) -> c29(MEMBER(E(z0, 0), Nil)) REACH(S(y0), z1, Nil) -> c29(MEMBER(E(S(y0), z1), Nil)) REACH(0, z1, Nil) -> c29(MEMBER(E(0, z1), Nil)) VIA(S(S(y0)), z1, Cons(E(S(S(y1)), z3), z4), z5) -> c21(!EQ'(S(S(y0)), S(S(y1)))) MEMBER(E(S(S(y0)), z1), Cons(E(S(S(y2)), z3), z4)) -> c23(EQEDGE(E(S(S(y0)), z1), E(S(S(y2)), z3))) MEMBER(E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)) -> c23(EQEDGE(E(z0, S(S(y1))), E(z2, S(S(y3))))) VIA(0, z0, Cons(E(S(z1), z2), Cons(E(S(y3), y4), y5)), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(S(y3), y4), y5)), z4)) VIA(0, z0, Cons(E(S(z1), z2), Cons(E(0, y3), y4)), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(0, y3), y4)), z4)) VIA(0, z0, Cons(E(S(z1), z2), Nil), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), z4)) VIA(0, z0, Cons(E(S(z1), z2), Nil), Nil) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Nil)) VIA(0, z0, Cons(E(S(z1), z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Cons(y3, y4))) VIA(S(z0), z1, Cons(E(0, z2), Cons(E(0, y3), y4)), z4) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Cons(E(0, y3), y4)), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y3)), y4), y5)), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y3)), y4), y5)), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), z4)) VIA(S(0), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), Nil) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Nil)) VIA(S(0), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y3), y4)), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y3), y4)), z4)) VIA(S(0), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Cons(y3, y4))) VIA(S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y3, y4))) VIA(S(0), z1, Cons(E(0, z2), Nil), Cons(y2, y3)) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), Cons(y2, y3))) K tuples:none Defined Rule Symbols: reach_3, reach[Ite]_4, member_2, member[Ite]_3, eqEdge_2, eqEdge[Ite]_5, and_2, !EQ_2, via_4, via[Ite]_5, via[Let]_5 Defined Pair Symbols: VIA_4, MEMBER_2, REACH_3, MEMBER[ITE]_3, REACH[ITE]_4, !EQ'_2, VIA[ITE]_5, VIA[LET]_5, EQEDGE_2 Compound Symbols: c21_1, c21_2, c23_2, c29_2, c12_1, c14_1, c1_1, c22, c_1, c24, c8_2, c8_1, c10_1, c25_1, c26_1, c29_1, c23_1, c9_1 ---------------------------------------- (111) CdtForwardInstantiationProof (BOTH BOUNDS(ID, ID)) Use forward instantiation to replace MEMBER(E(x0, S(z0)), Cons(E(x2, S(z1)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), !EQ(z0, z1)), x2, S(z1), x0, S(z0)), E(x0, S(z0)), Cons(E(x2, S(z1)), x4)), EQEDGE(E(x0, S(z0)), E(x2, S(z1)))) by MEMBER(E(S(y1), S(z1)), Cons(E(S(y3), S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), S(y3)), !EQ(z1, z3)), S(y3), S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(S(y3), S(z3)), z4)), EQEDGE(E(S(y1), S(z1)), E(S(y3), S(z3)))) MEMBER(E(0, S(z1)), Cons(E(S(y2), S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, S(y2)), !EQ(z1, z3)), S(y2), S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(S(y2), S(z3)), z4)), EQEDGE(E(0, S(z1)), E(S(y2), S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(0, S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), 0), !EQ(z1, z3)), 0, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(0, S(z3)), z4)), EQEDGE(E(S(y1), S(z1)), E(0, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(0, S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, 0), !EQ(z1, z3)), 0, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(0, S(z3)), z4)), EQEDGE(E(0, S(z1)), E(0, S(z3)))) MEMBER(E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y0)), S(S(y2))), !EQ(z1, z3)), S(S(y2)), S(z3), S(S(y0)), S(z1)), E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), S(z3)), z4)), EQEDGE(E(S(S(y0)), S(z1)), E(S(S(y2)), S(z3)))) MEMBER(E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(S(y1), S(y3))), z2, S(S(y3)), z0, S(S(y1))), E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)), EQEDGE(E(z0, S(S(y1))), E(z2, S(S(y3))))) MEMBER(E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, S(y6)), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, S(z3), z0, S(z1)), E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, S(y6)), y7))), EQEDGE(E(z0, S(z1)), E(z2, S(z3)))) MEMBER(E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, 0), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, S(z3), z0, S(z1)), E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, 0), y6))), EQEDGE(E(z0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y5), y6), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), !EQ(z1, z3)), z2, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y5), y6), y7))), EQEDGE(E(S(y1), S(z1)), E(z2, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y4), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), !EQ(z1, z3)), z2, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y4), y5), y6))), EQEDGE(E(0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), !EQ(z1, z3)), z2, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y5), y6))), EQEDGE(E(S(y1), S(z1)), E(z2, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), !EQ(z1, z3)), z2, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y4), y5))), EQEDGE(E(0, S(z1)), E(z2, S(z3)))) MEMBER(E(z0, S(z1)), Cons(E(z2, S(z3)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, S(z3), z0, S(z1)), E(z0, S(z1)), Cons(E(z2, S(z3)), Nil)), EQEDGE(E(z0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, S(z3)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), !EQ(z1, z3)), z2, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, S(z3)), Nil)), EQEDGE(E(S(y1), S(z1)), E(z2, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(z2, S(z3)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), !EQ(z1, z3)), z2, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(z2, S(z3)), Nil)), EQEDGE(E(0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(S(y1)), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(S(y5)), y6), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z2), !EQ(z1, z3)), z2, S(z3), S(S(y1)), S(z1)), E(S(S(y1)), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(S(y5)), y6), y7))), EQEDGE(E(S(S(y1)), S(z1)), E(z2, S(z3)))) MEMBER(E(z0, S(S(y2))), Cons(E(z2, S(z3)), Cons(E(y5, S(S(y6))), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(S(y2), z3)), z2, S(z3), z0, S(S(y2))), E(z0, S(S(y2))), Cons(E(z2, S(z3)), Cons(E(y5, S(S(y6))), y7))), EQEDGE(E(z0, S(S(y2))), E(z2, S(z3)))) ---------------------------------------- (112) Obligation: Complexity Dependency Tuples Problem Rules: reach(z0, z1, z2) -> reach[Ite](member(E(z0, z1), z2), z0, z1, z2) reach[Ite](False, z0, z1, z2) -> via(z0, z1, z2, z2) reach[Ite](True, z0, z1, z2) -> Cons(E(z0, z1), Nil) member(z0, Cons(z1, z2)) -> member[Ite](eqEdge(z0, z1), z0, Cons(z1, z2)) member(z0, Nil) -> False member[Ite](False, z0, Cons(z1, z2)) -> member(z0, z2) member[Ite](True, z0, z1) -> True eqEdge(E(z0, z1), E(z2, z3)) -> eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1) eqEdge[Ite](False, z0, z1, z2, z3) -> False eqEdge[Ite](True, z0, z1, z2, z3) -> True and(False, False) -> False and(True, False) -> False and(False, True) -> False and(True, True) -> True !EQ(S(z0), S(z1)) -> !EQ(z0, z1) !EQ(0, S(z0)) -> False !EQ(S(z0), 0) -> False !EQ(0, 0) -> True via(z0, z1, Cons(E(z2, z3), z4), z5) -> via[Ite](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5) via(z0, z1, Nil, z2) -> Nil via[Ite](True, z0, z1, Cons(E(z2, z3), z4), z5) -> via[Let](z0, z1, Cons(E(z2, z3), z4), z5, reach(z3, z1, z5)) via[Ite](False, z0, z1, Cons(z2, z3), z4) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Nil) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Cons(z5, z6)) -> Cons(z2, Cons(z5, z6)) Tuples: VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) MEMBER(E(x0, 0), Cons(E(x2, S(z0)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, S(z0), x0, 0), E(x0, 0), Cons(E(x2, S(z0)), x4)), EQEDGE(E(x0, 0), E(x2, S(z0)))) MEMBER(E(x0, S(z0)), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, 0, x0, S(z0)), E(x0, S(z0)), Cons(E(x2, 0), x4)), EQEDGE(E(x0, S(z0)), E(x2, 0))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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))) MEMBER[ITE](False, E(x0, 0), Cons(E(x1, S(x2)), x3)) -> c12(MEMBER(E(x0, 0), x3)) MEMBER[ITE](False, E(x0, S(x1)), Cons(E(x2, 0), x3)) -> c12(MEMBER(E(x0, S(x1)), x3)) MEMBER[ITE](False, E(x0, 0), Cons(E(x1, 0), x2)) -> c12(MEMBER(E(x0, 0), x2)) MEMBER[ITE](False, E(S(x0), x1), Cons(E(S(x2), x3), x4)) -> c12(MEMBER(E(S(x0), x1), x4)) MEMBER[ITE](False, E(0, x0), Cons(E(S(x1), x2), x3)) -> c12(MEMBER(E(0, x0), x3)) MEMBER[ITE](False, E(S(x0), x1), Cons(E(0, x2), x3)) -> c12(MEMBER(E(S(x0), x1), x3)) MEMBER[ITE](False, E(0, x0), Cons(E(0, x1), x2)) -> c12(MEMBER(E(0, x0), x2)) REACH[ITE](False, x0, x1, Nil) -> c14(VIA(x0, x1, Nil, Nil)) REACH[ITE](False, x0, x1, Cons(E(x2, x3), x4)) -> c14(VIA(x0, x1, Cons(E(x2, x3), x4), Cons(E(x2, x3), x4))) REACH(x0, x1, Nil) -> c1(REACH[ITE](False, x0, x1, Nil)) REACH(x0, x1, Nil) -> c1(MEMBER(E(x0, x1), Nil)) VIA(0, x0, Nil, x4) -> c22 VIA(S(x0), x1, Nil, x4) -> c22 VIA(S(S(x0)), x1, Nil, x5) -> c22 VIA(S(0), x0, Nil, x4) -> c22 VIA(x0, x1, Nil, Nil) -> c22 !EQ'(S(S(y0)), S(S(y1))) -> c(!EQ'(S(y0), S(y1))) VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5)) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5)) MEMBER(E(x0, x1), Nil) -> c24 MEMBER(E(x0, S(x1)), Nil) -> c24 MEMBER(E(x0, 0), Nil) -> c24 MEMBER(E(S(x0), x1), Nil) -> c24 MEMBER(E(0, x0), Nil) -> c24 VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), Cons(z5, z6)) -> c8(VIA[LET](0, x0, Cons(E(0, x1), x2), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x1, x0), z5), E(x1, x0), Cons(z5, z6)), x1, x0, Cons(z5, z6))), REACH(x1, x0, Cons(z5, z6))) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(z5, z6)) -> c8(VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x3, x1), z5), E(x3, x1), Cons(z5, z6)), x3, x1, Cons(z5, z6))), REACH(x3, x1, Cons(z5, z6))) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), Cons(z5, z6)) -> c8(VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x1, x0), z5), E(x1, x0), Cons(z5, z6)), x1, x0, Cons(z5, z6))), REACH(x1, x0, Cons(z5, z6))) VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), x3) -> c8(REACH(x1, x0, x3)) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), x5) -> c8(REACH(x3, x1, x5)) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), x3) -> c8(REACH(x1, x0, x3)) VIA[LET](0, x0, Cons(E(0, x1), x2), Cons(x3, x4), Nil) -> c10(VIA(0, x0, x2, Cons(x3, x4))) VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(x5, x6), Nil) -> c10(VIA(S(S(x0)), x1, x4, Cons(x5, x6))) VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Cons(x3, x4), Nil) -> c10(VIA(S(0), x0, x2, Cons(x3, x4))) VIA(0, x0, Nil, Cons(z2, z3)) -> c22 VIA(S(x0), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(S(x0)), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(0), x0, Nil, Cons(z2, z3)) -> c22 VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), Nil) -> c8(VIA[LET](0, x0, Cons(E(0, x1), x2), Nil, Nil), REACH(x1, x0, Nil)) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Nil) -> c8(VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Nil, Nil), REACH(x3, x1, Nil)) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), Nil) -> c8(VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Nil, Nil), REACH(x1, x0, Nil)) EQEDGE(E(S(S(y0)), z1), E(S(S(y1)), z3)) -> c25(!EQ'(S(S(y0)), S(S(y1)))) EQEDGE(E(z0, S(S(y0))), E(z2, S(S(y1)))) -> c26(!EQ'(S(S(y0)), S(S(y1)))) VIA[LET](0, x0, Cons(E(0, x1), x2), Nil, Nil) -> c10(VIA(0, x0, x2, Nil)) VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Nil, Nil) -> c10(VIA(S(S(x0)), x1, x4, Nil)) VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Nil, Nil) -> c10(VIA(S(0), x0, x2, Nil)) REACH(z0, S(y1), Cons(E(y2, S(y3)), y4)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, S(y3)), y4))) REACH(z0, 0, Cons(E(y1, S(y2)), y3)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, S(y2)), y3))) REACH(z0, S(y1), Cons(E(y2, 0), y3)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, 0), y3))) REACH(z0, 0, Cons(E(y1, 0), y2)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, 0), y2))) REACH(S(y0), z1, Cons(E(S(y2), y3), y4)) -> c29(MEMBER(E(S(y0), z1), Cons(E(S(y2), y3), y4))) REACH(0, z1, Cons(E(S(y1), y2), y3)) -> c29(MEMBER(E(0, z1), Cons(E(S(y1), y2), y3))) REACH(S(y0), z1, Cons(E(0, y2), y3)) -> c29(MEMBER(E(S(y0), z1), Cons(E(0, y2), y3))) REACH(0, z1, Cons(E(0, y1), y2)) -> c29(MEMBER(E(0, z1), Cons(E(0, y1), y2))) REACH(z0, z1, Cons(E(y2, y3), y4)) -> c29(MEMBER(E(z0, z1), Cons(E(y2, y3), y4))) REACH(z0, z1, Nil) -> c29(MEMBER(E(z0, z1), Nil)) REACH(z0, S(y1), Nil) -> c29(MEMBER(E(z0, S(y1)), Nil)) REACH(z0, 0, Nil) -> c29(MEMBER(E(z0, 0), Nil)) REACH(S(y0), z1, Nil) -> c29(MEMBER(E(S(y0), z1), Nil)) REACH(0, z1, Nil) -> c29(MEMBER(E(0, z1), Nil)) VIA(S(S(y0)), z1, Cons(E(S(S(y1)), z3), z4), z5) -> c21(!EQ'(S(S(y0)), S(S(y1)))) MEMBER(E(S(S(y0)), z1), Cons(E(S(S(y2)), z3), z4)) -> c23(EQEDGE(E(S(S(y0)), z1), E(S(S(y2)), z3))) MEMBER(E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)) -> c23(EQEDGE(E(z0, S(S(y1))), E(z2, S(S(y3))))) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(S(y1), y2), y3)), z4) -> c9(VIA(0, z0, Cons(E(S(y1), y2), y3), z4)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(0, y1), y2)), z4) -> c9(VIA(0, z0, Cons(E(0, y1), y2), z4)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), z4) -> c9(VIA(0, z0, Nil, z4)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Nil) -> c9(VIA(0, z0, Nil, Nil)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Cons(y1, y2)) -> c9(VIA(0, z0, Nil, Cons(y1, y2))) VIA(0, z0, Cons(E(S(z1), z2), Cons(E(S(y3), y4), y5)), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(S(y3), y4), y5)), z4)) VIA(0, z0, Cons(E(S(z1), z2), Cons(E(0, y3), y4)), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(0, y3), y4)), z4)) VIA(0, z0, Cons(E(S(z1), z2), Nil), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), z4)) VIA(0, z0, Cons(E(S(z1), z2), Nil), Nil) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Nil)) VIA(0, z0, Cons(E(S(z1), z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Cons(y3, y4))) VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Cons(E(0, y2), y3)), z4) -> c9(VIA(S(z0), z1, Cons(E(0, y2), y3), z4)) VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4) -> c9(VIA(S(S(y0)), z1, Cons(E(S(S(y2)), y3), y4), z4)) VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), z4) -> c9(VIA(S(z0), z1, Nil, z4)) VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), z4) -> c9(VIA(S(S(y0)), z1, Nil, z4)) VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), z4) -> c9(VIA(S(0), z1, Nil, z4)) VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Nil) -> c9(VIA(S(z0), z1, Nil, Nil)) VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(S(y1)), y2), y3)), z4) -> c9(VIA(S(0), z1, Cons(E(S(S(y1)), y2), y3), z4)) VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4) -> c9(VIA(S(S(y0)), z1, Cons(E(S(0), y2), y3), z4)) VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(0), y1), y2)), z4) -> c9(VIA(S(0), z1, Cons(E(S(0), y1), y2), z4)) VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Cons(y2, y3)) -> c9(VIA(S(z0), z1, Nil, Cons(y2, y3))) VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y2, y3)) -> c9(VIA(S(S(y0)), z1, Nil, Cons(y2, y3))) VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), Cons(y1, y2)) -> c9(VIA(S(0), z1, Nil, Cons(y1, y2))) VIA(S(z0), z1, Cons(E(0, z2), Cons(E(0, y3), y4)), z4) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Cons(E(0, y3), y4)), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y3)), y4), y5)), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y3)), y4), y5)), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), z4)) VIA(S(0), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), Nil) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Nil)) VIA(S(0), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y3), y4)), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y3), y4)), z4)) VIA(S(0), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Cons(y3, y4))) VIA(S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y3, y4))) VIA(S(0), z1, Cons(E(0, z2), Nil), Cons(y2, y3)) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), Cons(y2, y3))) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(S(S(y2)), y3), y4)), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(S(S(y2)), y3), y4), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Nil), z5) -> c9(VIA(S(S(z0)), z1, Nil, z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Nil), Nil) -> c9(VIA(S(S(z0)), z1, Nil, Nil)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(S(0), y2), y3)), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(S(0), y2), y3), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Nil), Cons(y2, y3)) -> c9(VIA(S(S(z0)), z1, Nil, Cons(y2, y3))) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Cons(E(0, y3), y4))), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(0, y3), y4)), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Cons(E(S(S(y3)), y4), y5))), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(S(S(y3)), y4), y5)), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Nil)), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Nil)), Nil) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), Nil)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Cons(E(S(0), y3), y4))), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(S(0), y3), y4)), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Nil)), Cons(y3, y4)) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), Cons(y3, y4))) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Nil), z4) -> c9(VIA(S(0), z0, Nil, z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Nil), Nil) -> c9(VIA(S(0), z0, Nil, Nil)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(S(S(y1)), y2), y3)), z4) -> c9(VIA(S(0), z0, Cons(E(S(S(y1)), y2), y3), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(S(0), y1), y2)), z4) -> c9(VIA(S(0), z0, Cons(E(S(0), y1), y2), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Nil), Cons(y2, y3)) -> c9(VIA(S(0), z0, Nil, Cons(y2, y3))) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y2), Cons(E(0, y3), y4))), z4) -> c9(VIA(S(0), z0, Cons(E(0, y2), Cons(E(0, y3), y4)), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y2), Nil)), z4) -> c9(VIA(S(0), z0, Cons(E(0, y2), Nil), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y2), Nil)), Nil) -> c9(VIA(S(0), z0, Cons(E(0, y2), Nil), Nil)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y1), Cons(E(S(S(y2)), y3), y4))), z4) -> c9(VIA(S(0), z0, Cons(E(0, y1), Cons(E(S(S(y2)), y3), y4)), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y1), Cons(E(S(0), y2), y3))), z4) -> c9(VIA(S(0), z0, Cons(E(0, y1), Cons(E(S(0), y2), y3)), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y2), Nil)), Cons(y3, y4)) -> c9(VIA(S(0), z0, Cons(E(0, y2), Nil), Cons(y3, y4))) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(S(S(y2)), y3), y4)), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(S(S(y2)), y3), y4), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Nil), z4) -> c9(VIA(S(S(z0)), z1, Nil, z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Nil), Nil) -> c9(VIA(S(S(z0)), z1, Nil, Nil)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(S(0), y2), y3)), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(S(0), y2), y3), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Nil), Cons(y2, y3)) -> c9(VIA(S(S(z0)), z1, Nil, Cons(y2, y3))) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Cons(E(0, y3), y4))), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(0, y3), y4)), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Cons(E(S(S(y3)), y4), y5))), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(S(S(y3)), y4), y5)), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Nil)), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Nil)), Nil) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), Nil)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Cons(E(S(0), y3), y4))), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(S(0), y3), y4)), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Nil)), Cons(y3, y4)) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), Cons(y3, y4))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y2, S(y3)), y4))) -> c12(MEMBER(E(z0, S(z1)), Cons(E(y2, S(y3)), y4))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y2, 0), y3))) -> c12(MEMBER(E(z0, S(z1)), Cons(E(y2, 0), y3))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y2), y3), y4))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(S(y2), y3), y4))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y1), y2), y3))) -> c12(MEMBER(E(0, S(z1)), Cons(E(S(y1), y2), y3))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y2), y3))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(0, y2), y3))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y1), y2))) -> c12(MEMBER(E(0, S(z1)), Cons(E(0, y1), y2))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, S(z3)), Nil)) -> c12(MEMBER(E(z0, S(z1)), Nil)) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, S(z3)), Nil)) -> c12(MEMBER(E(S(y0), S(z1)), Nil)) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, S(z3)), Nil)) -> c12(MEMBER(E(0, S(z1)), Nil)) MEMBER[ITE](False, E(S(S(y0)), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(S(y2)), y3), y4))) -> c12(MEMBER(E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), y3), y4))) MEMBER[ITE](False, E(z0, S(S(y1))), Cons(E(z2, S(z3)), Cons(E(y2, S(S(y3))), y4))) -> c12(MEMBER(E(z0, S(S(y1))), Cons(E(y2, S(S(y3))), y4))) MEMBER(E(S(y1), S(z1)), Cons(E(S(y3), S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), S(y3)), !EQ(z1, z3)), S(y3), S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(S(y3), S(z3)), z4)), EQEDGE(E(S(y1), S(z1)), E(S(y3), S(z3)))) MEMBER(E(0, S(z1)), Cons(E(S(y2), S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, S(y2)), !EQ(z1, z3)), S(y2), S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(S(y2), S(z3)), z4)), EQEDGE(E(0, S(z1)), E(S(y2), S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(0, S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), 0), !EQ(z1, z3)), 0, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(0, S(z3)), z4)), EQEDGE(E(S(y1), S(z1)), E(0, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(0, S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, 0), !EQ(z1, z3)), 0, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(0, S(z3)), z4)), EQEDGE(E(0, S(z1)), E(0, S(z3)))) MEMBER(E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y0)), S(S(y2))), !EQ(z1, z3)), S(S(y2)), S(z3), S(S(y0)), S(z1)), E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), S(z3)), z4)), EQEDGE(E(S(S(y0)), S(z1)), E(S(S(y2)), S(z3)))) MEMBER(E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(S(y1), S(y3))), z2, S(S(y3)), z0, S(S(y1))), E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)), EQEDGE(E(z0, S(S(y1))), E(z2, S(S(y3))))) MEMBER(E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, S(y6)), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, S(z3), z0, S(z1)), E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, S(y6)), y7))), EQEDGE(E(z0, S(z1)), E(z2, S(z3)))) MEMBER(E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, 0), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, S(z3), z0, S(z1)), E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, 0), y6))), EQEDGE(E(z0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y5), y6), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), !EQ(z1, z3)), z2, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y5), y6), y7))), EQEDGE(E(S(y1), S(z1)), E(z2, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y4), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), !EQ(z1, z3)), z2, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y4), y5), y6))), EQEDGE(E(0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), !EQ(z1, z3)), z2, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y5), y6))), EQEDGE(E(S(y1), S(z1)), E(z2, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), !EQ(z1, z3)), z2, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y4), y5))), EQEDGE(E(0, S(z1)), E(z2, S(z3)))) MEMBER(E(z0, S(z1)), Cons(E(z2, S(z3)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, S(z3), z0, S(z1)), E(z0, S(z1)), Cons(E(z2, S(z3)), Nil)), EQEDGE(E(z0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, S(z3)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), !EQ(z1, z3)), z2, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, S(z3)), Nil)), EQEDGE(E(S(y1), S(z1)), E(z2, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(z2, S(z3)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), !EQ(z1, z3)), z2, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(z2, S(z3)), Nil)), EQEDGE(E(0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(S(y1)), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(S(y5)), y6), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z2), !EQ(z1, z3)), z2, S(z3), S(S(y1)), S(z1)), E(S(S(y1)), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(S(y5)), y6), y7))), EQEDGE(E(S(S(y1)), S(z1)), E(z2, S(z3)))) MEMBER(E(z0, S(S(y2))), Cons(E(z2, S(z3)), Cons(E(y5, S(S(y6))), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(S(y2), z3)), z2, S(z3), z0, S(S(y2))), E(z0, S(S(y2))), Cons(E(z2, S(z3)), Cons(E(y5, S(S(y6))), y7))), EQEDGE(E(z0, S(S(y2))), E(z2, S(z3)))) S tuples: VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) MEMBER(E(x0, 0), Cons(E(x2, S(z0)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, S(z0), x0, 0), E(x0, 0), Cons(E(x2, S(z0)), x4)), EQEDGE(E(x0, 0), E(x2, S(z0)))) MEMBER(E(x0, S(z0)), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, 0, x0, S(z0)), E(x0, S(z0)), Cons(E(x2, 0), x4)), EQEDGE(E(x0, S(z0)), E(x2, 0))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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))) REACH(x0, x1, Nil) -> c1(REACH[ITE](False, x0, x1, Nil)) REACH(x0, x1, Nil) -> c1(MEMBER(E(x0, x1), Nil)) VIA(0, x0, Nil, x4) -> c22 VIA(S(x0), x1, Nil, x4) -> c22 VIA(S(S(x0)), x1, Nil, x5) -> c22 VIA(S(0), x0, Nil, x4) -> c22 VIA(x0, x1, Nil, Nil) -> c22 VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5)) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5)) MEMBER(E(x0, x1), Nil) -> c24 MEMBER(E(x0, S(x1)), Nil) -> c24 MEMBER(E(x0, 0), Nil) -> c24 MEMBER(E(S(x0), x1), Nil) -> c24 MEMBER(E(0, x0), Nil) -> c24 VIA(0, x0, Nil, Cons(z2, z3)) -> c22 VIA(S(x0), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(S(x0)), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(0), x0, Nil, Cons(z2, z3)) -> c22 EQEDGE(E(S(S(y0)), z1), E(S(S(y1)), z3)) -> c25(!EQ'(S(S(y0)), S(S(y1)))) EQEDGE(E(z0, S(S(y0))), E(z2, S(S(y1)))) -> c26(!EQ'(S(S(y0)), S(S(y1)))) REACH(z0, S(y1), Cons(E(y2, S(y3)), y4)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, S(y3)), y4))) REACH(z0, 0, Cons(E(y1, S(y2)), y3)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, S(y2)), y3))) REACH(z0, S(y1), Cons(E(y2, 0), y3)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, 0), y3))) REACH(z0, 0, Cons(E(y1, 0), y2)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, 0), y2))) REACH(S(y0), z1, Cons(E(S(y2), y3), y4)) -> c29(MEMBER(E(S(y0), z1), Cons(E(S(y2), y3), y4))) REACH(0, z1, Cons(E(S(y1), y2), y3)) -> c29(MEMBER(E(0, z1), Cons(E(S(y1), y2), y3))) REACH(S(y0), z1, Cons(E(0, y2), y3)) -> c29(MEMBER(E(S(y0), z1), Cons(E(0, y2), y3))) REACH(0, z1, Cons(E(0, y1), y2)) -> c29(MEMBER(E(0, z1), Cons(E(0, y1), y2))) REACH(z0, z1, Cons(E(y2, y3), y4)) -> c29(MEMBER(E(z0, z1), Cons(E(y2, y3), y4))) REACH(z0, z1, Nil) -> c29(MEMBER(E(z0, z1), Nil)) REACH(z0, S(y1), Nil) -> c29(MEMBER(E(z0, S(y1)), Nil)) REACH(z0, 0, Nil) -> c29(MEMBER(E(z0, 0), Nil)) REACH(S(y0), z1, Nil) -> c29(MEMBER(E(S(y0), z1), Nil)) REACH(0, z1, Nil) -> c29(MEMBER(E(0, z1), Nil)) VIA(S(S(y0)), z1, Cons(E(S(S(y1)), z3), z4), z5) -> c21(!EQ'(S(S(y0)), S(S(y1)))) MEMBER(E(S(S(y0)), z1), Cons(E(S(S(y2)), z3), z4)) -> c23(EQEDGE(E(S(S(y0)), z1), E(S(S(y2)), z3))) MEMBER(E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)) -> c23(EQEDGE(E(z0, S(S(y1))), E(z2, S(S(y3))))) VIA(0, z0, Cons(E(S(z1), z2), Cons(E(S(y3), y4), y5)), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(S(y3), y4), y5)), z4)) VIA(0, z0, Cons(E(S(z1), z2), Cons(E(0, y3), y4)), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(0, y3), y4)), z4)) VIA(0, z0, Cons(E(S(z1), z2), Nil), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), z4)) VIA(0, z0, Cons(E(S(z1), z2), Nil), Nil) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Nil)) VIA(0, z0, Cons(E(S(z1), z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Cons(y3, y4))) VIA(S(z0), z1, Cons(E(0, z2), Cons(E(0, y3), y4)), z4) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Cons(E(0, y3), y4)), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y3)), y4), y5)), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y3)), y4), y5)), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), z4)) VIA(S(0), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), Nil) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Nil)) VIA(S(0), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y3), y4)), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y3), y4)), z4)) VIA(S(0), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Cons(y3, y4))) VIA(S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y3, y4))) VIA(S(0), z1, Cons(E(0, z2), Nil), Cons(y2, y3)) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), Cons(y2, y3))) MEMBER(E(S(y1), S(z1)), Cons(E(S(y3), S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), S(y3)), !EQ(z1, z3)), S(y3), S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(S(y3), S(z3)), z4)), EQEDGE(E(S(y1), S(z1)), E(S(y3), S(z3)))) MEMBER(E(0, S(z1)), Cons(E(S(y2), S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, S(y2)), !EQ(z1, z3)), S(y2), S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(S(y2), S(z3)), z4)), EQEDGE(E(0, S(z1)), E(S(y2), S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(0, S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), 0), !EQ(z1, z3)), 0, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(0, S(z3)), z4)), EQEDGE(E(S(y1), S(z1)), E(0, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(0, S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, 0), !EQ(z1, z3)), 0, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(0, S(z3)), z4)), EQEDGE(E(0, S(z1)), E(0, S(z3)))) MEMBER(E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y0)), S(S(y2))), !EQ(z1, z3)), S(S(y2)), S(z3), S(S(y0)), S(z1)), E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), S(z3)), z4)), EQEDGE(E(S(S(y0)), S(z1)), E(S(S(y2)), S(z3)))) MEMBER(E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(S(y1), S(y3))), z2, S(S(y3)), z0, S(S(y1))), E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)), EQEDGE(E(z0, S(S(y1))), E(z2, S(S(y3))))) MEMBER(E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, S(y6)), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, S(z3), z0, S(z1)), E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, S(y6)), y7))), EQEDGE(E(z0, S(z1)), E(z2, S(z3)))) MEMBER(E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, 0), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, S(z3), z0, S(z1)), E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, 0), y6))), EQEDGE(E(z0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y5), y6), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), !EQ(z1, z3)), z2, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y5), y6), y7))), EQEDGE(E(S(y1), S(z1)), E(z2, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y4), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), !EQ(z1, z3)), z2, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y4), y5), y6))), EQEDGE(E(0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), !EQ(z1, z3)), z2, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y5), y6))), EQEDGE(E(S(y1), S(z1)), E(z2, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), !EQ(z1, z3)), z2, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y4), y5))), EQEDGE(E(0, S(z1)), E(z2, S(z3)))) MEMBER(E(z0, S(z1)), Cons(E(z2, S(z3)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, S(z3), z0, S(z1)), E(z0, S(z1)), Cons(E(z2, S(z3)), Nil)), EQEDGE(E(z0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, S(z3)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), !EQ(z1, z3)), z2, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, S(z3)), Nil)), EQEDGE(E(S(y1), S(z1)), E(z2, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(z2, S(z3)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), !EQ(z1, z3)), z2, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(z2, S(z3)), Nil)), EQEDGE(E(0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(S(y1)), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(S(y5)), y6), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z2), !EQ(z1, z3)), z2, S(z3), S(S(y1)), S(z1)), E(S(S(y1)), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(S(y5)), y6), y7))), EQEDGE(E(S(S(y1)), S(z1)), E(z2, S(z3)))) MEMBER(E(z0, S(S(y2))), Cons(E(z2, S(z3)), Cons(E(y5, S(S(y6))), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(S(y2), z3)), z2, S(z3), z0, S(S(y2))), E(z0, S(S(y2))), Cons(E(z2, S(z3)), Cons(E(y5, S(S(y6))), y7))), EQEDGE(E(z0, S(S(y2))), E(z2, S(z3)))) K tuples:none Defined Rule Symbols: reach_3, reach[Ite]_4, member_2, member[Ite]_3, eqEdge_2, eqEdge[Ite]_5, and_2, !EQ_2, via_4, via[Ite]_5, via[Let]_5 Defined Pair Symbols: VIA_4, MEMBER_2, REACH_3, MEMBER[ITE]_3, REACH[ITE]_4, !EQ'_2, VIA[ITE]_5, VIA[LET]_5, EQEDGE_2 Compound Symbols: c21_1, c21_2, c23_2, c29_2, c12_1, c14_1, c1_1, c22, c_1, c24, c8_2, c8_1, c10_1, c25_1, c26_1, c29_1, c23_1, c9_1 ---------------------------------------- (113) CdtForwardInstantiationProof (BOTH BOUNDS(ID, ID)) Use forward instantiation to replace MEMBER[ITE](False, E(x0, 0), Cons(E(x1, S(x2)), x3)) -> c12(MEMBER(E(x0, 0), x3)) by MEMBER[ITE](False, E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y1, S(y2)), y3))) -> c12(MEMBER(E(z0, 0), Cons(E(y1, S(y2)), y3))) MEMBER[ITE](False, E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y1, 0), y2))) -> c12(MEMBER(E(z0, 0), Cons(E(y1, 0), y2))) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, S(z2)), Cons(E(S(y2), y3), y4))) -> c12(MEMBER(E(S(y0), 0), Cons(E(S(y2), y3), y4))) MEMBER[ITE](False, E(0, 0), Cons(E(z1, S(z2)), Cons(E(S(y1), y2), y3))) -> c12(MEMBER(E(0, 0), Cons(E(S(y1), y2), y3))) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, S(z2)), Cons(E(0, y2), y3))) -> c12(MEMBER(E(S(y0), 0), Cons(E(0, y2), y3))) MEMBER[ITE](False, E(0, 0), Cons(E(z1, S(z2)), Cons(E(0, y1), y2))) -> c12(MEMBER(E(0, 0), Cons(E(0, y1), y2))) MEMBER[ITE](False, E(z0, 0), Cons(E(z1, S(z2)), Nil)) -> c12(MEMBER(E(z0, 0), Nil)) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, S(z2)), Nil)) -> c12(MEMBER(E(S(y0), 0), Nil)) MEMBER[ITE](False, E(0, 0), Cons(E(z1, S(z2)), Nil)) -> c12(MEMBER(E(0, 0), Nil)) MEMBER[ITE](False, E(S(S(y0)), 0), Cons(E(z1, S(z2)), Cons(E(S(S(y2)), y3), y4))) -> c12(MEMBER(E(S(S(y0)), 0), Cons(E(S(S(y2)), y3), y4))) ---------------------------------------- (114) Obligation: Complexity Dependency Tuples Problem Rules: reach(z0, z1, z2) -> reach[Ite](member(E(z0, z1), z2), z0, z1, z2) reach[Ite](False, z0, z1, z2) -> via(z0, z1, z2, z2) reach[Ite](True, z0, z1, z2) -> Cons(E(z0, z1), Nil) member(z0, Cons(z1, z2)) -> member[Ite](eqEdge(z0, z1), z0, Cons(z1, z2)) member(z0, Nil) -> False member[Ite](False, z0, Cons(z1, z2)) -> member(z0, z2) member[Ite](True, z0, z1) -> True eqEdge(E(z0, z1), E(z2, z3)) -> eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1) eqEdge[Ite](False, z0, z1, z2, z3) -> False eqEdge[Ite](True, z0, z1, z2, z3) -> True and(False, False) -> False and(True, False) -> False and(False, True) -> False and(True, True) -> True !EQ(S(z0), S(z1)) -> !EQ(z0, z1) !EQ(0, S(z0)) -> False !EQ(S(z0), 0) -> False !EQ(0, 0) -> True via(z0, z1, Cons(E(z2, z3), z4), z5) -> via[Ite](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5) via(z0, z1, Nil, z2) -> Nil via[Ite](True, z0, z1, Cons(E(z2, z3), z4), z5) -> via[Let](z0, z1, Cons(E(z2, z3), z4), z5, reach(z3, z1, z5)) via[Ite](False, z0, z1, Cons(z2, z3), z4) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Nil) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Cons(z5, z6)) -> Cons(z2, Cons(z5, z6)) Tuples: VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) MEMBER(E(x0, 0), Cons(E(x2, S(z0)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, S(z0), x0, 0), E(x0, 0), Cons(E(x2, S(z0)), x4)), EQEDGE(E(x0, 0), E(x2, S(z0)))) MEMBER(E(x0, S(z0)), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, 0, x0, S(z0)), E(x0, S(z0)), Cons(E(x2, 0), x4)), EQEDGE(E(x0, S(z0)), E(x2, 0))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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))) MEMBER[ITE](False, E(x0, S(x1)), Cons(E(x2, 0), x3)) -> c12(MEMBER(E(x0, S(x1)), x3)) MEMBER[ITE](False, E(x0, 0), Cons(E(x1, 0), x2)) -> c12(MEMBER(E(x0, 0), x2)) MEMBER[ITE](False, E(S(x0), x1), Cons(E(S(x2), x3), x4)) -> c12(MEMBER(E(S(x0), x1), x4)) MEMBER[ITE](False, E(0, x0), Cons(E(S(x1), x2), x3)) -> c12(MEMBER(E(0, x0), x3)) MEMBER[ITE](False, E(S(x0), x1), Cons(E(0, x2), x3)) -> c12(MEMBER(E(S(x0), x1), x3)) MEMBER[ITE](False, E(0, x0), Cons(E(0, x1), x2)) -> c12(MEMBER(E(0, x0), x2)) REACH[ITE](False, x0, x1, Nil) -> c14(VIA(x0, x1, Nil, Nil)) REACH[ITE](False, x0, x1, Cons(E(x2, x3), x4)) -> c14(VIA(x0, x1, Cons(E(x2, x3), x4), Cons(E(x2, x3), x4))) REACH(x0, x1, Nil) -> c1(REACH[ITE](False, x0, x1, Nil)) REACH(x0, x1, Nil) -> c1(MEMBER(E(x0, x1), Nil)) VIA(0, x0, Nil, x4) -> c22 VIA(S(x0), x1, Nil, x4) -> c22 VIA(S(S(x0)), x1, Nil, x5) -> c22 VIA(S(0), x0, Nil, x4) -> c22 VIA(x0, x1, Nil, Nil) -> c22 !EQ'(S(S(y0)), S(S(y1))) -> c(!EQ'(S(y0), S(y1))) VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5)) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5)) MEMBER(E(x0, x1), Nil) -> c24 MEMBER(E(x0, S(x1)), Nil) -> c24 MEMBER(E(x0, 0), Nil) -> c24 MEMBER(E(S(x0), x1), Nil) -> c24 MEMBER(E(0, x0), Nil) -> c24 VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), Cons(z5, z6)) -> c8(VIA[LET](0, x0, Cons(E(0, x1), x2), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x1, x0), z5), E(x1, x0), Cons(z5, z6)), x1, x0, Cons(z5, z6))), REACH(x1, x0, Cons(z5, z6))) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(z5, z6)) -> c8(VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x3, x1), z5), E(x3, x1), Cons(z5, z6)), x3, x1, Cons(z5, z6))), REACH(x3, x1, Cons(z5, z6))) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), Cons(z5, z6)) -> c8(VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x1, x0), z5), E(x1, x0), Cons(z5, z6)), x1, x0, Cons(z5, z6))), REACH(x1, x0, Cons(z5, z6))) VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), x3) -> c8(REACH(x1, x0, x3)) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), x5) -> c8(REACH(x3, x1, x5)) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), x3) -> c8(REACH(x1, x0, x3)) VIA[LET](0, x0, Cons(E(0, x1), x2), Cons(x3, x4), Nil) -> c10(VIA(0, x0, x2, Cons(x3, x4))) VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(x5, x6), Nil) -> c10(VIA(S(S(x0)), x1, x4, Cons(x5, x6))) VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Cons(x3, x4), Nil) -> c10(VIA(S(0), x0, x2, Cons(x3, x4))) VIA(0, x0, Nil, Cons(z2, z3)) -> c22 VIA(S(x0), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(S(x0)), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(0), x0, Nil, Cons(z2, z3)) -> c22 VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), Nil) -> c8(VIA[LET](0, x0, Cons(E(0, x1), x2), Nil, Nil), REACH(x1, x0, Nil)) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Nil) -> c8(VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Nil, Nil), REACH(x3, x1, Nil)) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), Nil) -> c8(VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Nil, Nil), REACH(x1, x0, Nil)) EQEDGE(E(S(S(y0)), z1), E(S(S(y1)), z3)) -> c25(!EQ'(S(S(y0)), S(S(y1)))) EQEDGE(E(z0, S(S(y0))), E(z2, S(S(y1)))) -> c26(!EQ'(S(S(y0)), S(S(y1)))) VIA[LET](0, x0, Cons(E(0, x1), x2), Nil, Nil) -> c10(VIA(0, x0, x2, Nil)) VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Nil, Nil) -> c10(VIA(S(S(x0)), x1, x4, Nil)) VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Nil, Nil) -> c10(VIA(S(0), x0, x2, Nil)) REACH(z0, S(y1), Cons(E(y2, S(y3)), y4)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, S(y3)), y4))) REACH(z0, 0, Cons(E(y1, S(y2)), y3)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, S(y2)), y3))) REACH(z0, S(y1), Cons(E(y2, 0), y3)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, 0), y3))) REACH(z0, 0, Cons(E(y1, 0), y2)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, 0), y2))) REACH(S(y0), z1, Cons(E(S(y2), y3), y4)) -> c29(MEMBER(E(S(y0), z1), Cons(E(S(y2), y3), y4))) REACH(0, z1, Cons(E(S(y1), y2), y3)) -> c29(MEMBER(E(0, z1), Cons(E(S(y1), y2), y3))) REACH(S(y0), z1, Cons(E(0, y2), y3)) -> c29(MEMBER(E(S(y0), z1), Cons(E(0, y2), y3))) REACH(0, z1, Cons(E(0, y1), y2)) -> c29(MEMBER(E(0, z1), Cons(E(0, y1), y2))) REACH(z0, z1, Cons(E(y2, y3), y4)) -> c29(MEMBER(E(z0, z1), Cons(E(y2, y3), y4))) REACH(z0, z1, Nil) -> c29(MEMBER(E(z0, z1), Nil)) REACH(z0, S(y1), Nil) -> c29(MEMBER(E(z0, S(y1)), Nil)) REACH(z0, 0, Nil) -> c29(MEMBER(E(z0, 0), Nil)) REACH(S(y0), z1, Nil) -> c29(MEMBER(E(S(y0), z1), Nil)) REACH(0, z1, Nil) -> c29(MEMBER(E(0, z1), Nil)) VIA(S(S(y0)), z1, Cons(E(S(S(y1)), z3), z4), z5) -> c21(!EQ'(S(S(y0)), S(S(y1)))) MEMBER(E(S(S(y0)), z1), Cons(E(S(S(y2)), z3), z4)) -> c23(EQEDGE(E(S(S(y0)), z1), E(S(S(y2)), z3))) MEMBER(E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)) -> c23(EQEDGE(E(z0, S(S(y1))), E(z2, S(S(y3))))) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(S(y1), y2), y3)), z4) -> c9(VIA(0, z0, Cons(E(S(y1), y2), y3), z4)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(0, y1), y2)), z4) -> c9(VIA(0, z0, Cons(E(0, y1), y2), z4)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), z4) -> c9(VIA(0, z0, Nil, z4)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Nil) -> c9(VIA(0, z0, Nil, Nil)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Cons(y1, y2)) -> c9(VIA(0, z0, Nil, Cons(y1, y2))) VIA(0, z0, Cons(E(S(z1), z2), Cons(E(S(y3), y4), y5)), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(S(y3), y4), y5)), z4)) VIA(0, z0, Cons(E(S(z1), z2), Cons(E(0, y3), y4)), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(0, y3), y4)), z4)) VIA(0, z0, Cons(E(S(z1), z2), Nil), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), z4)) VIA(0, z0, Cons(E(S(z1), z2), Nil), Nil) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Nil)) VIA(0, z0, Cons(E(S(z1), z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Cons(y3, y4))) VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Cons(E(0, y2), y3)), z4) -> c9(VIA(S(z0), z1, Cons(E(0, y2), y3), z4)) VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4) -> c9(VIA(S(S(y0)), z1, Cons(E(S(S(y2)), y3), y4), z4)) VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), z4) -> c9(VIA(S(z0), z1, Nil, z4)) VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), z4) -> c9(VIA(S(S(y0)), z1, Nil, z4)) VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), z4) -> c9(VIA(S(0), z1, Nil, z4)) VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Nil) -> c9(VIA(S(z0), z1, Nil, Nil)) VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(S(y1)), y2), y3)), z4) -> c9(VIA(S(0), z1, Cons(E(S(S(y1)), y2), y3), z4)) VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4) -> c9(VIA(S(S(y0)), z1, Cons(E(S(0), y2), y3), z4)) VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(0), y1), y2)), z4) -> c9(VIA(S(0), z1, Cons(E(S(0), y1), y2), z4)) VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Cons(y2, y3)) -> c9(VIA(S(z0), z1, Nil, Cons(y2, y3))) VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y2, y3)) -> c9(VIA(S(S(y0)), z1, Nil, Cons(y2, y3))) VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), Cons(y1, y2)) -> c9(VIA(S(0), z1, Nil, Cons(y1, y2))) VIA(S(z0), z1, Cons(E(0, z2), Cons(E(0, y3), y4)), z4) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Cons(E(0, y3), y4)), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y3)), y4), y5)), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y3)), y4), y5)), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), z4)) VIA(S(0), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), Nil) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Nil)) VIA(S(0), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y3), y4)), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y3), y4)), z4)) VIA(S(0), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Cons(y3, y4))) VIA(S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y3, y4))) VIA(S(0), z1, Cons(E(0, z2), Nil), Cons(y2, y3)) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), Cons(y2, y3))) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(S(S(y2)), y3), y4)), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(S(S(y2)), y3), y4), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Nil), z5) -> c9(VIA(S(S(z0)), z1, Nil, z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Nil), Nil) -> c9(VIA(S(S(z0)), z1, Nil, Nil)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(S(0), y2), y3)), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(S(0), y2), y3), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Nil), Cons(y2, y3)) -> c9(VIA(S(S(z0)), z1, Nil, Cons(y2, y3))) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Cons(E(0, y3), y4))), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(0, y3), y4)), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Cons(E(S(S(y3)), y4), y5))), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(S(S(y3)), y4), y5)), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Nil)), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Nil)), Nil) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), Nil)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Cons(E(S(0), y3), y4))), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(S(0), y3), y4)), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Nil)), Cons(y3, y4)) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), Cons(y3, y4))) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Nil), z4) -> c9(VIA(S(0), z0, Nil, z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Nil), Nil) -> c9(VIA(S(0), z0, Nil, Nil)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(S(S(y1)), y2), y3)), z4) -> c9(VIA(S(0), z0, Cons(E(S(S(y1)), y2), y3), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(S(0), y1), y2)), z4) -> c9(VIA(S(0), z0, Cons(E(S(0), y1), y2), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Nil), Cons(y2, y3)) -> c9(VIA(S(0), z0, Nil, Cons(y2, y3))) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y2), Cons(E(0, y3), y4))), z4) -> c9(VIA(S(0), z0, Cons(E(0, y2), Cons(E(0, y3), y4)), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y2), Nil)), z4) -> c9(VIA(S(0), z0, Cons(E(0, y2), Nil), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y2), Nil)), Nil) -> c9(VIA(S(0), z0, Cons(E(0, y2), Nil), Nil)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y1), Cons(E(S(S(y2)), y3), y4))), z4) -> c9(VIA(S(0), z0, Cons(E(0, y1), Cons(E(S(S(y2)), y3), y4)), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y1), Cons(E(S(0), y2), y3))), z4) -> c9(VIA(S(0), z0, Cons(E(0, y1), Cons(E(S(0), y2), y3)), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y2), Nil)), Cons(y3, y4)) -> c9(VIA(S(0), z0, Cons(E(0, y2), Nil), Cons(y3, y4))) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(S(S(y2)), y3), y4)), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(S(S(y2)), y3), y4), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Nil), z4) -> c9(VIA(S(S(z0)), z1, Nil, z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Nil), Nil) -> c9(VIA(S(S(z0)), z1, Nil, Nil)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(S(0), y2), y3)), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(S(0), y2), y3), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Nil), Cons(y2, y3)) -> c9(VIA(S(S(z0)), z1, Nil, Cons(y2, y3))) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Cons(E(0, y3), y4))), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(0, y3), y4)), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Cons(E(S(S(y3)), y4), y5))), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(S(S(y3)), y4), y5)), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Nil)), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Nil)), Nil) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), Nil)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Cons(E(S(0), y3), y4))), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(S(0), y3), y4)), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Nil)), Cons(y3, y4)) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), Cons(y3, y4))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y2, S(y3)), y4))) -> c12(MEMBER(E(z0, S(z1)), Cons(E(y2, S(y3)), y4))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y2, 0), y3))) -> c12(MEMBER(E(z0, S(z1)), Cons(E(y2, 0), y3))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y2), y3), y4))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(S(y2), y3), y4))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y1), y2), y3))) -> c12(MEMBER(E(0, S(z1)), Cons(E(S(y1), y2), y3))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y2), y3))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(0, y2), y3))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y1), y2))) -> c12(MEMBER(E(0, S(z1)), Cons(E(0, y1), y2))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, S(z3)), Nil)) -> c12(MEMBER(E(z0, S(z1)), Nil)) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, S(z3)), Nil)) -> c12(MEMBER(E(S(y0), S(z1)), Nil)) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, S(z3)), Nil)) -> c12(MEMBER(E(0, S(z1)), Nil)) MEMBER[ITE](False, E(S(S(y0)), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(S(y2)), y3), y4))) -> c12(MEMBER(E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), y3), y4))) MEMBER[ITE](False, E(z0, S(S(y1))), Cons(E(z2, S(z3)), Cons(E(y2, S(S(y3))), y4))) -> c12(MEMBER(E(z0, S(S(y1))), Cons(E(y2, S(S(y3))), y4))) MEMBER(E(S(y1), S(z1)), Cons(E(S(y3), S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), S(y3)), !EQ(z1, z3)), S(y3), S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(S(y3), S(z3)), z4)), EQEDGE(E(S(y1), S(z1)), E(S(y3), S(z3)))) MEMBER(E(0, S(z1)), Cons(E(S(y2), S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, S(y2)), !EQ(z1, z3)), S(y2), S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(S(y2), S(z3)), z4)), EQEDGE(E(0, S(z1)), E(S(y2), S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(0, S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), 0), !EQ(z1, z3)), 0, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(0, S(z3)), z4)), EQEDGE(E(S(y1), S(z1)), E(0, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(0, S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, 0), !EQ(z1, z3)), 0, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(0, S(z3)), z4)), EQEDGE(E(0, S(z1)), E(0, S(z3)))) MEMBER(E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y0)), S(S(y2))), !EQ(z1, z3)), S(S(y2)), S(z3), S(S(y0)), S(z1)), E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), S(z3)), z4)), EQEDGE(E(S(S(y0)), S(z1)), E(S(S(y2)), S(z3)))) MEMBER(E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(S(y1), S(y3))), z2, S(S(y3)), z0, S(S(y1))), E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)), EQEDGE(E(z0, S(S(y1))), E(z2, S(S(y3))))) MEMBER(E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, S(y6)), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, S(z3), z0, S(z1)), E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, S(y6)), y7))), EQEDGE(E(z0, S(z1)), E(z2, S(z3)))) MEMBER(E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, 0), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, S(z3), z0, S(z1)), E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, 0), y6))), EQEDGE(E(z0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y5), y6), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), !EQ(z1, z3)), z2, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y5), y6), y7))), EQEDGE(E(S(y1), S(z1)), E(z2, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y4), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), !EQ(z1, z3)), z2, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y4), y5), y6))), EQEDGE(E(0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), !EQ(z1, z3)), z2, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y5), y6))), EQEDGE(E(S(y1), S(z1)), E(z2, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), !EQ(z1, z3)), z2, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y4), y5))), EQEDGE(E(0, S(z1)), E(z2, S(z3)))) MEMBER(E(z0, S(z1)), Cons(E(z2, S(z3)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, S(z3), z0, S(z1)), E(z0, S(z1)), Cons(E(z2, S(z3)), Nil)), EQEDGE(E(z0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, S(z3)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), !EQ(z1, z3)), z2, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, S(z3)), Nil)), EQEDGE(E(S(y1), S(z1)), E(z2, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(z2, S(z3)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), !EQ(z1, z3)), z2, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(z2, S(z3)), Nil)), EQEDGE(E(0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(S(y1)), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(S(y5)), y6), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z2), !EQ(z1, z3)), z2, S(z3), S(S(y1)), S(z1)), E(S(S(y1)), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(S(y5)), y6), y7))), EQEDGE(E(S(S(y1)), S(z1)), E(z2, S(z3)))) MEMBER(E(z0, S(S(y2))), Cons(E(z2, S(z3)), Cons(E(y5, S(S(y6))), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(S(y2), z3)), z2, S(z3), z0, S(S(y2))), E(z0, S(S(y2))), Cons(E(z2, S(z3)), Cons(E(y5, S(S(y6))), y7))), EQEDGE(E(z0, S(S(y2))), E(z2, S(z3)))) MEMBER[ITE](False, E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y1, S(y2)), y3))) -> c12(MEMBER(E(z0, 0), Cons(E(y1, S(y2)), y3))) MEMBER[ITE](False, E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y1, 0), y2))) -> c12(MEMBER(E(z0, 0), Cons(E(y1, 0), y2))) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, S(z2)), Cons(E(S(y2), y3), y4))) -> c12(MEMBER(E(S(y0), 0), Cons(E(S(y2), y3), y4))) MEMBER[ITE](False, E(0, 0), Cons(E(z1, S(z2)), Cons(E(S(y1), y2), y3))) -> c12(MEMBER(E(0, 0), Cons(E(S(y1), y2), y3))) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, S(z2)), Cons(E(0, y2), y3))) -> c12(MEMBER(E(S(y0), 0), Cons(E(0, y2), y3))) MEMBER[ITE](False, E(0, 0), Cons(E(z1, S(z2)), Cons(E(0, y1), y2))) -> c12(MEMBER(E(0, 0), Cons(E(0, y1), y2))) MEMBER[ITE](False, E(z0, 0), Cons(E(z1, S(z2)), Nil)) -> c12(MEMBER(E(z0, 0), Nil)) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, S(z2)), Nil)) -> c12(MEMBER(E(S(y0), 0), Nil)) MEMBER[ITE](False, E(0, 0), Cons(E(z1, S(z2)), Nil)) -> c12(MEMBER(E(0, 0), Nil)) MEMBER[ITE](False, E(S(S(y0)), 0), Cons(E(z1, S(z2)), Cons(E(S(S(y2)), y3), y4))) -> c12(MEMBER(E(S(S(y0)), 0), Cons(E(S(S(y2)), y3), y4))) S tuples: VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) MEMBER(E(x0, 0), Cons(E(x2, S(z0)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, S(z0), x0, 0), E(x0, 0), Cons(E(x2, S(z0)), x4)), EQEDGE(E(x0, 0), E(x2, S(z0)))) MEMBER(E(x0, S(z0)), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, 0, x0, S(z0)), E(x0, S(z0)), Cons(E(x2, 0), x4)), EQEDGE(E(x0, S(z0)), E(x2, 0))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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))) REACH(x0, x1, Nil) -> c1(REACH[ITE](False, x0, x1, Nil)) REACH(x0, x1, Nil) -> c1(MEMBER(E(x0, x1), Nil)) VIA(0, x0, Nil, x4) -> c22 VIA(S(x0), x1, Nil, x4) -> c22 VIA(S(S(x0)), x1, Nil, x5) -> c22 VIA(S(0), x0, Nil, x4) -> c22 VIA(x0, x1, Nil, Nil) -> c22 VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5)) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5)) MEMBER(E(x0, x1), Nil) -> c24 MEMBER(E(x0, S(x1)), Nil) -> c24 MEMBER(E(x0, 0), Nil) -> c24 MEMBER(E(S(x0), x1), Nil) -> c24 MEMBER(E(0, x0), Nil) -> c24 VIA(0, x0, Nil, Cons(z2, z3)) -> c22 VIA(S(x0), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(S(x0)), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(0), x0, Nil, Cons(z2, z3)) -> c22 EQEDGE(E(S(S(y0)), z1), E(S(S(y1)), z3)) -> c25(!EQ'(S(S(y0)), S(S(y1)))) EQEDGE(E(z0, S(S(y0))), E(z2, S(S(y1)))) -> c26(!EQ'(S(S(y0)), S(S(y1)))) REACH(z0, S(y1), Cons(E(y2, S(y3)), y4)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, S(y3)), y4))) REACH(z0, 0, Cons(E(y1, S(y2)), y3)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, S(y2)), y3))) REACH(z0, S(y1), Cons(E(y2, 0), y3)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, 0), y3))) REACH(z0, 0, Cons(E(y1, 0), y2)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, 0), y2))) REACH(S(y0), z1, Cons(E(S(y2), y3), y4)) -> c29(MEMBER(E(S(y0), z1), Cons(E(S(y2), y3), y4))) REACH(0, z1, Cons(E(S(y1), y2), y3)) -> c29(MEMBER(E(0, z1), Cons(E(S(y1), y2), y3))) REACH(S(y0), z1, Cons(E(0, y2), y3)) -> c29(MEMBER(E(S(y0), z1), Cons(E(0, y2), y3))) REACH(0, z1, Cons(E(0, y1), y2)) -> c29(MEMBER(E(0, z1), Cons(E(0, y1), y2))) REACH(z0, z1, Cons(E(y2, y3), y4)) -> c29(MEMBER(E(z0, z1), Cons(E(y2, y3), y4))) REACH(z0, z1, Nil) -> c29(MEMBER(E(z0, z1), Nil)) REACH(z0, S(y1), Nil) -> c29(MEMBER(E(z0, S(y1)), Nil)) REACH(z0, 0, Nil) -> c29(MEMBER(E(z0, 0), Nil)) REACH(S(y0), z1, Nil) -> c29(MEMBER(E(S(y0), z1), Nil)) REACH(0, z1, Nil) -> c29(MEMBER(E(0, z1), Nil)) VIA(S(S(y0)), z1, Cons(E(S(S(y1)), z3), z4), z5) -> c21(!EQ'(S(S(y0)), S(S(y1)))) MEMBER(E(S(S(y0)), z1), Cons(E(S(S(y2)), z3), z4)) -> c23(EQEDGE(E(S(S(y0)), z1), E(S(S(y2)), z3))) MEMBER(E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)) -> c23(EQEDGE(E(z0, S(S(y1))), E(z2, S(S(y3))))) VIA(0, z0, Cons(E(S(z1), z2), Cons(E(S(y3), y4), y5)), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(S(y3), y4), y5)), z4)) VIA(0, z0, Cons(E(S(z1), z2), Cons(E(0, y3), y4)), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(0, y3), y4)), z4)) VIA(0, z0, Cons(E(S(z1), z2), Nil), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), z4)) VIA(0, z0, Cons(E(S(z1), z2), Nil), Nil) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Nil)) VIA(0, z0, Cons(E(S(z1), z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Cons(y3, y4))) VIA(S(z0), z1, Cons(E(0, z2), Cons(E(0, y3), y4)), z4) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Cons(E(0, y3), y4)), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y3)), y4), y5)), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y3)), y4), y5)), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), z4)) VIA(S(0), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), Nil) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Nil)) VIA(S(0), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y3), y4)), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y3), y4)), z4)) VIA(S(0), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Cons(y3, y4))) VIA(S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y3, y4))) VIA(S(0), z1, Cons(E(0, z2), Nil), Cons(y2, y3)) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), Cons(y2, y3))) MEMBER(E(S(y1), S(z1)), Cons(E(S(y3), S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), S(y3)), !EQ(z1, z3)), S(y3), S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(S(y3), S(z3)), z4)), EQEDGE(E(S(y1), S(z1)), E(S(y3), S(z3)))) MEMBER(E(0, S(z1)), Cons(E(S(y2), S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, S(y2)), !EQ(z1, z3)), S(y2), S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(S(y2), S(z3)), z4)), EQEDGE(E(0, S(z1)), E(S(y2), S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(0, S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), 0), !EQ(z1, z3)), 0, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(0, S(z3)), z4)), EQEDGE(E(S(y1), S(z1)), E(0, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(0, S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, 0), !EQ(z1, z3)), 0, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(0, S(z3)), z4)), EQEDGE(E(0, S(z1)), E(0, S(z3)))) MEMBER(E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y0)), S(S(y2))), !EQ(z1, z3)), S(S(y2)), S(z3), S(S(y0)), S(z1)), E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), S(z3)), z4)), EQEDGE(E(S(S(y0)), S(z1)), E(S(S(y2)), S(z3)))) MEMBER(E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(S(y1), S(y3))), z2, S(S(y3)), z0, S(S(y1))), E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)), EQEDGE(E(z0, S(S(y1))), E(z2, S(S(y3))))) MEMBER(E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, S(y6)), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, S(z3), z0, S(z1)), E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, S(y6)), y7))), EQEDGE(E(z0, S(z1)), E(z2, S(z3)))) MEMBER(E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, 0), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, S(z3), z0, S(z1)), E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, 0), y6))), EQEDGE(E(z0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y5), y6), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), !EQ(z1, z3)), z2, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y5), y6), y7))), EQEDGE(E(S(y1), S(z1)), E(z2, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y4), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), !EQ(z1, z3)), z2, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y4), y5), y6))), EQEDGE(E(0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), !EQ(z1, z3)), z2, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y5), y6))), EQEDGE(E(S(y1), S(z1)), E(z2, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), !EQ(z1, z3)), z2, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y4), y5))), EQEDGE(E(0, S(z1)), E(z2, S(z3)))) MEMBER(E(z0, S(z1)), Cons(E(z2, S(z3)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, S(z3), z0, S(z1)), E(z0, S(z1)), Cons(E(z2, S(z3)), Nil)), EQEDGE(E(z0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, S(z3)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), !EQ(z1, z3)), z2, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, S(z3)), Nil)), EQEDGE(E(S(y1), S(z1)), E(z2, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(z2, S(z3)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), !EQ(z1, z3)), z2, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(z2, S(z3)), Nil)), EQEDGE(E(0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(S(y1)), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(S(y5)), y6), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z2), !EQ(z1, z3)), z2, S(z3), S(S(y1)), S(z1)), E(S(S(y1)), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(S(y5)), y6), y7))), EQEDGE(E(S(S(y1)), S(z1)), E(z2, S(z3)))) MEMBER(E(z0, S(S(y2))), Cons(E(z2, S(z3)), Cons(E(y5, S(S(y6))), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(S(y2), z3)), z2, S(z3), z0, S(S(y2))), E(z0, S(S(y2))), Cons(E(z2, S(z3)), Cons(E(y5, S(S(y6))), y7))), EQEDGE(E(z0, S(S(y2))), E(z2, S(z3)))) K tuples:none Defined Rule Symbols: reach_3, reach[Ite]_4, member_2, member[Ite]_3, eqEdge_2, eqEdge[Ite]_5, and_2, !EQ_2, via_4, via[Ite]_5, via[Let]_5 Defined Pair Symbols: VIA_4, MEMBER_2, REACH_3, MEMBER[ITE]_3, REACH[ITE]_4, !EQ'_2, VIA[ITE]_5, VIA[LET]_5, EQEDGE_2 Compound Symbols: c21_1, c21_2, c23_2, c29_2, c12_1, c14_1, c1_1, c22, c_1, c24, c8_2, c8_1, c10_1, c25_1, c26_1, c29_1, c23_1, c9_1 ---------------------------------------- (115) CdtForwardInstantiationProof (BOTH BOUNDS(ID, ID)) Use forward instantiation to replace MEMBER(E(x0, 0), Cons(E(x2, S(z0)), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, S(z0), x0, 0), E(x0, 0), Cons(E(x2, S(z0)), x4)), EQEDGE(E(x0, 0), E(x2, S(z0)))) by MEMBER(E(S(y1), 0), Cons(E(S(y3), S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), S(y3)), False), S(y3), S(z2), S(y1), 0), E(S(y1), 0), Cons(E(S(y3), S(z2)), z3)), EQEDGE(E(S(y1), 0), E(S(y3), S(z2)))) MEMBER(E(0, 0), Cons(E(S(y2), S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, S(y2)), False), S(y2), S(z2), 0, 0), E(0, 0), Cons(E(S(y2), S(z2)), z3)), EQEDGE(E(0, 0), E(S(y2), S(z2)))) MEMBER(E(S(y1), 0), Cons(E(0, S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), 0), False), 0, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(0, S(z2)), z3)), EQEDGE(E(S(y1), 0), E(0, S(z2)))) MEMBER(E(0, 0), Cons(E(0, S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, 0), False), 0, S(z2), 0, 0), E(0, 0), Cons(E(0, S(z2)), z3)), EQEDGE(E(0, 0), E(0, S(z2)))) MEMBER(E(S(S(y0)), 0), Cons(E(S(S(y2)), S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y0)), S(S(y2))), False), S(S(y2)), S(z2), S(S(y0)), 0), E(S(S(y0)), 0), Cons(E(S(S(y2)), S(z2)), z3)), EQEDGE(E(S(S(y0)), 0), E(S(S(y2)), S(z2)))) MEMBER(E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, S(y5)), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), False), z1, S(z2), z0, 0), E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, S(y5)), y6))), EQEDGE(E(z0, 0), E(z1, S(z2)))) MEMBER(E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, 0), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), False), z1, S(z2), z0, 0), E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, 0), y5))), EQEDGE(E(z0, 0), E(z1, S(z2)))) MEMBER(E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(S(y4), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), False), z1, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(S(y4), y5), y6))), EQEDGE(E(S(y1), 0), E(z1, S(z2)))) MEMBER(E(0, 0), Cons(E(z1, S(z2)), Cons(E(S(y3), y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), False), z1, S(z2), 0, 0), E(0, 0), Cons(E(z1, S(z2)), Cons(E(S(y3), y4), y5))), EQEDGE(E(0, 0), E(z1, S(z2)))) MEMBER(E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(0, y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), False), z1, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(0, y4), y5))), EQEDGE(E(S(y1), 0), E(z1, S(z2)))) MEMBER(E(0, 0), Cons(E(z1, S(z2)), Cons(E(0, y3), y4))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), False), z1, S(z2), 0, 0), E(0, 0), Cons(E(z1, S(z2)), Cons(E(0, y3), y4))), EQEDGE(E(0, 0), E(z1, S(z2)))) MEMBER(E(z0, 0), Cons(E(z1, S(z2)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), False), z1, S(z2), z0, 0), E(z0, 0), Cons(E(z1, S(z2)), Nil)), EQEDGE(E(z0, 0), E(z1, S(z2)))) MEMBER(E(S(y1), 0), Cons(E(z1, S(z2)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), False), z1, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(z1, S(z2)), Nil)), EQEDGE(E(S(y1), 0), E(z1, S(z2)))) MEMBER(E(0, 0), Cons(E(z1, S(z2)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), False), z1, S(z2), 0, 0), E(0, 0), Cons(E(z1, S(z2)), Nil)), EQEDGE(E(0, 0), E(z1, S(z2)))) MEMBER(E(S(S(y1)), 0), Cons(E(z1, S(z2)), Cons(E(S(S(y4)), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z1), False), z1, S(z2), S(S(y1)), 0), E(S(S(y1)), 0), Cons(E(z1, S(z2)), Cons(E(S(S(y4)), y5), y6))), EQEDGE(E(S(S(y1)), 0), E(z1, S(z2)))) ---------------------------------------- (116) Obligation: Complexity Dependency Tuples Problem Rules: reach(z0, z1, z2) -> reach[Ite](member(E(z0, z1), z2), z0, z1, z2) reach[Ite](False, z0, z1, z2) -> via(z0, z1, z2, z2) reach[Ite](True, z0, z1, z2) -> Cons(E(z0, z1), Nil) member(z0, Cons(z1, z2)) -> member[Ite](eqEdge(z0, z1), z0, Cons(z1, z2)) member(z0, Nil) -> False member[Ite](False, z0, Cons(z1, z2)) -> member(z0, z2) member[Ite](True, z0, z1) -> True eqEdge(E(z0, z1), E(z2, z3)) -> eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1) eqEdge[Ite](False, z0, z1, z2, z3) -> False eqEdge[Ite](True, z0, z1, z2, z3) -> True and(False, False) -> False and(True, False) -> False and(False, True) -> False and(True, True) -> True !EQ(S(z0), S(z1)) -> !EQ(z0, z1) !EQ(0, S(z0)) -> False !EQ(S(z0), 0) -> False !EQ(0, 0) -> True via(z0, z1, Cons(E(z2, z3), z4), z5) -> via[Ite](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5) via(z0, z1, Nil, z2) -> Nil via[Ite](True, z0, z1, Cons(E(z2, z3), z4), z5) -> via[Let](z0, z1, Cons(E(z2, z3), z4), z5, reach(z3, z1, z5)) via[Ite](False, z0, z1, Cons(z2, z3), z4) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Nil) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Cons(z5, z6)) -> Cons(z2, Cons(z5, z6)) Tuples: VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) MEMBER(E(x0, S(z0)), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, 0, x0, S(z0)), E(x0, S(z0)), Cons(E(x2, 0), x4)), EQEDGE(E(x0, S(z0)), E(x2, 0))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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))) MEMBER[ITE](False, E(x0, S(x1)), Cons(E(x2, 0), x3)) -> c12(MEMBER(E(x0, S(x1)), x3)) MEMBER[ITE](False, E(x0, 0), Cons(E(x1, 0), x2)) -> c12(MEMBER(E(x0, 0), x2)) MEMBER[ITE](False, E(S(x0), x1), Cons(E(S(x2), x3), x4)) -> c12(MEMBER(E(S(x0), x1), x4)) MEMBER[ITE](False, E(0, x0), Cons(E(S(x1), x2), x3)) -> c12(MEMBER(E(0, x0), x3)) MEMBER[ITE](False, E(S(x0), x1), Cons(E(0, x2), x3)) -> c12(MEMBER(E(S(x0), x1), x3)) MEMBER[ITE](False, E(0, x0), Cons(E(0, x1), x2)) -> c12(MEMBER(E(0, x0), x2)) REACH[ITE](False, x0, x1, Nil) -> c14(VIA(x0, x1, Nil, Nil)) REACH[ITE](False, x0, x1, Cons(E(x2, x3), x4)) -> c14(VIA(x0, x1, Cons(E(x2, x3), x4), Cons(E(x2, x3), x4))) REACH(x0, x1, Nil) -> c1(REACH[ITE](False, x0, x1, Nil)) REACH(x0, x1, Nil) -> c1(MEMBER(E(x0, x1), Nil)) VIA(0, x0, Nil, x4) -> c22 VIA(S(x0), x1, Nil, x4) -> c22 VIA(S(S(x0)), x1, Nil, x5) -> c22 VIA(S(0), x0, Nil, x4) -> c22 VIA(x0, x1, Nil, Nil) -> c22 !EQ'(S(S(y0)), S(S(y1))) -> c(!EQ'(S(y0), S(y1))) VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5)) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5)) MEMBER(E(x0, x1), Nil) -> c24 MEMBER(E(x0, S(x1)), Nil) -> c24 MEMBER(E(x0, 0), Nil) -> c24 MEMBER(E(S(x0), x1), Nil) -> c24 MEMBER(E(0, x0), Nil) -> c24 VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), Cons(z5, z6)) -> c8(VIA[LET](0, x0, Cons(E(0, x1), x2), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x1, x0), z5), E(x1, x0), Cons(z5, z6)), x1, x0, Cons(z5, z6))), REACH(x1, x0, Cons(z5, z6))) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(z5, z6)) -> c8(VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x3, x1), z5), E(x3, x1), Cons(z5, z6)), x3, x1, Cons(z5, z6))), REACH(x3, x1, Cons(z5, z6))) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), Cons(z5, z6)) -> c8(VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x1, x0), z5), E(x1, x0), Cons(z5, z6)), x1, x0, Cons(z5, z6))), REACH(x1, x0, Cons(z5, z6))) VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), x3) -> c8(REACH(x1, x0, x3)) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), x5) -> c8(REACH(x3, x1, x5)) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), x3) -> c8(REACH(x1, x0, x3)) VIA[LET](0, x0, Cons(E(0, x1), x2), Cons(x3, x4), Nil) -> c10(VIA(0, x0, x2, Cons(x3, x4))) VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(x5, x6), Nil) -> c10(VIA(S(S(x0)), x1, x4, Cons(x5, x6))) VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Cons(x3, x4), Nil) -> c10(VIA(S(0), x0, x2, Cons(x3, x4))) VIA(0, x0, Nil, Cons(z2, z3)) -> c22 VIA(S(x0), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(S(x0)), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(0), x0, Nil, Cons(z2, z3)) -> c22 VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), Nil) -> c8(VIA[LET](0, x0, Cons(E(0, x1), x2), Nil, Nil), REACH(x1, x0, Nil)) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Nil) -> c8(VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Nil, Nil), REACH(x3, x1, Nil)) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), Nil) -> c8(VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Nil, Nil), REACH(x1, x0, Nil)) EQEDGE(E(S(S(y0)), z1), E(S(S(y1)), z3)) -> c25(!EQ'(S(S(y0)), S(S(y1)))) EQEDGE(E(z0, S(S(y0))), E(z2, S(S(y1)))) -> c26(!EQ'(S(S(y0)), S(S(y1)))) VIA[LET](0, x0, Cons(E(0, x1), x2), Nil, Nil) -> c10(VIA(0, x0, x2, Nil)) VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Nil, Nil) -> c10(VIA(S(S(x0)), x1, x4, Nil)) VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Nil, Nil) -> c10(VIA(S(0), x0, x2, Nil)) REACH(z0, S(y1), Cons(E(y2, S(y3)), y4)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, S(y3)), y4))) REACH(z0, 0, Cons(E(y1, S(y2)), y3)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, S(y2)), y3))) REACH(z0, S(y1), Cons(E(y2, 0), y3)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, 0), y3))) REACH(z0, 0, Cons(E(y1, 0), y2)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, 0), y2))) REACH(S(y0), z1, Cons(E(S(y2), y3), y4)) -> c29(MEMBER(E(S(y0), z1), Cons(E(S(y2), y3), y4))) REACH(0, z1, Cons(E(S(y1), y2), y3)) -> c29(MEMBER(E(0, z1), Cons(E(S(y1), y2), y3))) REACH(S(y0), z1, Cons(E(0, y2), y3)) -> c29(MEMBER(E(S(y0), z1), Cons(E(0, y2), y3))) REACH(0, z1, Cons(E(0, y1), y2)) -> c29(MEMBER(E(0, z1), Cons(E(0, y1), y2))) REACH(z0, z1, Cons(E(y2, y3), y4)) -> c29(MEMBER(E(z0, z1), Cons(E(y2, y3), y4))) REACH(z0, z1, Nil) -> c29(MEMBER(E(z0, z1), Nil)) REACH(z0, S(y1), Nil) -> c29(MEMBER(E(z0, S(y1)), Nil)) REACH(z0, 0, Nil) -> c29(MEMBER(E(z0, 0), Nil)) REACH(S(y0), z1, Nil) -> c29(MEMBER(E(S(y0), z1), Nil)) REACH(0, z1, Nil) -> c29(MEMBER(E(0, z1), Nil)) VIA(S(S(y0)), z1, Cons(E(S(S(y1)), z3), z4), z5) -> c21(!EQ'(S(S(y0)), S(S(y1)))) MEMBER(E(S(S(y0)), z1), Cons(E(S(S(y2)), z3), z4)) -> c23(EQEDGE(E(S(S(y0)), z1), E(S(S(y2)), z3))) MEMBER(E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)) -> c23(EQEDGE(E(z0, S(S(y1))), E(z2, S(S(y3))))) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(S(y1), y2), y3)), z4) -> c9(VIA(0, z0, Cons(E(S(y1), y2), y3), z4)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(0, y1), y2)), z4) -> c9(VIA(0, z0, Cons(E(0, y1), y2), z4)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), z4) -> c9(VIA(0, z0, Nil, z4)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Nil) -> c9(VIA(0, z0, Nil, Nil)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Cons(y1, y2)) -> c9(VIA(0, z0, Nil, Cons(y1, y2))) VIA(0, z0, Cons(E(S(z1), z2), Cons(E(S(y3), y4), y5)), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(S(y3), y4), y5)), z4)) VIA(0, z0, Cons(E(S(z1), z2), Cons(E(0, y3), y4)), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(0, y3), y4)), z4)) VIA(0, z0, Cons(E(S(z1), z2), Nil), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), z4)) VIA(0, z0, Cons(E(S(z1), z2), Nil), Nil) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Nil)) VIA(0, z0, Cons(E(S(z1), z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Cons(y3, y4))) VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Cons(E(0, y2), y3)), z4) -> c9(VIA(S(z0), z1, Cons(E(0, y2), y3), z4)) VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4) -> c9(VIA(S(S(y0)), z1, Cons(E(S(S(y2)), y3), y4), z4)) VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), z4) -> c9(VIA(S(z0), z1, Nil, z4)) VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), z4) -> c9(VIA(S(S(y0)), z1, Nil, z4)) VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), z4) -> c9(VIA(S(0), z1, Nil, z4)) VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Nil) -> c9(VIA(S(z0), z1, Nil, Nil)) VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(S(y1)), y2), y3)), z4) -> c9(VIA(S(0), z1, Cons(E(S(S(y1)), y2), y3), z4)) VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4) -> c9(VIA(S(S(y0)), z1, Cons(E(S(0), y2), y3), z4)) VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(0), y1), y2)), z4) -> c9(VIA(S(0), z1, Cons(E(S(0), y1), y2), z4)) VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Cons(y2, y3)) -> c9(VIA(S(z0), z1, Nil, Cons(y2, y3))) VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y2, y3)) -> c9(VIA(S(S(y0)), z1, Nil, Cons(y2, y3))) VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), Cons(y1, y2)) -> c9(VIA(S(0), z1, Nil, Cons(y1, y2))) VIA(S(z0), z1, Cons(E(0, z2), Cons(E(0, y3), y4)), z4) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Cons(E(0, y3), y4)), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y3)), y4), y5)), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y3)), y4), y5)), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), z4)) VIA(S(0), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), Nil) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Nil)) VIA(S(0), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y3), y4)), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y3), y4)), z4)) VIA(S(0), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Cons(y3, y4))) VIA(S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y3, y4))) VIA(S(0), z1, Cons(E(0, z2), Nil), Cons(y2, y3)) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), Cons(y2, y3))) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(S(S(y2)), y3), y4)), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(S(S(y2)), y3), y4), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Nil), z5) -> c9(VIA(S(S(z0)), z1, Nil, z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Nil), Nil) -> c9(VIA(S(S(z0)), z1, Nil, Nil)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(S(0), y2), y3)), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(S(0), y2), y3), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Nil), Cons(y2, y3)) -> c9(VIA(S(S(z0)), z1, Nil, Cons(y2, y3))) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Cons(E(0, y3), y4))), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(0, y3), y4)), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Cons(E(S(S(y3)), y4), y5))), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(S(S(y3)), y4), y5)), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Nil)), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Nil)), Nil) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), Nil)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Cons(E(S(0), y3), y4))), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(S(0), y3), y4)), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Nil)), Cons(y3, y4)) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), Cons(y3, y4))) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Nil), z4) -> c9(VIA(S(0), z0, Nil, z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Nil), Nil) -> c9(VIA(S(0), z0, Nil, Nil)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(S(S(y1)), y2), y3)), z4) -> c9(VIA(S(0), z0, Cons(E(S(S(y1)), y2), y3), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(S(0), y1), y2)), z4) -> c9(VIA(S(0), z0, Cons(E(S(0), y1), y2), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Nil), Cons(y2, y3)) -> c9(VIA(S(0), z0, Nil, Cons(y2, y3))) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y2), Cons(E(0, y3), y4))), z4) -> c9(VIA(S(0), z0, Cons(E(0, y2), Cons(E(0, y3), y4)), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y2), Nil)), z4) -> c9(VIA(S(0), z0, Cons(E(0, y2), Nil), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y2), Nil)), Nil) -> c9(VIA(S(0), z0, Cons(E(0, y2), Nil), Nil)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y1), Cons(E(S(S(y2)), y3), y4))), z4) -> c9(VIA(S(0), z0, Cons(E(0, y1), Cons(E(S(S(y2)), y3), y4)), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y1), Cons(E(S(0), y2), y3))), z4) -> c9(VIA(S(0), z0, Cons(E(0, y1), Cons(E(S(0), y2), y3)), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y2), Nil)), Cons(y3, y4)) -> c9(VIA(S(0), z0, Cons(E(0, y2), Nil), Cons(y3, y4))) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(S(S(y2)), y3), y4)), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(S(S(y2)), y3), y4), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Nil), z4) -> c9(VIA(S(S(z0)), z1, Nil, z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Nil), Nil) -> c9(VIA(S(S(z0)), z1, Nil, Nil)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(S(0), y2), y3)), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(S(0), y2), y3), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Nil), Cons(y2, y3)) -> c9(VIA(S(S(z0)), z1, Nil, Cons(y2, y3))) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Cons(E(0, y3), y4))), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(0, y3), y4)), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Cons(E(S(S(y3)), y4), y5))), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(S(S(y3)), y4), y5)), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Nil)), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Nil)), Nil) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), Nil)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Cons(E(S(0), y3), y4))), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(S(0), y3), y4)), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Nil)), Cons(y3, y4)) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), Cons(y3, y4))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y2, S(y3)), y4))) -> c12(MEMBER(E(z0, S(z1)), Cons(E(y2, S(y3)), y4))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y2, 0), y3))) -> c12(MEMBER(E(z0, S(z1)), Cons(E(y2, 0), y3))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y2), y3), y4))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(S(y2), y3), y4))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y1), y2), y3))) -> c12(MEMBER(E(0, S(z1)), Cons(E(S(y1), y2), y3))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y2), y3))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(0, y2), y3))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y1), y2))) -> c12(MEMBER(E(0, S(z1)), Cons(E(0, y1), y2))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, S(z3)), Nil)) -> c12(MEMBER(E(z0, S(z1)), Nil)) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, S(z3)), Nil)) -> c12(MEMBER(E(S(y0), S(z1)), Nil)) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, S(z3)), Nil)) -> c12(MEMBER(E(0, S(z1)), Nil)) MEMBER[ITE](False, E(S(S(y0)), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(S(y2)), y3), y4))) -> c12(MEMBER(E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), y3), y4))) MEMBER[ITE](False, E(z0, S(S(y1))), Cons(E(z2, S(z3)), Cons(E(y2, S(S(y3))), y4))) -> c12(MEMBER(E(z0, S(S(y1))), Cons(E(y2, S(S(y3))), y4))) MEMBER(E(S(y1), S(z1)), Cons(E(S(y3), S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), S(y3)), !EQ(z1, z3)), S(y3), S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(S(y3), S(z3)), z4)), EQEDGE(E(S(y1), S(z1)), E(S(y3), S(z3)))) MEMBER(E(0, S(z1)), Cons(E(S(y2), S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, S(y2)), !EQ(z1, z3)), S(y2), S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(S(y2), S(z3)), z4)), EQEDGE(E(0, S(z1)), E(S(y2), S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(0, S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), 0), !EQ(z1, z3)), 0, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(0, S(z3)), z4)), EQEDGE(E(S(y1), S(z1)), E(0, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(0, S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, 0), !EQ(z1, z3)), 0, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(0, S(z3)), z4)), EQEDGE(E(0, S(z1)), E(0, S(z3)))) MEMBER(E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y0)), S(S(y2))), !EQ(z1, z3)), S(S(y2)), S(z3), S(S(y0)), S(z1)), E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), S(z3)), z4)), EQEDGE(E(S(S(y0)), S(z1)), E(S(S(y2)), S(z3)))) MEMBER(E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(S(y1), S(y3))), z2, S(S(y3)), z0, S(S(y1))), E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)), EQEDGE(E(z0, S(S(y1))), E(z2, S(S(y3))))) MEMBER(E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, S(y6)), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, S(z3), z0, S(z1)), E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, S(y6)), y7))), EQEDGE(E(z0, S(z1)), E(z2, S(z3)))) MEMBER(E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, 0), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, S(z3), z0, S(z1)), E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, 0), y6))), EQEDGE(E(z0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y5), y6), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), !EQ(z1, z3)), z2, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y5), y6), y7))), EQEDGE(E(S(y1), S(z1)), E(z2, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y4), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), !EQ(z1, z3)), z2, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y4), y5), y6))), EQEDGE(E(0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), !EQ(z1, z3)), z2, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y5), y6))), EQEDGE(E(S(y1), S(z1)), E(z2, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), !EQ(z1, z3)), z2, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y4), y5))), EQEDGE(E(0, S(z1)), E(z2, S(z3)))) MEMBER(E(z0, S(z1)), Cons(E(z2, S(z3)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, S(z3), z0, S(z1)), E(z0, S(z1)), Cons(E(z2, S(z3)), Nil)), EQEDGE(E(z0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, S(z3)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), !EQ(z1, z3)), z2, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, S(z3)), Nil)), EQEDGE(E(S(y1), S(z1)), E(z2, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(z2, S(z3)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), !EQ(z1, z3)), z2, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(z2, S(z3)), Nil)), EQEDGE(E(0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(S(y1)), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(S(y5)), y6), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z2), !EQ(z1, z3)), z2, S(z3), S(S(y1)), S(z1)), E(S(S(y1)), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(S(y5)), y6), y7))), EQEDGE(E(S(S(y1)), S(z1)), E(z2, S(z3)))) MEMBER(E(z0, S(S(y2))), Cons(E(z2, S(z3)), Cons(E(y5, S(S(y6))), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(S(y2), z3)), z2, S(z3), z0, S(S(y2))), E(z0, S(S(y2))), Cons(E(z2, S(z3)), Cons(E(y5, S(S(y6))), y7))), EQEDGE(E(z0, S(S(y2))), E(z2, S(z3)))) MEMBER[ITE](False, E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y1, S(y2)), y3))) -> c12(MEMBER(E(z0, 0), Cons(E(y1, S(y2)), y3))) MEMBER[ITE](False, E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y1, 0), y2))) -> c12(MEMBER(E(z0, 0), Cons(E(y1, 0), y2))) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, S(z2)), Cons(E(S(y2), y3), y4))) -> c12(MEMBER(E(S(y0), 0), Cons(E(S(y2), y3), y4))) MEMBER[ITE](False, E(0, 0), Cons(E(z1, S(z2)), Cons(E(S(y1), y2), y3))) -> c12(MEMBER(E(0, 0), Cons(E(S(y1), y2), y3))) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, S(z2)), Cons(E(0, y2), y3))) -> c12(MEMBER(E(S(y0), 0), Cons(E(0, y2), y3))) MEMBER[ITE](False, E(0, 0), Cons(E(z1, S(z2)), Cons(E(0, y1), y2))) -> c12(MEMBER(E(0, 0), Cons(E(0, y1), y2))) MEMBER[ITE](False, E(z0, 0), Cons(E(z1, S(z2)), Nil)) -> c12(MEMBER(E(z0, 0), Nil)) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, S(z2)), Nil)) -> c12(MEMBER(E(S(y0), 0), Nil)) MEMBER[ITE](False, E(0, 0), Cons(E(z1, S(z2)), Nil)) -> c12(MEMBER(E(0, 0), Nil)) MEMBER[ITE](False, E(S(S(y0)), 0), Cons(E(z1, S(z2)), Cons(E(S(S(y2)), y3), y4))) -> c12(MEMBER(E(S(S(y0)), 0), Cons(E(S(S(y2)), y3), y4))) MEMBER(E(S(y1), 0), Cons(E(S(y3), S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), S(y3)), False), S(y3), S(z2), S(y1), 0), E(S(y1), 0), Cons(E(S(y3), S(z2)), z3)), EQEDGE(E(S(y1), 0), E(S(y3), S(z2)))) MEMBER(E(0, 0), Cons(E(S(y2), S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, S(y2)), False), S(y2), S(z2), 0, 0), E(0, 0), Cons(E(S(y2), S(z2)), z3)), EQEDGE(E(0, 0), E(S(y2), S(z2)))) MEMBER(E(S(y1), 0), Cons(E(0, S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), 0), False), 0, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(0, S(z2)), z3)), EQEDGE(E(S(y1), 0), E(0, S(z2)))) MEMBER(E(0, 0), Cons(E(0, S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, 0), False), 0, S(z2), 0, 0), E(0, 0), Cons(E(0, S(z2)), z3)), EQEDGE(E(0, 0), E(0, S(z2)))) MEMBER(E(S(S(y0)), 0), Cons(E(S(S(y2)), S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y0)), S(S(y2))), False), S(S(y2)), S(z2), S(S(y0)), 0), E(S(S(y0)), 0), Cons(E(S(S(y2)), S(z2)), z3)), EQEDGE(E(S(S(y0)), 0), E(S(S(y2)), S(z2)))) MEMBER(E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, S(y5)), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), False), z1, S(z2), z0, 0), E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, S(y5)), y6))), EQEDGE(E(z0, 0), E(z1, S(z2)))) MEMBER(E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, 0), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), False), z1, S(z2), z0, 0), E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, 0), y5))), EQEDGE(E(z0, 0), E(z1, S(z2)))) MEMBER(E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(S(y4), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), False), z1, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(S(y4), y5), y6))), EQEDGE(E(S(y1), 0), E(z1, S(z2)))) MEMBER(E(0, 0), Cons(E(z1, S(z2)), Cons(E(S(y3), y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), False), z1, S(z2), 0, 0), E(0, 0), Cons(E(z1, S(z2)), Cons(E(S(y3), y4), y5))), EQEDGE(E(0, 0), E(z1, S(z2)))) MEMBER(E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(0, y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), False), z1, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(0, y4), y5))), EQEDGE(E(S(y1), 0), E(z1, S(z2)))) MEMBER(E(0, 0), Cons(E(z1, S(z2)), Cons(E(0, y3), y4))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), False), z1, S(z2), 0, 0), E(0, 0), Cons(E(z1, S(z2)), Cons(E(0, y3), y4))), EQEDGE(E(0, 0), E(z1, S(z2)))) MEMBER(E(z0, 0), Cons(E(z1, S(z2)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), False), z1, S(z2), z0, 0), E(z0, 0), Cons(E(z1, S(z2)), Nil)), EQEDGE(E(z0, 0), E(z1, S(z2)))) MEMBER(E(S(y1), 0), Cons(E(z1, S(z2)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), False), z1, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(z1, S(z2)), Nil)), EQEDGE(E(S(y1), 0), E(z1, S(z2)))) MEMBER(E(0, 0), Cons(E(z1, S(z2)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), False), z1, S(z2), 0, 0), E(0, 0), Cons(E(z1, S(z2)), Nil)), EQEDGE(E(0, 0), E(z1, S(z2)))) MEMBER(E(S(S(y1)), 0), Cons(E(z1, S(z2)), Cons(E(S(S(y4)), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z1), False), z1, S(z2), S(S(y1)), 0), E(S(S(y1)), 0), Cons(E(z1, S(z2)), Cons(E(S(S(y4)), y5), y6))), EQEDGE(E(S(S(y1)), 0), E(z1, S(z2)))) S tuples: VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) MEMBER(E(x0, S(z0)), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, 0, x0, S(z0)), E(x0, S(z0)), Cons(E(x2, 0), x4)), EQEDGE(E(x0, S(z0)), E(x2, 0))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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))) REACH(x0, x1, Nil) -> c1(REACH[ITE](False, x0, x1, Nil)) REACH(x0, x1, Nil) -> c1(MEMBER(E(x0, x1), Nil)) VIA(0, x0, Nil, x4) -> c22 VIA(S(x0), x1, Nil, x4) -> c22 VIA(S(S(x0)), x1, Nil, x5) -> c22 VIA(S(0), x0, Nil, x4) -> c22 VIA(x0, x1, Nil, Nil) -> c22 VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5)) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5)) MEMBER(E(x0, x1), Nil) -> c24 MEMBER(E(x0, S(x1)), Nil) -> c24 MEMBER(E(x0, 0), Nil) -> c24 MEMBER(E(S(x0), x1), Nil) -> c24 MEMBER(E(0, x0), Nil) -> c24 VIA(0, x0, Nil, Cons(z2, z3)) -> c22 VIA(S(x0), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(S(x0)), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(0), x0, Nil, Cons(z2, z3)) -> c22 EQEDGE(E(S(S(y0)), z1), E(S(S(y1)), z3)) -> c25(!EQ'(S(S(y0)), S(S(y1)))) EQEDGE(E(z0, S(S(y0))), E(z2, S(S(y1)))) -> c26(!EQ'(S(S(y0)), S(S(y1)))) REACH(z0, S(y1), Cons(E(y2, S(y3)), y4)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, S(y3)), y4))) REACH(z0, 0, Cons(E(y1, S(y2)), y3)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, S(y2)), y3))) REACH(z0, S(y1), Cons(E(y2, 0), y3)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, 0), y3))) REACH(z0, 0, Cons(E(y1, 0), y2)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, 0), y2))) REACH(S(y0), z1, Cons(E(S(y2), y3), y4)) -> c29(MEMBER(E(S(y0), z1), Cons(E(S(y2), y3), y4))) REACH(0, z1, Cons(E(S(y1), y2), y3)) -> c29(MEMBER(E(0, z1), Cons(E(S(y1), y2), y3))) REACH(S(y0), z1, Cons(E(0, y2), y3)) -> c29(MEMBER(E(S(y0), z1), Cons(E(0, y2), y3))) REACH(0, z1, Cons(E(0, y1), y2)) -> c29(MEMBER(E(0, z1), Cons(E(0, y1), y2))) REACH(z0, z1, Cons(E(y2, y3), y4)) -> c29(MEMBER(E(z0, z1), Cons(E(y2, y3), y4))) REACH(z0, z1, Nil) -> c29(MEMBER(E(z0, z1), Nil)) REACH(z0, S(y1), Nil) -> c29(MEMBER(E(z0, S(y1)), Nil)) REACH(z0, 0, Nil) -> c29(MEMBER(E(z0, 0), Nil)) REACH(S(y0), z1, Nil) -> c29(MEMBER(E(S(y0), z1), Nil)) REACH(0, z1, Nil) -> c29(MEMBER(E(0, z1), Nil)) VIA(S(S(y0)), z1, Cons(E(S(S(y1)), z3), z4), z5) -> c21(!EQ'(S(S(y0)), S(S(y1)))) MEMBER(E(S(S(y0)), z1), Cons(E(S(S(y2)), z3), z4)) -> c23(EQEDGE(E(S(S(y0)), z1), E(S(S(y2)), z3))) MEMBER(E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)) -> c23(EQEDGE(E(z0, S(S(y1))), E(z2, S(S(y3))))) VIA(0, z0, Cons(E(S(z1), z2), Cons(E(S(y3), y4), y5)), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(S(y3), y4), y5)), z4)) VIA(0, z0, Cons(E(S(z1), z2), Cons(E(0, y3), y4)), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(0, y3), y4)), z4)) VIA(0, z0, Cons(E(S(z1), z2), Nil), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), z4)) VIA(0, z0, Cons(E(S(z1), z2), Nil), Nil) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Nil)) VIA(0, z0, Cons(E(S(z1), z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Cons(y3, y4))) VIA(S(z0), z1, Cons(E(0, z2), Cons(E(0, y3), y4)), z4) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Cons(E(0, y3), y4)), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y3)), y4), y5)), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y3)), y4), y5)), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), z4)) VIA(S(0), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), Nil) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Nil)) VIA(S(0), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y3), y4)), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y3), y4)), z4)) VIA(S(0), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Cons(y3, y4))) VIA(S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y3, y4))) VIA(S(0), z1, Cons(E(0, z2), Nil), Cons(y2, y3)) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), Cons(y2, y3))) MEMBER(E(S(y1), S(z1)), Cons(E(S(y3), S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), S(y3)), !EQ(z1, z3)), S(y3), S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(S(y3), S(z3)), z4)), EQEDGE(E(S(y1), S(z1)), E(S(y3), S(z3)))) MEMBER(E(0, S(z1)), Cons(E(S(y2), S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, S(y2)), !EQ(z1, z3)), S(y2), S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(S(y2), S(z3)), z4)), EQEDGE(E(0, S(z1)), E(S(y2), S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(0, S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), 0), !EQ(z1, z3)), 0, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(0, S(z3)), z4)), EQEDGE(E(S(y1), S(z1)), E(0, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(0, S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, 0), !EQ(z1, z3)), 0, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(0, S(z3)), z4)), EQEDGE(E(0, S(z1)), E(0, S(z3)))) MEMBER(E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y0)), S(S(y2))), !EQ(z1, z3)), S(S(y2)), S(z3), S(S(y0)), S(z1)), E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), S(z3)), z4)), EQEDGE(E(S(S(y0)), S(z1)), E(S(S(y2)), S(z3)))) MEMBER(E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(S(y1), S(y3))), z2, S(S(y3)), z0, S(S(y1))), E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)), EQEDGE(E(z0, S(S(y1))), E(z2, S(S(y3))))) MEMBER(E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, S(y6)), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, S(z3), z0, S(z1)), E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, S(y6)), y7))), EQEDGE(E(z0, S(z1)), E(z2, S(z3)))) MEMBER(E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, 0), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, S(z3), z0, S(z1)), E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, 0), y6))), EQEDGE(E(z0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y5), y6), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), !EQ(z1, z3)), z2, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y5), y6), y7))), EQEDGE(E(S(y1), S(z1)), E(z2, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y4), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), !EQ(z1, z3)), z2, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y4), y5), y6))), EQEDGE(E(0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), !EQ(z1, z3)), z2, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y5), y6))), EQEDGE(E(S(y1), S(z1)), E(z2, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), !EQ(z1, z3)), z2, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y4), y5))), EQEDGE(E(0, S(z1)), E(z2, S(z3)))) MEMBER(E(z0, S(z1)), Cons(E(z2, S(z3)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, S(z3), z0, S(z1)), E(z0, S(z1)), Cons(E(z2, S(z3)), Nil)), EQEDGE(E(z0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, S(z3)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), !EQ(z1, z3)), z2, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, S(z3)), Nil)), EQEDGE(E(S(y1), S(z1)), E(z2, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(z2, S(z3)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), !EQ(z1, z3)), z2, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(z2, S(z3)), Nil)), EQEDGE(E(0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(S(y1)), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(S(y5)), y6), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z2), !EQ(z1, z3)), z2, S(z3), S(S(y1)), S(z1)), E(S(S(y1)), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(S(y5)), y6), y7))), EQEDGE(E(S(S(y1)), S(z1)), E(z2, S(z3)))) MEMBER(E(z0, S(S(y2))), Cons(E(z2, S(z3)), Cons(E(y5, S(S(y6))), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(S(y2), z3)), z2, S(z3), z0, S(S(y2))), E(z0, S(S(y2))), Cons(E(z2, S(z3)), Cons(E(y5, S(S(y6))), y7))), EQEDGE(E(z0, S(S(y2))), E(z2, S(z3)))) MEMBER(E(S(y1), 0), Cons(E(S(y3), S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), S(y3)), False), S(y3), S(z2), S(y1), 0), E(S(y1), 0), Cons(E(S(y3), S(z2)), z3)), EQEDGE(E(S(y1), 0), E(S(y3), S(z2)))) MEMBER(E(0, 0), Cons(E(S(y2), S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, S(y2)), False), S(y2), S(z2), 0, 0), E(0, 0), Cons(E(S(y2), S(z2)), z3)), EQEDGE(E(0, 0), E(S(y2), S(z2)))) MEMBER(E(S(y1), 0), Cons(E(0, S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), 0), False), 0, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(0, S(z2)), z3)), EQEDGE(E(S(y1), 0), E(0, S(z2)))) MEMBER(E(0, 0), Cons(E(0, S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, 0), False), 0, S(z2), 0, 0), E(0, 0), Cons(E(0, S(z2)), z3)), EQEDGE(E(0, 0), E(0, S(z2)))) MEMBER(E(S(S(y0)), 0), Cons(E(S(S(y2)), S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y0)), S(S(y2))), False), S(S(y2)), S(z2), S(S(y0)), 0), E(S(S(y0)), 0), Cons(E(S(S(y2)), S(z2)), z3)), EQEDGE(E(S(S(y0)), 0), E(S(S(y2)), S(z2)))) MEMBER(E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, S(y5)), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), False), z1, S(z2), z0, 0), E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, S(y5)), y6))), EQEDGE(E(z0, 0), E(z1, S(z2)))) MEMBER(E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, 0), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), False), z1, S(z2), z0, 0), E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, 0), y5))), EQEDGE(E(z0, 0), E(z1, S(z2)))) MEMBER(E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(S(y4), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), False), z1, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(S(y4), y5), y6))), EQEDGE(E(S(y1), 0), E(z1, S(z2)))) MEMBER(E(0, 0), Cons(E(z1, S(z2)), Cons(E(S(y3), y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), False), z1, S(z2), 0, 0), E(0, 0), Cons(E(z1, S(z2)), Cons(E(S(y3), y4), y5))), EQEDGE(E(0, 0), E(z1, S(z2)))) MEMBER(E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(0, y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), False), z1, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(0, y4), y5))), EQEDGE(E(S(y1), 0), E(z1, S(z2)))) MEMBER(E(0, 0), Cons(E(z1, S(z2)), Cons(E(0, y3), y4))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), False), z1, S(z2), 0, 0), E(0, 0), Cons(E(z1, S(z2)), Cons(E(0, y3), y4))), EQEDGE(E(0, 0), E(z1, S(z2)))) MEMBER(E(z0, 0), Cons(E(z1, S(z2)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), False), z1, S(z2), z0, 0), E(z0, 0), Cons(E(z1, S(z2)), Nil)), EQEDGE(E(z0, 0), E(z1, S(z2)))) MEMBER(E(S(y1), 0), Cons(E(z1, S(z2)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), False), z1, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(z1, S(z2)), Nil)), EQEDGE(E(S(y1), 0), E(z1, S(z2)))) MEMBER(E(0, 0), Cons(E(z1, S(z2)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), False), z1, S(z2), 0, 0), E(0, 0), Cons(E(z1, S(z2)), Nil)), EQEDGE(E(0, 0), E(z1, S(z2)))) MEMBER(E(S(S(y1)), 0), Cons(E(z1, S(z2)), Cons(E(S(S(y4)), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z1), False), z1, S(z2), S(S(y1)), 0), E(S(S(y1)), 0), Cons(E(z1, S(z2)), Cons(E(S(S(y4)), y5), y6))), EQEDGE(E(S(S(y1)), 0), E(z1, S(z2)))) K tuples:none Defined Rule Symbols: reach_3, reach[Ite]_4, member_2, member[Ite]_3, eqEdge_2, eqEdge[Ite]_5, and_2, !EQ_2, via_4, via[Ite]_5, via[Let]_5 Defined Pair Symbols: VIA_4, MEMBER_2, REACH_3, MEMBER[ITE]_3, REACH[ITE]_4, !EQ'_2, VIA[ITE]_5, VIA[LET]_5, EQEDGE_2 Compound Symbols: c21_1, c21_2, c23_2, c29_2, c12_1, c14_1, c1_1, c22, c_1, c24, c8_2, c8_1, c10_1, c25_1, c26_1, c29_1, c23_1, c9_1 ---------------------------------------- (117) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 6 trailing tuple parts ---------------------------------------- (118) Obligation: Complexity Dependency Tuples Problem Rules: reach(z0, z1, z2) -> reach[Ite](member(E(z0, z1), z2), z0, z1, z2) reach[Ite](False, z0, z1, z2) -> via(z0, z1, z2, z2) reach[Ite](True, z0, z1, z2) -> Cons(E(z0, z1), Nil) member(z0, Cons(z1, z2)) -> member[Ite](eqEdge(z0, z1), z0, Cons(z1, z2)) member(z0, Nil) -> False member[Ite](False, z0, Cons(z1, z2)) -> member(z0, z2) member[Ite](True, z0, z1) -> True eqEdge(E(z0, z1), E(z2, z3)) -> eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1) eqEdge[Ite](False, z0, z1, z2, z3) -> False eqEdge[Ite](True, z0, z1, z2, z3) -> True and(False, False) -> False and(True, False) -> False and(False, True) -> False and(True, True) -> True !EQ(S(z0), S(z1)) -> !EQ(z0, z1) !EQ(0, S(z0)) -> False !EQ(S(z0), 0) -> False !EQ(0, 0) -> True via(z0, z1, Cons(E(z2, z3), z4), z5) -> via[Ite](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5) via(z0, z1, Nil, z2) -> Nil via[Ite](True, z0, z1, Cons(E(z2, z3), z4), z5) -> via[Let](z0, z1, Cons(E(z2, z3), z4), z5, reach(z3, z1, z5)) via[Ite](False, z0, z1, Cons(z2, z3), z4) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Nil) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Cons(z5, z6)) -> Cons(z2, Cons(z5, z6)) Tuples: VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) MEMBER(E(x0, S(z0)), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, 0, x0, S(z0)), E(x0, S(z0)), Cons(E(x2, 0), x4)), EQEDGE(E(x0, S(z0)), E(x2, 0))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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))) MEMBER[ITE](False, E(x0, S(x1)), Cons(E(x2, 0), x3)) -> c12(MEMBER(E(x0, S(x1)), x3)) MEMBER[ITE](False, E(x0, 0), Cons(E(x1, 0), x2)) -> c12(MEMBER(E(x0, 0), x2)) MEMBER[ITE](False, E(S(x0), x1), Cons(E(S(x2), x3), x4)) -> c12(MEMBER(E(S(x0), x1), x4)) MEMBER[ITE](False, E(0, x0), Cons(E(S(x1), x2), x3)) -> c12(MEMBER(E(0, x0), x3)) MEMBER[ITE](False, E(S(x0), x1), Cons(E(0, x2), x3)) -> c12(MEMBER(E(S(x0), x1), x3)) MEMBER[ITE](False, E(0, x0), Cons(E(0, x1), x2)) -> c12(MEMBER(E(0, x0), x2)) REACH[ITE](False, x0, x1, Nil) -> c14(VIA(x0, x1, Nil, Nil)) REACH[ITE](False, x0, x1, Cons(E(x2, x3), x4)) -> c14(VIA(x0, x1, Cons(E(x2, x3), x4), Cons(E(x2, x3), x4))) REACH(x0, x1, Nil) -> c1(REACH[ITE](False, x0, x1, Nil)) REACH(x0, x1, Nil) -> c1(MEMBER(E(x0, x1), Nil)) VIA(0, x0, Nil, x4) -> c22 VIA(S(x0), x1, Nil, x4) -> c22 VIA(S(S(x0)), x1, Nil, x5) -> c22 VIA(S(0), x0, Nil, x4) -> c22 VIA(x0, x1, Nil, Nil) -> c22 !EQ'(S(S(y0)), S(S(y1))) -> c(!EQ'(S(y0), S(y1))) VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5)) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5)) MEMBER(E(x0, x1), Nil) -> c24 MEMBER(E(x0, S(x1)), Nil) -> c24 MEMBER(E(x0, 0), Nil) -> c24 MEMBER(E(S(x0), x1), Nil) -> c24 MEMBER(E(0, x0), Nil) -> c24 VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), Cons(z5, z6)) -> c8(VIA[LET](0, x0, Cons(E(0, x1), x2), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x1, x0), z5), E(x1, x0), Cons(z5, z6)), x1, x0, Cons(z5, z6))), REACH(x1, x0, Cons(z5, z6))) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(z5, z6)) -> c8(VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x3, x1), z5), E(x3, x1), Cons(z5, z6)), x3, x1, Cons(z5, z6))), REACH(x3, x1, Cons(z5, z6))) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), Cons(z5, z6)) -> c8(VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x1, x0), z5), E(x1, x0), Cons(z5, z6)), x1, x0, Cons(z5, z6))), REACH(x1, x0, Cons(z5, z6))) VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), x3) -> c8(REACH(x1, x0, x3)) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), x5) -> c8(REACH(x3, x1, x5)) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), x3) -> c8(REACH(x1, x0, x3)) VIA[LET](0, x0, Cons(E(0, x1), x2), Cons(x3, x4), Nil) -> c10(VIA(0, x0, x2, Cons(x3, x4))) VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(x5, x6), Nil) -> c10(VIA(S(S(x0)), x1, x4, Cons(x5, x6))) VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Cons(x3, x4), Nil) -> c10(VIA(S(0), x0, x2, Cons(x3, x4))) VIA(0, x0, Nil, Cons(z2, z3)) -> c22 VIA(S(x0), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(S(x0)), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(0), x0, Nil, Cons(z2, z3)) -> c22 VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), Nil) -> c8(VIA[LET](0, x0, Cons(E(0, x1), x2), Nil, Nil), REACH(x1, x0, Nil)) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Nil) -> c8(VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Nil, Nil), REACH(x3, x1, Nil)) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), Nil) -> c8(VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Nil, Nil), REACH(x1, x0, Nil)) EQEDGE(E(S(S(y0)), z1), E(S(S(y1)), z3)) -> c25(!EQ'(S(S(y0)), S(S(y1)))) EQEDGE(E(z0, S(S(y0))), E(z2, S(S(y1)))) -> c26(!EQ'(S(S(y0)), S(S(y1)))) VIA[LET](0, x0, Cons(E(0, x1), x2), Nil, Nil) -> c10(VIA(0, x0, x2, Nil)) VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Nil, Nil) -> c10(VIA(S(S(x0)), x1, x4, Nil)) VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Nil, Nil) -> c10(VIA(S(0), x0, x2, Nil)) REACH(z0, S(y1), Cons(E(y2, S(y3)), y4)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, S(y3)), y4))) REACH(z0, 0, Cons(E(y1, S(y2)), y3)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, S(y2)), y3))) REACH(z0, S(y1), Cons(E(y2, 0), y3)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, 0), y3))) REACH(z0, 0, Cons(E(y1, 0), y2)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, 0), y2))) REACH(S(y0), z1, Cons(E(S(y2), y3), y4)) -> c29(MEMBER(E(S(y0), z1), Cons(E(S(y2), y3), y4))) REACH(0, z1, Cons(E(S(y1), y2), y3)) -> c29(MEMBER(E(0, z1), Cons(E(S(y1), y2), y3))) REACH(S(y0), z1, Cons(E(0, y2), y3)) -> c29(MEMBER(E(S(y0), z1), Cons(E(0, y2), y3))) REACH(0, z1, Cons(E(0, y1), y2)) -> c29(MEMBER(E(0, z1), Cons(E(0, y1), y2))) REACH(z0, z1, Cons(E(y2, y3), y4)) -> c29(MEMBER(E(z0, z1), Cons(E(y2, y3), y4))) REACH(z0, z1, Nil) -> c29(MEMBER(E(z0, z1), Nil)) REACH(z0, S(y1), Nil) -> c29(MEMBER(E(z0, S(y1)), Nil)) REACH(z0, 0, Nil) -> c29(MEMBER(E(z0, 0), Nil)) REACH(S(y0), z1, Nil) -> c29(MEMBER(E(S(y0), z1), Nil)) REACH(0, z1, Nil) -> c29(MEMBER(E(0, z1), Nil)) VIA(S(S(y0)), z1, Cons(E(S(S(y1)), z3), z4), z5) -> c21(!EQ'(S(S(y0)), S(S(y1)))) MEMBER(E(S(S(y0)), z1), Cons(E(S(S(y2)), z3), z4)) -> c23(EQEDGE(E(S(S(y0)), z1), E(S(S(y2)), z3))) MEMBER(E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)) -> c23(EQEDGE(E(z0, S(S(y1))), E(z2, S(S(y3))))) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(S(y1), y2), y3)), z4) -> c9(VIA(0, z0, Cons(E(S(y1), y2), y3), z4)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(0, y1), y2)), z4) -> c9(VIA(0, z0, Cons(E(0, y1), y2), z4)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), z4) -> c9(VIA(0, z0, Nil, z4)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Nil) -> c9(VIA(0, z0, Nil, Nil)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Cons(y1, y2)) -> c9(VIA(0, z0, Nil, Cons(y1, y2))) VIA(0, z0, Cons(E(S(z1), z2), Cons(E(S(y3), y4), y5)), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(S(y3), y4), y5)), z4)) VIA(0, z0, Cons(E(S(z1), z2), Cons(E(0, y3), y4)), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(0, y3), y4)), z4)) VIA(0, z0, Cons(E(S(z1), z2), Nil), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), z4)) VIA(0, z0, Cons(E(S(z1), z2), Nil), Nil) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Nil)) VIA(0, z0, Cons(E(S(z1), z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Cons(y3, y4))) VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Cons(E(0, y2), y3)), z4) -> c9(VIA(S(z0), z1, Cons(E(0, y2), y3), z4)) VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4) -> c9(VIA(S(S(y0)), z1, Cons(E(S(S(y2)), y3), y4), z4)) VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), z4) -> c9(VIA(S(z0), z1, Nil, z4)) VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), z4) -> c9(VIA(S(S(y0)), z1, Nil, z4)) VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), z4) -> c9(VIA(S(0), z1, Nil, z4)) VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Nil) -> c9(VIA(S(z0), z1, Nil, Nil)) VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(S(y1)), y2), y3)), z4) -> c9(VIA(S(0), z1, Cons(E(S(S(y1)), y2), y3), z4)) VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4) -> c9(VIA(S(S(y0)), z1, Cons(E(S(0), y2), y3), z4)) VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(0), y1), y2)), z4) -> c9(VIA(S(0), z1, Cons(E(S(0), y1), y2), z4)) VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Cons(y2, y3)) -> c9(VIA(S(z0), z1, Nil, Cons(y2, y3))) VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y2, y3)) -> c9(VIA(S(S(y0)), z1, Nil, Cons(y2, y3))) VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), Cons(y1, y2)) -> c9(VIA(S(0), z1, Nil, Cons(y1, y2))) VIA(S(z0), z1, Cons(E(0, z2), Cons(E(0, y3), y4)), z4) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Cons(E(0, y3), y4)), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y3)), y4), y5)), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y3)), y4), y5)), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), z4)) VIA(S(0), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), Nil) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Nil)) VIA(S(0), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y3), y4)), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y3), y4)), z4)) VIA(S(0), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Cons(y3, y4))) VIA(S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y3, y4))) VIA(S(0), z1, Cons(E(0, z2), Nil), Cons(y2, y3)) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), Cons(y2, y3))) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(S(S(y2)), y3), y4)), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(S(S(y2)), y3), y4), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Nil), z5) -> c9(VIA(S(S(z0)), z1, Nil, z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Nil), Nil) -> c9(VIA(S(S(z0)), z1, Nil, Nil)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(S(0), y2), y3)), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(S(0), y2), y3), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Nil), Cons(y2, y3)) -> c9(VIA(S(S(z0)), z1, Nil, Cons(y2, y3))) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Cons(E(0, y3), y4))), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(0, y3), y4)), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Cons(E(S(S(y3)), y4), y5))), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(S(S(y3)), y4), y5)), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Nil)), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Nil)), Nil) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), Nil)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Cons(E(S(0), y3), y4))), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(S(0), y3), y4)), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Nil)), Cons(y3, y4)) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), Cons(y3, y4))) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Nil), z4) -> c9(VIA(S(0), z0, Nil, z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Nil), Nil) -> c9(VIA(S(0), z0, Nil, Nil)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(S(S(y1)), y2), y3)), z4) -> c9(VIA(S(0), z0, Cons(E(S(S(y1)), y2), y3), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(S(0), y1), y2)), z4) -> c9(VIA(S(0), z0, Cons(E(S(0), y1), y2), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Nil), Cons(y2, y3)) -> c9(VIA(S(0), z0, Nil, Cons(y2, y3))) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y2), Cons(E(0, y3), y4))), z4) -> c9(VIA(S(0), z0, Cons(E(0, y2), Cons(E(0, y3), y4)), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y2), Nil)), z4) -> c9(VIA(S(0), z0, Cons(E(0, y2), Nil), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y2), Nil)), Nil) -> c9(VIA(S(0), z0, Cons(E(0, y2), Nil), Nil)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y1), Cons(E(S(S(y2)), y3), y4))), z4) -> c9(VIA(S(0), z0, Cons(E(0, y1), Cons(E(S(S(y2)), y3), y4)), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y1), Cons(E(S(0), y2), y3))), z4) -> c9(VIA(S(0), z0, Cons(E(0, y1), Cons(E(S(0), y2), y3)), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y2), Nil)), Cons(y3, y4)) -> c9(VIA(S(0), z0, Cons(E(0, y2), Nil), Cons(y3, y4))) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(S(S(y2)), y3), y4)), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(S(S(y2)), y3), y4), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Nil), z4) -> c9(VIA(S(S(z0)), z1, Nil, z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Nil), Nil) -> c9(VIA(S(S(z0)), z1, Nil, Nil)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(S(0), y2), y3)), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(S(0), y2), y3), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Nil), Cons(y2, y3)) -> c9(VIA(S(S(z0)), z1, Nil, Cons(y2, y3))) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Cons(E(0, y3), y4))), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(0, y3), y4)), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Cons(E(S(S(y3)), y4), y5))), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(S(S(y3)), y4), y5)), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Nil)), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Nil)), Nil) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), Nil)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Cons(E(S(0), y3), y4))), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(S(0), y3), y4)), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Nil)), Cons(y3, y4)) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), Cons(y3, y4))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y2, S(y3)), y4))) -> c12(MEMBER(E(z0, S(z1)), Cons(E(y2, S(y3)), y4))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y2, 0), y3))) -> c12(MEMBER(E(z0, S(z1)), Cons(E(y2, 0), y3))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y2), y3), y4))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(S(y2), y3), y4))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y1), y2), y3))) -> c12(MEMBER(E(0, S(z1)), Cons(E(S(y1), y2), y3))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y2), y3))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(0, y2), y3))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y1), y2))) -> c12(MEMBER(E(0, S(z1)), Cons(E(0, y1), y2))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, S(z3)), Nil)) -> c12(MEMBER(E(z0, S(z1)), Nil)) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, S(z3)), Nil)) -> c12(MEMBER(E(S(y0), S(z1)), Nil)) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, S(z3)), Nil)) -> c12(MEMBER(E(0, S(z1)), Nil)) MEMBER[ITE](False, E(S(S(y0)), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(S(y2)), y3), y4))) -> c12(MEMBER(E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), y3), y4))) MEMBER[ITE](False, E(z0, S(S(y1))), Cons(E(z2, S(z3)), Cons(E(y2, S(S(y3))), y4))) -> c12(MEMBER(E(z0, S(S(y1))), Cons(E(y2, S(S(y3))), y4))) MEMBER(E(S(y1), S(z1)), Cons(E(S(y3), S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), S(y3)), !EQ(z1, z3)), S(y3), S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(S(y3), S(z3)), z4)), EQEDGE(E(S(y1), S(z1)), E(S(y3), S(z3)))) MEMBER(E(0, S(z1)), Cons(E(S(y2), S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, S(y2)), !EQ(z1, z3)), S(y2), S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(S(y2), S(z3)), z4)), EQEDGE(E(0, S(z1)), E(S(y2), S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(0, S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), 0), !EQ(z1, z3)), 0, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(0, S(z3)), z4)), EQEDGE(E(S(y1), S(z1)), E(0, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(0, S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, 0), !EQ(z1, z3)), 0, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(0, S(z3)), z4)), EQEDGE(E(0, S(z1)), E(0, S(z3)))) MEMBER(E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y0)), S(S(y2))), !EQ(z1, z3)), S(S(y2)), S(z3), S(S(y0)), S(z1)), E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), S(z3)), z4)), EQEDGE(E(S(S(y0)), S(z1)), E(S(S(y2)), S(z3)))) MEMBER(E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(S(y1), S(y3))), z2, S(S(y3)), z0, S(S(y1))), E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)), EQEDGE(E(z0, S(S(y1))), E(z2, S(S(y3))))) MEMBER(E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, S(y6)), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, S(z3), z0, S(z1)), E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, S(y6)), y7))), EQEDGE(E(z0, S(z1)), E(z2, S(z3)))) MEMBER(E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, 0), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, S(z3), z0, S(z1)), E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, 0), y6))), EQEDGE(E(z0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y5), y6), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), !EQ(z1, z3)), z2, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y5), y6), y7))), EQEDGE(E(S(y1), S(z1)), E(z2, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y4), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), !EQ(z1, z3)), z2, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y4), y5), y6))), EQEDGE(E(0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), !EQ(z1, z3)), z2, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y5), y6))), EQEDGE(E(S(y1), S(z1)), E(z2, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), !EQ(z1, z3)), z2, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y4), y5))), EQEDGE(E(0, S(z1)), E(z2, S(z3)))) MEMBER(E(z0, S(z1)), Cons(E(z2, S(z3)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, S(z3), z0, S(z1)), E(z0, S(z1)), Cons(E(z2, S(z3)), Nil)), EQEDGE(E(z0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, S(z3)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), !EQ(z1, z3)), z2, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, S(z3)), Nil)), EQEDGE(E(S(y1), S(z1)), E(z2, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(z2, S(z3)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), !EQ(z1, z3)), z2, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(z2, S(z3)), Nil)), EQEDGE(E(0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(S(y1)), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(S(y5)), y6), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z2), !EQ(z1, z3)), z2, S(z3), S(S(y1)), S(z1)), E(S(S(y1)), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(S(y5)), y6), y7))), EQEDGE(E(S(S(y1)), S(z1)), E(z2, S(z3)))) MEMBER(E(z0, S(S(y2))), Cons(E(z2, S(z3)), Cons(E(y5, S(S(y6))), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(S(y2), z3)), z2, S(z3), z0, S(S(y2))), E(z0, S(S(y2))), Cons(E(z2, S(z3)), Cons(E(y5, S(S(y6))), y7))), EQEDGE(E(z0, S(S(y2))), E(z2, S(z3)))) MEMBER[ITE](False, E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y1, S(y2)), y3))) -> c12(MEMBER(E(z0, 0), Cons(E(y1, S(y2)), y3))) MEMBER[ITE](False, E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y1, 0), y2))) -> c12(MEMBER(E(z0, 0), Cons(E(y1, 0), y2))) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, S(z2)), Cons(E(S(y2), y3), y4))) -> c12(MEMBER(E(S(y0), 0), Cons(E(S(y2), y3), y4))) MEMBER[ITE](False, E(0, 0), Cons(E(z1, S(z2)), Cons(E(S(y1), y2), y3))) -> c12(MEMBER(E(0, 0), Cons(E(S(y1), y2), y3))) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, S(z2)), Cons(E(0, y2), y3))) -> c12(MEMBER(E(S(y0), 0), Cons(E(0, y2), y3))) MEMBER[ITE](False, E(0, 0), Cons(E(z1, S(z2)), Cons(E(0, y1), y2))) -> c12(MEMBER(E(0, 0), Cons(E(0, y1), y2))) MEMBER[ITE](False, E(z0, 0), Cons(E(z1, S(z2)), Nil)) -> c12(MEMBER(E(z0, 0), Nil)) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, S(z2)), Nil)) -> c12(MEMBER(E(S(y0), 0), Nil)) MEMBER[ITE](False, E(0, 0), Cons(E(z1, S(z2)), Nil)) -> c12(MEMBER(E(0, 0), Nil)) MEMBER[ITE](False, E(S(S(y0)), 0), Cons(E(z1, S(z2)), Cons(E(S(S(y2)), y3), y4))) -> c12(MEMBER(E(S(S(y0)), 0), Cons(E(S(S(y2)), y3), y4))) MEMBER(E(S(y1), 0), Cons(E(S(y3), S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), S(y3)), False), S(y3), S(z2), S(y1), 0), E(S(y1), 0), Cons(E(S(y3), S(z2)), z3)), EQEDGE(E(S(y1), 0), E(S(y3), S(z2)))) MEMBER(E(S(S(y0)), 0), Cons(E(S(S(y2)), S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y0)), S(S(y2))), False), S(S(y2)), S(z2), S(S(y0)), 0), E(S(S(y0)), 0), Cons(E(S(S(y2)), S(z2)), z3)), EQEDGE(E(S(S(y0)), 0), E(S(S(y2)), S(z2)))) MEMBER(E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, S(y5)), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), False), z1, S(z2), z0, 0), E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, S(y5)), y6))), EQEDGE(E(z0, 0), E(z1, S(z2)))) MEMBER(E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, 0), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), False), z1, S(z2), z0, 0), E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, 0), y5))), EQEDGE(E(z0, 0), E(z1, S(z2)))) MEMBER(E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(S(y4), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), False), z1, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(S(y4), y5), y6))), EQEDGE(E(S(y1), 0), E(z1, S(z2)))) MEMBER(E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(0, y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), False), z1, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(0, y4), y5))), EQEDGE(E(S(y1), 0), E(z1, S(z2)))) MEMBER(E(z0, 0), Cons(E(z1, S(z2)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), False), z1, S(z2), z0, 0), E(z0, 0), Cons(E(z1, S(z2)), Nil)), EQEDGE(E(z0, 0), E(z1, S(z2)))) MEMBER(E(S(y1), 0), Cons(E(z1, S(z2)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), False), z1, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(z1, S(z2)), Nil)), EQEDGE(E(S(y1), 0), E(z1, S(z2)))) MEMBER(E(S(S(y1)), 0), Cons(E(z1, S(z2)), Cons(E(S(S(y4)), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z1), False), z1, S(z2), S(S(y1)), 0), E(S(S(y1)), 0), Cons(E(z1, S(z2)), Cons(E(S(S(y4)), y5), y6))), EQEDGE(E(S(S(y1)), 0), E(z1, S(z2)))) MEMBER(E(0, 0), Cons(E(S(y2), S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, S(y2)), False), S(y2), S(z2), 0, 0), E(0, 0), Cons(E(S(y2), S(z2)), z3))) MEMBER(E(S(y1), 0), Cons(E(0, S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), 0), False), 0, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(0, S(z2)), z3))) MEMBER(E(0, 0), Cons(E(0, S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, 0), False), 0, S(z2), 0, 0), E(0, 0), Cons(E(0, S(z2)), z3))) MEMBER(E(0, 0), Cons(E(z1, S(z2)), Cons(E(S(y3), y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), False), z1, S(z2), 0, 0), E(0, 0), Cons(E(z1, S(z2)), Cons(E(S(y3), y4), y5)))) MEMBER(E(0, 0), Cons(E(z1, S(z2)), Cons(E(0, y3), y4))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), False), z1, S(z2), 0, 0), E(0, 0), Cons(E(z1, S(z2)), Cons(E(0, y3), y4)))) MEMBER(E(0, 0), Cons(E(z1, S(z2)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), False), z1, S(z2), 0, 0), E(0, 0), Cons(E(z1, S(z2)), Nil))) S tuples: VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) MEMBER(E(x0, S(z0)), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, 0, x0, S(z0)), E(x0, S(z0)), Cons(E(x2, 0), x4)), EQEDGE(E(x0, S(z0)), E(x2, 0))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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))) REACH(x0, x1, Nil) -> c1(REACH[ITE](False, x0, x1, Nil)) REACH(x0, x1, Nil) -> c1(MEMBER(E(x0, x1), Nil)) VIA(0, x0, Nil, x4) -> c22 VIA(S(x0), x1, Nil, x4) -> c22 VIA(S(S(x0)), x1, Nil, x5) -> c22 VIA(S(0), x0, Nil, x4) -> c22 VIA(x0, x1, Nil, Nil) -> c22 VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5)) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5)) MEMBER(E(x0, x1), Nil) -> c24 MEMBER(E(x0, S(x1)), Nil) -> c24 MEMBER(E(x0, 0), Nil) -> c24 MEMBER(E(S(x0), x1), Nil) -> c24 MEMBER(E(0, x0), Nil) -> c24 VIA(0, x0, Nil, Cons(z2, z3)) -> c22 VIA(S(x0), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(S(x0)), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(0), x0, Nil, Cons(z2, z3)) -> c22 EQEDGE(E(S(S(y0)), z1), E(S(S(y1)), z3)) -> c25(!EQ'(S(S(y0)), S(S(y1)))) EQEDGE(E(z0, S(S(y0))), E(z2, S(S(y1)))) -> c26(!EQ'(S(S(y0)), S(S(y1)))) REACH(z0, S(y1), Cons(E(y2, S(y3)), y4)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, S(y3)), y4))) REACH(z0, 0, Cons(E(y1, S(y2)), y3)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, S(y2)), y3))) REACH(z0, S(y1), Cons(E(y2, 0), y3)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, 0), y3))) REACH(z0, 0, Cons(E(y1, 0), y2)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, 0), y2))) REACH(S(y0), z1, Cons(E(S(y2), y3), y4)) -> c29(MEMBER(E(S(y0), z1), Cons(E(S(y2), y3), y4))) REACH(0, z1, Cons(E(S(y1), y2), y3)) -> c29(MEMBER(E(0, z1), Cons(E(S(y1), y2), y3))) REACH(S(y0), z1, Cons(E(0, y2), y3)) -> c29(MEMBER(E(S(y0), z1), Cons(E(0, y2), y3))) REACH(0, z1, Cons(E(0, y1), y2)) -> c29(MEMBER(E(0, z1), Cons(E(0, y1), y2))) REACH(z0, z1, Cons(E(y2, y3), y4)) -> c29(MEMBER(E(z0, z1), Cons(E(y2, y3), y4))) REACH(z0, z1, Nil) -> c29(MEMBER(E(z0, z1), Nil)) REACH(z0, S(y1), Nil) -> c29(MEMBER(E(z0, S(y1)), Nil)) REACH(z0, 0, Nil) -> c29(MEMBER(E(z0, 0), Nil)) REACH(S(y0), z1, Nil) -> c29(MEMBER(E(S(y0), z1), Nil)) REACH(0, z1, Nil) -> c29(MEMBER(E(0, z1), Nil)) VIA(S(S(y0)), z1, Cons(E(S(S(y1)), z3), z4), z5) -> c21(!EQ'(S(S(y0)), S(S(y1)))) MEMBER(E(S(S(y0)), z1), Cons(E(S(S(y2)), z3), z4)) -> c23(EQEDGE(E(S(S(y0)), z1), E(S(S(y2)), z3))) MEMBER(E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)) -> c23(EQEDGE(E(z0, S(S(y1))), E(z2, S(S(y3))))) VIA(0, z0, Cons(E(S(z1), z2), Cons(E(S(y3), y4), y5)), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(S(y3), y4), y5)), z4)) VIA(0, z0, Cons(E(S(z1), z2), Cons(E(0, y3), y4)), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(0, y3), y4)), z4)) VIA(0, z0, Cons(E(S(z1), z2), Nil), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), z4)) VIA(0, z0, Cons(E(S(z1), z2), Nil), Nil) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Nil)) VIA(0, z0, Cons(E(S(z1), z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Cons(y3, y4))) VIA(S(z0), z1, Cons(E(0, z2), Cons(E(0, y3), y4)), z4) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Cons(E(0, y3), y4)), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y3)), y4), y5)), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y3)), y4), y5)), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), z4)) VIA(S(0), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), Nil) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Nil)) VIA(S(0), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y3), y4)), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y3), y4)), z4)) VIA(S(0), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Cons(y3, y4))) VIA(S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y3, y4))) VIA(S(0), z1, Cons(E(0, z2), Nil), Cons(y2, y3)) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), Cons(y2, y3))) MEMBER(E(S(y1), S(z1)), Cons(E(S(y3), S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), S(y3)), !EQ(z1, z3)), S(y3), S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(S(y3), S(z3)), z4)), EQEDGE(E(S(y1), S(z1)), E(S(y3), S(z3)))) MEMBER(E(0, S(z1)), Cons(E(S(y2), S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, S(y2)), !EQ(z1, z3)), S(y2), S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(S(y2), S(z3)), z4)), EQEDGE(E(0, S(z1)), E(S(y2), S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(0, S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), 0), !EQ(z1, z3)), 0, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(0, S(z3)), z4)), EQEDGE(E(S(y1), S(z1)), E(0, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(0, S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, 0), !EQ(z1, z3)), 0, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(0, S(z3)), z4)), EQEDGE(E(0, S(z1)), E(0, S(z3)))) MEMBER(E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y0)), S(S(y2))), !EQ(z1, z3)), S(S(y2)), S(z3), S(S(y0)), S(z1)), E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), S(z3)), z4)), EQEDGE(E(S(S(y0)), S(z1)), E(S(S(y2)), S(z3)))) MEMBER(E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(S(y1), S(y3))), z2, S(S(y3)), z0, S(S(y1))), E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)), EQEDGE(E(z0, S(S(y1))), E(z2, S(S(y3))))) MEMBER(E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, S(y6)), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, S(z3), z0, S(z1)), E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, S(y6)), y7))), EQEDGE(E(z0, S(z1)), E(z2, S(z3)))) MEMBER(E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, 0), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, S(z3), z0, S(z1)), E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, 0), y6))), EQEDGE(E(z0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y5), y6), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), !EQ(z1, z3)), z2, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y5), y6), y7))), EQEDGE(E(S(y1), S(z1)), E(z2, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y4), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), !EQ(z1, z3)), z2, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y4), y5), y6))), EQEDGE(E(0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), !EQ(z1, z3)), z2, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y5), y6))), EQEDGE(E(S(y1), S(z1)), E(z2, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), !EQ(z1, z3)), z2, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y4), y5))), EQEDGE(E(0, S(z1)), E(z2, S(z3)))) MEMBER(E(z0, S(z1)), Cons(E(z2, S(z3)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, S(z3), z0, S(z1)), E(z0, S(z1)), Cons(E(z2, S(z3)), Nil)), EQEDGE(E(z0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, S(z3)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), !EQ(z1, z3)), z2, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, S(z3)), Nil)), EQEDGE(E(S(y1), S(z1)), E(z2, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(z2, S(z3)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), !EQ(z1, z3)), z2, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(z2, S(z3)), Nil)), EQEDGE(E(0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(S(y1)), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(S(y5)), y6), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z2), !EQ(z1, z3)), z2, S(z3), S(S(y1)), S(z1)), E(S(S(y1)), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(S(y5)), y6), y7))), EQEDGE(E(S(S(y1)), S(z1)), E(z2, S(z3)))) MEMBER(E(z0, S(S(y2))), Cons(E(z2, S(z3)), Cons(E(y5, S(S(y6))), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(S(y2), z3)), z2, S(z3), z0, S(S(y2))), E(z0, S(S(y2))), Cons(E(z2, S(z3)), Cons(E(y5, S(S(y6))), y7))), EQEDGE(E(z0, S(S(y2))), E(z2, S(z3)))) MEMBER(E(S(y1), 0), Cons(E(S(y3), S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), S(y3)), False), S(y3), S(z2), S(y1), 0), E(S(y1), 0), Cons(E(S(y3), S(z2)), z3)), EQEDGE(E(S(y1), 0), E(S(y3), S(z2)))) MEMBER(E(S(S(y0)), 0), Cons(E(S(S(y2)), S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y0)), S(S(y2))), False), S(S(y2)), S(z2), S(S(y0)), 0), E(S(S(y0)), 0), Cons(E(S(S(y2)), S(z2)), z3)), EQEDGE(E(S(S(y0)), 0), E(S(S(y2)), S(z2)))) MEMBER(E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, S(y5)), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), False), z1, S(z2), z0, 0), E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, S(y5)), y6))), EQEDGE(E(z0, 0), E(z1, S(z2)))) MEMBER(E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, 0), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), False), z1, S(z2), z0, 0), E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, 0), y5))), EQEDGE(E(z0, 0), E(z1, S(z2)))) MEMBER(E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(S(y4), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), False), z1, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(S(y4), y5), y6))), EQEDGE(E(S(y1), 0), E(z1, S(z2)))) MEMBER(E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(0, y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), False), z1, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(0, y4), y5))), EQEDGE(E(S(y1), 0), E(z1, S(z2)))) MEMBER(E(z0, 0), Cons(E(z1, S(z2)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), False), z1, S(z2), z0, 0), E(z0, 0), Cons(E(z1, S(z2)), Nil)), EQEDGE(E(z0, 0), E(z1, S(z2)))) MEMBER(E(S(y1), 0), Cons(E(z1, S(z2)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), False), z1, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(z1, S(z2)), Nil)), EQEDGE(E(S(y1), 0), E(z1, S(z2)))) MEMBER(E(S(S(y1)), 0), Cons(E(z1, S(z2)), Cons(E(S(S(y4)), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z1), False), z1, S(z2), S(S(y1)), 0), E(S(S(y1)), 0), Cons(E(z1, S(z2)), Cons(E(S(S(y4)), y5), y6))), EQEDGE(E(S(S(y1)), 0), E(z1, S(z2)))) MEMBER(E(0, 0), Cons(E(S(y2), S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, S(y2)), False), S(y2), S(z2), 0, 0), E(0, 0), Cons(E(S(y2), S(z2)), z3))) MEMBER(E(S(y1), 0), Cons(E(0, S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), 0), False), 0, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(0, S(z2)), z3))) MEMBER(E(0, 0), Cons(E(0, S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, 0), False), 0, S(z2), 0, 0), E(0, 0), Cons(E(0, S(z2)), z3))) MEMBER(E(0, 0), Cons(E(z1, S(z2)), Cons(E(S(y3), y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), False), z1, S(z2), 0, 0), E(0, 0), Cons(E(z1, S(z2)), Cons(E(S(y3), y4), y5)))) MEMBER(E(0, 0), Cons(E(z1, S(z2)), Cons(E(0, y3), y4))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), False), z1, S(z2), 0, 0), E(0, 0), Cons(E(z1, S(z2)), Cons(E(0, y3), y4)))) MEMBER(E(0, 0), Cons(E(z1, S(z2)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), False), z1, S(z2), 0, 0), E(0, 0), Cons(E(z1, S(z2)), Nil))) K tuples:none Defined Rule Symbols: reach_3, reach[Ite]_4, member_2, member[Ite]_3, eqEdge_2, eqEdge[Ite]_5, and_2, !EQ_2, via_4, via[Ite]_5, via[Let]_5 Defined Pair Symbols: VIA_4, MEMBER_2, REACH_3, MEMBER[ITE]_3, REACH[ITE]_4, !EQ'_2, VIA[ITE]_5, VIA[LET]_5, EQEDGE_2 Compound Symbols: c21_1, c21_2, c23_2, c29_2, c12_1, c14_1, c1_1, c22, c_1, c24, c8_2, c8_1, c10_1, c25_1, c26_1, c29_1, c23_1, c9_1 ---------------------------------------- (119) CdtForwardInstantiationProof (BOTH BOUNDS(ID, ID)) Use forward instantiation to replace MEMBER[ITE](False, E(x0, S(x1)), Cons(E(x2, 0), x3)) -> c12(MEMBER(E(x0, S(x1)), x3)) by MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y2, 0), y3))) -> c12(MEMBER(E(z0, S(z1)), Cons(E(y2, 0), y3))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, 0), Cons(E(S(y2), y3), y4))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(S(y2), y3), y4))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, 0), Cons(E(S(y1), y2), y3))) -> c12(MEMBER(E(0, S(z1)), Cons(E(S(y1), y2), y3))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, 0), Cons(E(0, y2), y3))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(0, y2), y3))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, 0), Cons(E(0, y1), y2))) -> c12(MEMBER(E(0, S(z1)), Cons(E(0, y1), y2))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, 0), Nil)) -> c12(MEMBER(E(z0, S(z1)), Nil)) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, 0), Nil)) -> c12(MEMBER(E(S(y0), S(z1)), Nil)) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, 0), Nil)) -> c12(MEMBER(E(0, S(z1)), Nil)) MEMBER[ITE](False, E(S(S(y0)), S(z1)), Cons(E(z2, 0), Cons(E(S(S(y2)), y3), y4))) -> c12(MEMBER(E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), y3), y4))) MEMBER[ITE](False, E(z0, S(S(y1))), Cons(E(z2, 0), Cons(E(y2, S(S(y3))), y4))) -> c12(MEMBER(E(z0, S(S(y1))), Cons(E(y2, S(S(y3))), y4))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, 0), Cons(E(S(y2), S(y3)), y4))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(S(y2), S(y3)), y4))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, 0), Cons(E(S(y1), S(y2)), y3))) -> c12(MEMBER(E(0, S(z1)), Cons(E(S(y1), S(y2)), y3))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, 0), Cons(E(0, S(y2)), y3))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(0, S(y2)), y3))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, 0), Cons(E(0, S(y1)), y2))) -> c12(MEMBER(E(0, S(z1)), Cons(E(0, S(y1)), y2))) MEMBER[ITE](False, E(S(S(y0)), S(z1)), Cons(E(z2, 0), Cons(E(S(S(y2)), S(y3)), y4))) -> c12(MEMBER(E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), S(y3)), y4))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y2, S(y3)), Cons(E(y4, S(y5)), y6)))) -> c12(MEMBER(E(z0, S(z1)), Cons(E(y2, S(y3)), Cons(E(y4, S(y5)), y6)))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y2, S(y3)), Cons(E(y4, 0), y5)))) -> c12(MEMBER(E(z0, S(z1)), Cons(E(y2, S(y3)), Cons(E(y4, 0), y5)))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, 0), Cons(E(y2, S(y3)), Cons(E(S(y4), y5), y6)))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(y2, S(y3)), Cons(E(S(y4), y5), y6)))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, 0), Cons(E(y1, S(y2)), Cons(E(S(y3), y4), y5)))) -> c12(MEMBER(E(0, S(z1)), Cons(E(y1, S(y2)), Cons(E(S(y3), y4), y5)))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, 0), Cons(E(y2, S(y3)), Cons(E(0, y4), y5)))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(y2, S(y3)), Cons(E(0, y4), y5)))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, 0), Cons(E(y1, S(y2)), Cons(E(0, y3), y4)))) -> c12(MEMBER(E(0, S(z1)), Cons(E(y1, S(y2)), Cons(E(0, y3), y4)))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y2, S(y3)), Nil))) -> c12(MEMBER(E(z0, S(z1)), Cons(E(y2, S(y3)), Nil))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, 0), Cons(E(y2, S(y3)), Nil))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(y2, S(y3)), Nil))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, 0), Cons(E(y1, S(y2)), Nil))) -> c12(MEMBER(E(0, S(z1)), Cons(E(y1, S(y2)), Nil))) MEMBER[ITE](False, E(S(S(y0)), S(z1)), Cons(E(z2, 0), Cons(E(y2, S(y3)), Cons(E(S(S(y4)), y5), y6)))) -> c12(MEMBER(E(S(S(y0)), S(z1)), Cons(E(y2, S(y3)), Cons(E(S(S(y4)), y5), y6)))) MEMBER[ITE](False, E(z0, S(S(y1))), Cons(E(z2, 0), Cons(E(y2, S(y3)), Cons(E(y4, S(S(y5))), y6)))) -> c12(MEMBER(E(z0, S(S(y1))), Cons(E(y2, S(y3)), Cons(E(y4, S(S(y5))), y6)))) ---------------------------------------- (120) Obligation: Complexity Dependency Tuples Problem Rules: reach(z0, z1, z2) -> reach[Ite](member(E(z0, z1), z2), z0, z1, z2) reach[Ite](False, z0, z1, z2) -> via(z0, z1, z2, z2) reach[Ite](True, z0, z1, z2) -> Cons(E(z0, z1), Nil) member(z0, Cons(z1, z2)) -> member[Ite](eqEdge(z0, z1), z0, Cons(z1, z2)) member(z0, Nil) -> False member[Ite](False, z0, Cons(z1, z2)) -> member(z0, z2) member[Ite](True, z0, z1) -> True eqEdge(E(z0, z1), E(z2, z3)) -> eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1) eqEdge[Ite](False, z0, z1, z2, z3) -> False eqEdge[Ite](True, z0, z1, z2, z3) -> True and(False, False) -> False and(True, False) -> False and(False, True) -> False and(True, True) -> True !EQ(S(z0), S(z1)) -> !EQ(z0, z1) !EQ(0, S(z0)) -> False !EQ(S(z0), 0) -> False !EQ(0, 0) -> True via(z0, z1, Cons(E(z2, z3), z4), z5) -> via[Ite](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5) via(z0, z1, Nil, z2) -> Nil via[Ite](True, z0, z1, Cons(E(z2, z3), z4), z5) -> via[Let](z0, z1, Cons(E(z2, z3), z4), z5, reach(z3, z1, z5)) via[Ite](False, z0, z1, Cons(z2, z3), z4) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Nil) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Cons(z5, z6)) -> Cons(z2, Cons(z5, z6)) Tuples: VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) MEMBER(E(x0, S(z0)), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, 0, x0, S(z0)), E(x0, S(z0)), Cons(E(x2, 0), x4)), EQEDGE(E(x0, S(z0)), E(x2, 0))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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))) MEMBER[ITE](False, E(x0, 0), Cons(E(x1, 0), x2)) -> c12(MEMBER(E(x0, 0), x2)) MEMBER[ITE](False, E(S(x0), x1), Cons(E(S(x2), x3), x4)) -> c12(MEMBER(E(S(x0), x1), x4)) MEMBER[ITE](False, E(0, x0), Cons(E(S(x1), x2), x3)) -> c12(MEMBER(E(0, x0), x3)) MEMBER[ITE](False, E(S(x0), x1), Cons(E(0, x2), x3)) -> c12(MEMBER(E(S(x0), x1), x3)) MEMBER[ITE](False, E(0, x0), Cons(E(0, x1), x2)) -> c12(MEMBER(E(0, x0), x2)) REACH[ITE](False, x0, x1, Nil) -> c14(VIA(x0, x1, Nil, Nil)) REACH[ITE](False, x0, x1, Cons(E(x2, x3), x4)) -> c14(VIA(x0, x1, Cons(E(x2, x3), x4), Cons(E(x2, x3), x4))) REACH(x0, x1, Nil) -> c1(REACH[ITE](False, x0, x1, Nil)) REACH(x0, x1, Nil) -> c1(MEMBER(E(x0, x1), Nil)) VIA(0, x0, Nil, x4) -> c22 VIA(S(x0), x1, Nil, x4) -> c22 VIA(S(S(x0)), x1, Nil, x5) -> c22 VIA(S(0), x0, Nil, x4) -> c22 VIA(x0, x1, Nil, Nil) -> c22 !EQ'(S(S(y0)), S(S(y1))) -> c(!EQ'(S(y0), S(y1))) VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5)) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5)) MEMBER(E(x0, x1), Nil) -> c24 MEMBER(E(x0, S(x1)), Nil) -> c24 MEMBER(E(x0, 0), Nil) -> c24 MEMBER(E(S(x0), x1), Nil) -> c24 MEMBER(E(0, x0), Nil) -> c24 VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), Cons(z5, z6)) -> c8(VIA[LET](0, x0, Cons(E(0, x1), x2), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x1, x0), z5), E(x1, x0), Cons(z5, z6)), x1, x0, Cons(z5, z6))), REACH(x1, x0, Cons(z5, z6))) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(z5, z6)) -> c8(VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x3, x1), z5), E(x3, x1), Cons(z5, z6)), x3, x1, Cons(z5, z6))), REACH(x3, x1, Cons(z5, z6))) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), Cons(z5, z6)) -> c8(VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x1, x0), z5), E(x1, x0), Cons(z5, z6)), x1, x0, Cons(z5, z6))), REACH(x1, x0, Cons(z5, z6))) VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), x3) -> c8(REACH(x1, x0, x3)) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), x5) -> c8(REACH(x3, x1, x5)) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), x3) -> c8(REACH(x1, x0, x3)) VIA[LET](0, x0, Cons(E(0, x1), x2), Cons(x3, x4), Nil) -> c10(VIA(0, x0, x2, Cons(x3, x4))) VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(x5, x6), Nil) -> c10(VIA(S(S(x0)), x1, x4, Cons(x5, x6))) VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Cons(x3, x4), Nil) -> c10(VIA(S(0), x0, x2, Cons(x3, x4))) VIA(0, x0, Nil, Cons(z2, z3)) -> c22 VIA(S(x0), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(S(x0)), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(0), x0, Nil, Cons(z2, z3)) -> c22 VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), Nil) -> c8(VIA[LET](0, x0, Cons(E(0, x1), x2), Nil, Nil), REACH(x1, x0, Nil)) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Nil) -> c8(VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Nil, Nil), REACH(x3, x1, Nil)) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), Nil) -> c8(VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Nil, Nil), REACH(x1, x0, Nil)) EQEDGE(E(S(S(y0)), z1), E(S(S(y1)), z3)) -> c25(!EQ'(S(S(y0)), S(S(y1)))) EQEDGE(E(z0, S(S(y0))), E(z2, S(S(y1)))) -> c26(!EQ'(S(S(y0)), S(S(y1)))) VIA[LET](0, x0, Cons(E(0, x1), x2), Nil, Nil) -> c10(VIA(0, x0, x2, Nil)) VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Nil, Nil) -> c10(VIA(S(S(x0)), x1, x4, Nil)) VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Nil, Nil) -> c10(VIA(S(0), x0, x2, Nil)) REACH(z0, S(y1), Cons(E(y2, S(y3)), y4)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, S(y3)), y4))) REACH(z0, 0, Cons(E(y1, S(y2)), y3)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, S(y2)), y3))) REACH(z0, S(y1), Cons(E(y2, 0), y3)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, 0), y3))) REACH(z0, 0, Cons(E(y1, 0), y2)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, 0), y2))) REACH(S(y0), z1, Cons(E(S(y2), y3), y4)) -> c29(MEMBER(E(S(y0), z1), Cons(E(S(y2), y3), y4))) REACH(0, z1, Cons(E(S(y1), y2), y3)) -> c29(MEMBER(E(0, z1), Cons(E(S(y1), y2), y3))) REACH(S(y0), z1, Cons(E(0, y2), y3)) -> c29(MEMBER(E(S(y0), z1), Cons(E(0, y2), y3))) REACH(0, z1, Cons(E(0, y1), y2)) -> c29(MEMBER(E(0, z1), Cons(E(0, y1), y2))) REACH(z0, z1, Cons(E(y2, y3), y4)) -> c29(MEMBER(E(z0, z1), Cons(E(y2, y3), y4))) REACH(z0, z1, Nil) -> c29(MEMBER(E(z0, z1), Nil)) REACH(z0, S(y1), Nil) -> c29(MEMBER(E(z0, S(y1)), Nil)) REACH(z0, 0, Nil) -> c29(MEMBER(E(z0, 0), Nil)) REACH(S(y0), z1, Nil) -> c29(MEMBER(E(S(y0), z1), Nil)) REACH(0, z1, Nil) -> c29(MEMBER(E(0, z1), Nil)) VIA(S(S(y0)), z1, Cons(E(S(S(y1)), z3), z4), z5) -> c21(!EQ'(S(S(y0)), S(S(y1)))) MEMBER(E(S(S(y0)), z1), Cons(E(S(S(y2)), z3), z4)) -> c23(EQEDGE(E(S(S(y0)), z1), E(S(S(y2)), z3))) MEMBER(E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)) -> c23(EQEDGE(E(z0, S(S(y1))), E(z2, S(S(y3))))) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(S(y1), y2), y3)), z4) -> c9(VIA(0, z0, Cons(E(S(y1), y2), y3), z4)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(0, y1), y2)), z4) -> c9(VIA(0, z0, Cons(E(0, y1), y2), z4)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), z4) -> c9(VIA(0, z0, Nil, z4)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Nil) -> c9(VIA(0, z0, Nil, Nil)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Cons(y1, y2)) -> c9(VIA(0, z0, Nil, Cons(y1, y2))) VIA(0, z0, Cons(E(S(z1), z2), Cons(E(S(y3), y4), y5)), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(S(y3), y4), y5)), z4)) VIA(0, z0, Cons(E(S(z1), z2), Cons(E(0, y3), y4)), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(0, y3), y4)), z4)) VIA(0, z0, Cons(E(S(z1), z2), Nil), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), z4)) VIA(0, z0, Cons(E(S(z1), z2), Nil), Nil) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Nil)) VIA(0, z0, Cons(E(S(z1), z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Cons(y3, y4))) VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Cons(E(0, y2), y3)), z4) -> c9(VIA(S(z0), z1, Cons(E(0, y2), y3), z4)) VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4) -> c9(VIA(S(S(y0)), z1, Cons(E(S(S(y2)), y3), y4), z4)) VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), z4) -> c9(VIA(S(z0), z1, Nil, z4)) VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), z4) -> c9(VIA(S(S(y0)), z1, Nil, z4)) VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), z4) -> c9(VIA(S(0), z1, Nil, z4)) VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Nil) -> c9(VIA(S(z0), z1, Nil, Nil)) VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(S(y1)), y2), y3)), z4) -> c9(VIA(S(0), z1, Cons(E(S(S(y1)), y2), y3), z4)) VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4) -> c9(VIA(S(S(y0)), z1, Cons(E(S(0), y2), y3), z4)) VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(0), y1), y2)), z4) -> c9(VIA(S(0), z1, Cons(E(S(0), y1), y2), z4)) VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Cons(y2, y3)) -> c9(VIA(S(z0), z1, Nil, Cons(y2, y3))) VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y2, y3)) -> c9(VIA(S(S(y0)), z1, Nil, Cons(y2, y3))) VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), Cons(y1, y2)) -> c9(VIA(S(0), z1, Nil, Cons(y1, y2))) VIA(S(z0), z1, Cons(E(0, z2), Cons(E(0, y3), y4)), z4) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Cons(E(0, y3), y4)), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y3)), y4), y5)), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y3)), y4), y5)), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), z4)) VIA(S(0), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), Nil) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Nil)) VIA(S(0), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y3), y4)), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y3), y4)), z4)) VIA(S(0), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Cons(y3, y4))) VIA(S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y3, y4))) VIA(S(0), z1, Cons(E(0, z2), Nil), Cons(y2, y3)) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), Cons(y2, y3))) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(S(S(y2)), y3), y4)), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(S(S(y2)), y3), y4), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Nil), z5) -> c9(VIA(S(S(z0)), z1, Nil, z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Nil), Nil) -> c9(VIA(S(S(z0)), z1, Nil, Nil)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(S(0), y2), y3)), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(S(0), y2), y3), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Nil), Cons(y2, y3)) -> c9(VIA(S(S(z0)), z1, Nil, Cons(y2, y3))) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Cons(E(0, y3), y4))), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(0, y3), y4)), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Cons(E(S(S(y3)), y4), y5))), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(S(S(y3)), y4), y5)), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Nil)), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Nil)), Nil) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), Nil)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Cons(E(S(0), y3), y4))), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(S(0), y3), y4)), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Nil)), Cons(y3, y4)) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), Cons(y3, y4))) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Nil), z4) -> c9(VIA(S(0), z0, Nil, z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Nil), Nil) -> c9(VIA(S(0), z0, Nil, Nil)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(S(S(y1)), y2), y3)), z4) -> c9(VIA(S(0), z0, Cons(E(S(S(y1)), y2), y3), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(S(0), y1), y2)), z4) -> c9(VIA(S(0), z0, Cons(E(S(0), y1), y2), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Nil), Cons(y2, y3)) -> c9(VIA(S(0), z0, Nil, Cons(y2, y3))) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y2), Cons(E(0, y3), y4))), z4) -> c9(VIA(S(0), z0, Cons(E(0, y2), Cons(E(0, y3), y4)), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y2), Nil)), z4) -> c9(VIA(S(0), z0, Cons(E(0, y2), Nil), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y2), Nil)), Nil) -> c9(VIA(S(0), z0, Cons(E(0, y2), Nil), Nil)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y1), Cons(E(S(S(y2)), y3), y4))), z4) -> c9(VIA(S(0), z0, Cons(E(0, y1), Cons(E(S(S(y2)), y3), y4)), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y1), Cons(E(S(0), y2), y3))), z4) -> c9(VIA(S(0), z0, Cons(E(0, y1), Cons(E(S(0), y2), y3)), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y2), Nil)), Cons(y3, y4)) -> c9(VIA(S(0), z0, Cons(E(0, y2), Nil), Cons(y3, y4))) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(S(S(y2)), y3), y4)), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(S(S(y2)), y3), y4), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Nil), z4) -> c9(VIA(S(S(z0)), z1, Nil, z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Nil), Nil) -> c9(VIA(S(S(z0)), z1, Nil, Nil)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(S(0), y2), y3)), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(S(0), y2), y3), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Nil), Cons(y2, y3)) -> c9(VIA(S(S(z0)), z1, Nil, Cons(y2, y3))) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Cons(E(0, y3), y4))), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(0, y3), y4)), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Cons(E(S(S(y3)), y4), y5))), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(S(S(y3)), y4), y5)), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Nil)), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Nil)), Nil) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), Nil)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Cons(E(S(0), y3), y4))), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(S(0), y3), y4)), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Nil)), Cons(y3, y4)) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), Cons(y3, y4))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y2, S(y3)), y4))) -> c12(MEMBER(E(z0, S(z1)), Cons(E(y2, S(y3)), y4))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y2, 0), y3))) -> c12(MEMBER(E(z0, S(z1)), Cons(E(y2, 0), y3))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y2), y3), y4))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(S(y2), y3), y4))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y1), y2), y3))) -> c12(MEMBER(E(0, S(z1)), Cons(E(S(y1), y2), y3))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y2), y3))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(0, y2), y3))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y1), y2))) -> c12(MEMBER(E(0, S(z1)), Cons(E(0, y1), y2))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, S(z3)), Nil)) -> c12(MEMBER(E(z0, S(z1)), Nil)) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, S(z3)), Nil)) -> c12(MEMBER(E(S(y0), S(z1)), Nil)) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, S(z3)), Nil)) -> c12(MEMBER(E(0, S(z1)), Nil)) MEMBER[ITE](False, E(S(S(y0)), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(S(y2)), y3), y4))) -> c12(MEMBER(E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), y3), y4))) MEMBER[ITE](False, E(z0, S(S(y1))), Cons(E(z2, S(z3)), Cons(E(y2, S(S(y3))), y4))) -> c12(MEMBER(E(z0, S(S(y1))), Cons(E(y2, S(S(y3))), y4))) MEMBER(E(S(y1), S(z1)), Cons(E(S(y3), S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), S(y3)), !EQ(z1, z3)), S(y3), S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(S(y3), S(z3)), z4)), EQEDGE(E(S(y1), S(z1)), E(S(y3), S(z3)))) MEMBER(E(0, S(z1)), Cons(E(S(y2), S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, S(y2)), !EQ(z1, z3)), S(y2), S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(S(y2), S(z3)), z4)), EQEDGE(E(0, S(z1)), E(S(y2), S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(0, S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), 0), !EQ(z1, z3)), 0, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(0, S(z3)), z4)), EQEDGE(E(S(y1), S(z1)), E(0, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(0, S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, 0), !EQ(z1, z3)), 0, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(0, S(z3)), z4)), EQEDGE(E(0, S(z1)), E(0, S(z3)))) MEMBER(E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y0)), S(S(y2))), !EQ(z1, z3)), S(S(y2)), S(z3), S(S(y0)), S(z1)), E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), S(z3)), z4)), EQEDGE(E(S(S(y0)), S(z1)), E(S(S(y2)), S(z3)))) MEMBER(E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(S(y1), S(y3))), z2, S(S(y3)), z0, S(S(y1))), E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)), EQEDGE(E(z0, S(S(y1))), E(z2, S(S(y3))))) MEMBER(E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, S(y6)), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, S(z3), z0, S(z1)), E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, S(y6)), y7))), EQEDGE(E(z0, S(z1)), E(z2, S(z3)))) MEMBER(E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, 0), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, S(z3), z0, S(z1)), E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, 0), y6))), EQEDGE(E(z0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y5), y6), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), !EQ(z1, z3)), z2, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y5), y6), y7))), EQEDGE(E(S(y1), S(z1)), E(z2, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y4), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), !EQ(z1, z3)), z2, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y4), y5), y6))), EQEDGE(E(0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), !EQ(z1, z3)), z2, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y5), y6))), EQEDGE(E(S(y1), S(z1)), E(z2, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), !EQ(z1, z3)), z2, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y4), y5))), EQEDGE(E(0, S(z1)), E(z2, S(z3)))) MEMBER(E(z0, S(z1)), Cons(E(z2, S(z3)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, S(z3), z0, S(z1)), E(z0, S(z1)), Cons(E(z2, S(z3)), Nil)), EQEDGE(E(z0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, S(z3)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), !EQ(z1, z3)), z2, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, S(z3)), Nil)), EQEDGE(E(S(y1), S(z1)), E(z2, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(z2, S(z3)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), !EQ(z1, z3)), z2, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(z2, S(z3)), Nil)), EQEDGE(E(0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(S(y1)), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(S(y5)), y6), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z2), !EQ(z1, z3)), z2, S(z3), S(S(y1)), S(z1)), E(S(S(y1)), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(S(y5)), y6), y7))), EQEDGE(E(S(S(y1)), S(z1)), E(z2, S(z3)))) MEMBER(E(z0, S(S(y2))), Cons(E(z2, S(z3)), Cons(E(y5, S(S(y6))), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(S(y2), z3)), z2, S(z3), z0, S(S(y2))), E(z0, S(S(y2))), Cons(E(z2, S(z3)), Cons(E(y5, S(S(y6))), y7))), EQEDGE(E(z0, S(S(y2))), E(z2, S(z3)))) MEMBER[ITE](False, E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y1, S(y2)), y3))) -> c12(MEMBER(E(z0, 0), Cons(E(y1, S(y2)), y3))) MEMBER[ITE](False, E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y1, 0), y2))) -> c12(MEMBER(E(z0, 0), Cons(E(y1, 0), y2))) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, S(z2)), Cons(E(S(y2), y3), y4))) -> c12(MEMBER(E(S(y0), 0), Cons(E(S(y2), y3), y4))) MEMBER[ITE](False, E(0, 0), Cons(E(z1, S(z2)), Cons(E(S(y1), y2), y3))) -> c12(MEMBER(E(0, 0), Cons(E(S(y1), y2), y3))) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, S(z2)), Cons(E(0, y2), y3))) -> c12(MEMBER(E(S(y0), 0), Cons(E(0, y2), y3))) MEMBER[ITE](False, E(0, 0), Cons(E(z1, S(z2)), Cons(E(0, y1), y2))) -> c12(MEMBER(E(0, 0), Cons(E(0, y1), y2))) MEMBER[ITE](False, E(z0, 0), Cons(E(z1, S(z2)), Nil)) -> c12(MEMBER(E(z0, 0), Nil)) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, S(z2)), Nil)) -> c12(MEMBER(E(S(y0), 0), Nil)) MEMBER[ITE](False, E(0, 0), Cons(E(z1, S(z2)), Nil)) -> c12(MEMBER(E(0, 0), Nil)) MEMBER[ITE](False, E(S(S(y0)), 0), Cons(E(z1, S(z2)), Cons(E(S(S(y2)), y3), y4))) -> c12(MEMBER(E(S(S(y0)), 0), Cons(E(S(S(y2)), y3), y4))) MEMBER(E(S(y1), 0), Cons(E(S(y3), S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), S(y3)), False), S(y3), S(z2), S(y1), 0), E(S(y1), 0), Cons(E(S(y3), S(z2)), z3)), EQEDGE(E(S(y1), 0), E(S(y3), S(z2)))) MEMBER(E(S(S(y0)), 0), Cons(E(S(S(y2)), S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y0)), S(S(y2))), False), S(S(y2)), S(z2), S(S(y0)), 0), E(S(S(y0)), 0), Cons(E(S(S(y2)), S(z2)), z3)), EQEDGE(E(S(S(y0)), 0), E(S(S(y2)), S(z2)))) MEMBER(E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, S(y5)), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), False), z1, S(z2), z0, 0), E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, S(y5)), y6))), EQEDGE(E(z0, 0), E(z1, S(z2)))) MEMBER(E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, 0), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), False), z1, S(z2), z0, 0), E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, 0), y5))), EQEDGE(E(z0, 0), E(z1, S(z2)))) MEMBER(E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(S(y4), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), False), z1, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(S(y4), y5), y6))), EQEDGE(E(S(y1), 0), E(z1, S(z2)))) MEMBER(E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(0, y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), False), z1, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(0, y4), y5))), EQEDGE(E(S(y1), 0), E(z1, S(z2)))) MEMBER(E(z0, 0), Cons(E(z1, S(z2)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), False), z1, S(z2), z0, 0), E(z0, 0), Cons(E(z1, S(z2)), Nil)), EQEDGE(E(z0, 0), E(z1, S(z2)))) MEMBER(E(S(y1), 0), Cons(E(z1, S(z2)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), False), z1, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(z1, S(z2)), Nil)), EQEDGE(E(S(y1), 0), E(z1, S(z2)))) MEMBER(E(S(S(y1)), 0), Cons(E(z1, S(z2)), Cons(E(S(S(y4)), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z1), False), z1, S(z2), S(S(y1)), 0), E(S(S(y1)), 0), Cons(E(z1, S(z2)), Cons(E(S(S(y4)), y5), y6))), EQEDGE(E(S(S(y1)), 0), E(z1, S(z2)))) MEMBER(E(0, 0), Cons(E(S(y2), S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, S(y2)), False), S(y2), S(z2), 0, 0), E(0, 0), Cons(E(S(y2), S(z2)), z3))) MEMBER(E(S(y1), 0), Cons(E(0, S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), 0), False), 0, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(0, S(z2)), z3))) MEMBER(E(0, 0), Cons(E(0, S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, 0), False), 0, S(z2), 0, 0), E(0, 0), Cons(E(0, S(z2)), z3))) MEMBER(E(0, 0), Cons(E(z1, S(z2)), Cons(E(S(y3), y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), False), z1, S(z2), 0, 0), E(0, 0), Cons(E(z1, S(z2)), Cons(E(S(y3), y4), y5)))) MEMBER(E(0, 0), Cons(E(z1, S(z2)), Cons(E(0, y3), y4))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), False), z1, S(z2), 0, 0), E(0, 0), Cons(E(z1, S(z2)), Cons(E(0, y3), y4)))) MEMBER(E(0, 0), Cons(E(z1, S(z2)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), False), z1, S(z2), 0, 0), E(0, 0), Cons(E(z1, S(z2)), Nil))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y2, 0), y3))) -> c12(MEMBER(E(z0, S(z1)), Cons(E(y2, 0), y3))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, 0), Cons(E(S(y2), y3), y4))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(S(y2), y3), y4))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, 0), Cons(E(S(y1), y2), y3))) -> c12(MEMBER(E(0, S(z1)), Cons(E(S(y1), y2), y3))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, 0), Cons(E(0, y2), y3))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(0, y2), y3))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, 0), Cons(E(0, y1), y2))) -> c12(MEMBER(E(0, S(z1)), Cons(E(0, y1), y2))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, 0), Nil)) -> c12(MEMBER(E(z0, S(z1)), Nil)) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, 0), Nil)) -> c12(MEMBER(E(S(y0), S(z1)), Nil)) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, 0), Nil)) -> c12(MEMBER(E(0, S(z1)), Nil)) MEMBER[ITE](False, E(S(S(y0)), S(z1)), Cons(E(z2, 0), Cons(E(S(S(y2)), y3), y4))) -> c12(MEMBER(E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), y3), y4))) MEMBER[ITE](False, E(z0, S(S(y1))), Cons(E(z2, 0), Cons(E(y2, S(S(y3))), y4))) -> c12(MEMBER(E(z0, S(S(y1))), Cons(E(y2, S(S(y3))), y4))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, 0), Cons(E(S(y2), S(y3)), y4))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(S(y2), S(y3)), y4))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, 0), Cons(E(S(y1), S(y2)), y3))) -> c12(MEMBER(E(0, S(z1)), Cons(E(S(y1), S(y2)), y3))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, 0), Cons(E(0, S(y2)), y3))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(0, S(y2)), y3))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, 0), Cons(E(0, S(y1)), y2))) -> c12(MEMBER(E(0, S(z1)), Cons(E(0, S(y1)), y2))) MEMBER[ITE](False, E(S(S(y0)), S(z1)), Cons(E(z2, 0), Cons(E(S(S(y2)), S(y3)), y4))) -> c12(MEMBER(E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), S(y3)), y4))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y2, S(y3)), Cons(E(y4, S(y5)), y6)))) -> c12(MEMBER(E(z0, S(z1)), Cons(E(y2, S(y3)), Cons(E(y4, S(y5)), y6)))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y2, S(y3)), Cons(E(y4, 0), y5)))) -> c12(MEMBER(E(z0, S(z1)), Cons(E(y2, S(y3)), Cons(E(y4, 0), y5)))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, 0), Cons(E(y2, S(y3)), Cons(E(S(y4), y5), y6)))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(y2, S(y3)), Cons(E(S(y4), y5), y6)))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, 0), Cons(E(y1, S(y2)), Cons(E(S(y3), y4), y5)))) -> c12(MEMBER(E(0, S(z1)), Cons(E(y1, S(y2)), Cons(E(S(y3), y4), y5)))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, 0), Cons(E(y2, S(y3)), Cons(E(0, y4), y5)))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(y2, S(y3)), Cons(E(0, y4), y5)))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, 0), Cons(E(y1, S(y2)), Cons(E(0, y3), y4)))) -> c12(MEMBER(E(0, S(z1)), Cons(E(y1, S(y2)), Cons(E(0, y3), y4)))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y2, S(y3)), Nil))) -> c12(MEMBER(E(z0, S(z1)), Cons(E(y2, S(y3)), Nil))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, 0), Cons(E(y2, S(y3)), Nil))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(y2, S(y3)), Nil))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, 0), Cons(E(y1, S(y2)), Nil))) -> c12(MEMBER(E(0, S(z1)), Cons(E(y1, S(y2)), Nil))) MEMBER[ITE](False, E(S(S(y0)), S(z1)), Cons(E(z2, 0), Cons(E(y2, S(y3)), Cons(E(S(S(y4)), y5), y6)))) -> c12(MEMBER(E(S(S(y0)), S(z1)), Cons(E(y2, S(y3)), Cons(E(S(S(y4)), y5), y6)))) MEMBER[ITE](False, E(z0, S(S(y1))), Cons(E(z2, 0), Cons(E(y2, S(y3)), Cons(E(y4, S(S(y5))), y6)))) -> c12(MEMBER(E(z0, S(S(y1))), Cons(E(y2, S(y3)), Cons(E(y4, S(S(y5))), y6)))) S tuples: VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) MEMBER(E(x0, S(z0)), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, 0, x0, S(z0)), E(x0, S(z0)), Cons(E(x2, 0), x4)), EQEDGE(E(x0, S(z0)), E(x2, 0))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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))) REACH(x0, x1, Nil) -> c1(REACH[ITE](False, x0, x1, Nil)) REACH(x0, x1, Nil) -> c1(MEMBER(E(x0, x1), Nil)) VIA(0, x0, Nil, x4) -> c22 VIA(S(x0), x1, Nil, x4) -> c22 VIA(S(S(x0)), x1, Nil, x5) -> c22 VIA(S(0), x0, Nil, x4) -> c22 VIA(x0, x1, Nil, Nil) -> c22 VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5)) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5)) MEMBER(E(x0, x1), Nil) -> c24 MEMBER(E(x0, S(x1)), Nil) -> c24 MEMBER(E(x0, 0), Nil) -> c24 MEMBER(E(S(x0), x1), Nil) -> c24 MEMBER(E(0, x0), Nil) -> c24 VIA(0, x0, Nil, Cons(z2, z3)) -> c22 VIA(S(x0), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(S(x0)), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(0), x0, Nil, Cons(z2, z3)) -> c22 EQEDGE(E(S(S(y0)), z1), E(S(S(y1)), z3)) -> c25(!EQ'(S(S(y0)), S(S(y1)))) EQEDGE(E(z0, S(S(y0))), E(z2, S(S(y1)))) -> c26(!EQ'(S(S(y0)), S(S(y1)))) REACH(z0, S(y1), Cons(E(y2, S(y3)), y4)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, S(y3)), y4))) REACH(z0, 0, Cons(E(y1, S(y2)), y3)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, S(y2)), y3))) REACH(z0, S(y1), Cons(E(y2, 0), y3)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, 0), y3))) REACH(z0, 0, Cons(E(y1, 0), y2)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, 0), y2))) REACH(S(y0), z1, Cons(E(S(y2), y3), y4)) -> c29(MEMBER(E(S(y0), z1), Cons(E(S(y2), y3), y4))) REACH(0, z1, Cons(E(S(y1), y2), y3)) -> c29(MEMBER(E(0, z1), Cons(E(S(y1), y2), y3))) REACH(S(y0), z1, Cons(E(0, y2), y3)) -> c29(MEMBER(E(S(y0), z1), Cons(E(0, y2), y3))) REACH(0, z1, Cons(E(0, y1), y2)) -> c29(MEMBER(E(0, z1), Cons(E(0, y1), y2))) REACH(z0, z1, Cons(E(y2, y3), y4)) -> c29(MEMBER(E(z0, z1), Cons(E(y2, y3), y4))) REACH(z0, z1, Nil) -> c29(MEMBER(E(z0, z1), Nil)) REACH(z0, S(y1), Nil) -> c29(MEMBER(E(z0, S(y1)), Nil)) REACH(z0, 0, Nil) -> c29(MEMBER(E(z0, 0), Nil)) REACH(S(y0), z1, Nil) -> c29(MEMBER(E(S(y0), z1), Nil)) REACH(0, z1, Nil) -> c29(MEMBER(E(0, z1), Nil)) VIA(S(S(y0)), z1, Cons(E(S(S(y1)), z3), z4), z5) -> c21(!EQ'(S(S(y0)), S(S(y1)))) MEMBER(E(S(S(y0)), z1), Cons(E(S(S(y2)), z3), z4)) -> c23(EQEDGE(E(S(S(y0)), z1), E(S(S(y2)), z3))) MEMBER(E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)) -> c23(EQEDGE(E(z0, S(S(y1))), E(z2, S(S(y3))))) VIA(0, z0, Cons(E(S(z1), z2), Cons(E(S(y3), y4), y5)), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(S(y3), y4), y5)), z4)) VIA(0, z0, Cons(E(S(z1), z2), Cons(E(0, y3), y4)), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(0, y3), y4)), z4)) VIA(0, z0, Cons(E(S(z1), z2), Nil), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), z4)) VIA(0, z0, Cons(E(S(z1), z2), Nil), Nil) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Nil)) VIA(0, z0, Cons(E(S(z1), z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Cons(y3, y4))) VIA(S(z0), z1, Cons(E(0, z2), Cons(E(0, y3), y4)), z4) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Cons(E(0, y3), y4)), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y3)), y4), y5)), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y3)), y4), y5)), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), z4)) VIA(S(0), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), Nil) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Nil)) VIA(S(0), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y3), y4)), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y3), y4)), z4)) VIA(S(0), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Cons(y3, y4))) VIA(S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y3, y4))) VIA(S(0), z1, Cons(E(0, z2), Nil), Cons(y2, y3)) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), Cons(y2, y3))) MEMBER(E(S(y1), S(z1)), Cons(E(S(y3), S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), S(y3)), !EQ(z1, z3)), S(y3), S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(S(y3), S(z3)), z4)), EQEDGE(E(S(y1), S(z1)), E(S(y3), S(z3)))) MEMBER(E(0, S(z1)), Cons(E(S(y2), S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, S(y2)), !EQ(z1, z3)), S(y2), S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(S(y2), S(z3)), z4)), EQEDGE(E(0, S(z1)), E(S(y2), S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(0, S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), 0), !EQ(z1, z3)), 0, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(0, S(z3)), z4)), EQEDGE(E(S(y1), S(z1)), E(0, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(0, S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, 0), !EQ(z1, z3)), 0, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(0, S(z3)), z4)), EQEDGE(E(0, S(z1)), E(0, S(z3)))) MEMBER(E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y0)), S(S(y2))), !EQ(z1, z3)), S(S(y2)), S(z3), S(S(y0)), S(z1)), E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), S(z3)), z4)), EQEDGE(E(S(S(y0)), S(z1)), E(S(S(y2)), S(z3)))) MEMBER(E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(S(y1), S(y3))), z2, S(S(y3)), z0, S(S(y1))), E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)), EQEDGE(E(z0, S(S(y1))), E(z2, S(S(y3))))) MEMBER(E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, S(y6)), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, S(z3), z0, S(z1)), E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, S(y6)), y7))), EQEDGE(E(z0, S(z1)), E(z2, S(z3)))) MEMBER(E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, 0), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, S(z3), z0, S(z1)), E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, 0), y6))), EQEDGE(E(z0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y5), y6), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), !EQ(z1, z3)), z2, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y5), y6), y7))), EQEDGE(E(S(y1), S(z1)), E(z2, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y4), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), !EQ(z1, z3)), z2, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y4), y5), y6))), EQEDGE(E(0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), !EQ(z1, z3)), z2, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y5), y6))), EQEDGE(E(S(y1), S(z1)), E(z2, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), !EQ(z1, z3)), z2, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y4), y5))), EQEDGE(E(0, S(z1)), E(z2, S(z3)))) MEMBER(E(z0, S(z1)), Cons(E(z2, S(z3)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, S(z3), z0, S(z1)), E(z0, S(z1)), Cons(E(z2, S(z3)), Nil)), EQEDGE(E(z0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, S(z3)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), !EQ(z1, z3)), z2, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, S(z3)), Nil)), EQEDGE(E(S(y1), S(z1)), E(z2, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(z2, S(z3)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), !EQ(z1, z3)), z2, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(z2, S(z3)), Nil)), EQEDGE(E(0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(S(y1)), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(S(y5)), y6), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z2), !EQ(z1, z3)), z2, S(z3), S(S(y1)), S(z1)), E(S(S(y1)), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(S(y5)), y6), y7))), EQEDGE(E(S(S(y1)), S(z1)), E(z2, S(z3)))) MEMBER(E(z0, S(S(y2))), Cons(E(z2, S(z3)), Cons(E(y5, S(S(y6))), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(S(y2), z3)), z2, S(z3), z0, S(S(y2))), E(z0, S(S(y2))), Cons(E(z2, S(z3)), Cons(E(y5, S(S(y6))), y7))), EQEDGE(E(z0, S(S(y2))), E(z2, S(z3)))) MEMBER(E(S(y1), 0), Cons(E(S(y3), S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), S(y3)), False), S(y3), S(z2), S(y1), 0), E(S(y1), 0), Cons(E(S(y3), S(z2)), z3)), EQEDGE(E(S(y1), 0), E(S(y3), S(z2)))) MEMBER(E(S(S(y0)), 0), Cons(E(S(S(y2)), S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y0)), S(S(y2))), False), S(S(y2)), S(z2), S(S(y0)), 0), E(S(S(y0)), 0), Cons(E(S(S(y2)), S(z2)), z3)), EQEDGE(E(S(S(y0)), 0), E(S(S(y2)), S(z2)))) MEMBER(E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, S(y5)), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), False), z1, S(z2), z0, 0), E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, S(y5)), y6))), EQEDGE(E(z0, 0), E(z1, S(z2)))) MEMBER(E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, 0), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), False), z1, S(z2), z0, 0), E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, 0), y5))), EQEDGE(E(z0, 0), E(z1, S(z2)))) MEMBER(E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(S(y4), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), False), z1, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(S(y4), y5), y6))), EQEDGE(E(S(y1), 0), E(z1, S(z2)))) MEMBER(E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(0, y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), False), z1, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(0, y4), y5))), EQEDGE(E(S(y1), 0), E(z1, S(z2)))) MEMBER(E(z0, 0), Cons(E(z1, S(z2)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), False), z1, S(z2), z0, 0), E(z0, 0), Cons(E(z1, S(z2)), Nil)), EQEDGE(E(z0, 0), E(z1, S(z2)))) MEMBER(E(S(y1), 0), Cons(E(z1, S(z2)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), False), z1, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(z1, S(z2)), Nil)), EQEDGE(E(S(y1), 0), E(z1, S(z2)))) MEMBER(E(S(S(y1)), 0), Cons(E(z1, S(z2)), Cons(E(S(S(y4)), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z1), False), z1, S(z2), S(S(y1)), 0), E(S(S(y1)), 0), Cons(E(z1, S(z2)), Cons(E(S(S(y4)), y5), y6))), EQEDGE(E(S(S(y1)), 0), E(z1, S(z2)))) MEMBER(E(0, 0), Cons(E(S(y2), S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, S(y2)), False), S(y2), S(z2), 0, 0), E(0, 0), Cons(E(S(y2), S(z2)), z3))) MEMBER(E(S(y1), 0), Cons(E(0, S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), 0), False), 0, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(0, S(z2)), z3))) MEMBER(E(0, 0), Cons(E(0, S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, 0), False), 0, S(z2), 0, 0), E(0, 0), Cons(E(0, S(z2)), z3))) MEMBER(E(0, 0), Cons(E(z1, S(z2)), Cons(E(S(y3), y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), False), z1, S(z2), 0, 0), E(0, 0), Cons(E(z1, S(z2)), Cons(E(S(y3), y4), y5)))) MEMBER(E(0, 0), Cons(E(z1, S(z2)), Cons(E(0, y3), y4))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), False), z1, S(z2), 0, 0), E(0, 0), Cons(E(z1, S(z2)), Cons(E(0, y3), y4)))) MEMBER(E(0, 0), Cons(E(z1, S(z2)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), False), z1, S(z2), 0, 0), E(0, 0), Cons(E(z1, S(z2)), Nil))) K tuples:none Defined Rule Symbols: reach_3, reach[Ite]_4, member_2, member[Ite]_3, eqEdge_2, eqEdge[Ite]_5, and_2, !EQ_2, via_4, via[Ite]_5, via[Let]_5 Defined Pair Symbols: VIA_4, MEMBER_2, REACH_3, MEMBER[ITE]_3, REACH[ITE]_4, !EQ'_2, VIA[ITE]_5, VIA[LET]_5, EQEDGE_2 Compound Symbols: c21_1, c21_2, c23_2, c29_2, c12_1, c14_1, c1_1, c22, c_1, c24, c8_2, c8_1, c10_1, c25_1, c26_1, c29_1, c23_1, c9_1 ---------------------------------------- (121) CdtForwardInstantiationProof (BOTH BOUNDS(ID, ID)) Use forward instantiation to replace MEMBER(E(x0, S(z0)), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), False), x2, 0, x0, S(z0)), E(x0, S(z0)), Cons(E(x2, 0), x4)), EQEDGE(E(x0, S(z0)), E(x2, 0))) by MEMBER(E(S(y1), S(z1)), Cons(E(S(y3), 0), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), S(y3)), False), S(y3), 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(S(y3), 0), z3)), EQEDGE(E(S(y1), S(z1)), E(S(y3), 0))) MEMBER(E(0, S(z1)), Cons(E(S(y2), 0), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, S(y2)), False), S(y2), 0, 0, S(z1)), E(0, S(z1)), Cons(E(S(y2), 0), z3)), EQEDGE(E(0, S(z1)), E(S(y2), 0))) MEMBER(E(S(y1), S(z1)), Cons(E(0, 0), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), 0), False), 0, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(0, 0), z3)), EQEDGE(E(S(y1), S(z1)), E(0, 0))) MEMBER(E(0, S(z1)), Cons(E(0, 0), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, 0), False), 0, 0, 0, S(z1)), E(0, S(z1)), Cons(E(0, 0), z3)), EQEDGE(E(0, S(z1)), E(0, 0))) MEMBER(E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), 0), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y0)), S(S(y2))), False), S(S(y2)), 0, S(S(y0)), S(z1)), E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), 0), z3)), EQEDGE(E(S(S(y0)), S(z1)), E(S(S(y2)), 0))) MEMBER(E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, 0), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(z1)), E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, 0), y5))), EQEDGE(E(z0, S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(S(y4), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(S(y4), y5), y6))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(S(y3), y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(S(y3), y4), y5))), EQEDGE(E(0, S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(0, y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(0, y4), y5))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(0, y3), y4))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(0, y3), y4))), EQEDGE(E(0, S(z1)), E(z2, 0))) MEMBER(E(z0, S(z1)), Cons(E(z2, 0), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(z1)), E(z0, S(z1)), Cons(E(z2, 0), Nil)), EQEDGE(E(z0, S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Nil)), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Nil)), EQEDGE(E(0, S(z1)), E(z2, 0))) MEMBER(E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(S(S(y4)), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z2), False), z2, 0, S(S(y1)), S(z1)), E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(S(S(y4)), y5), y6))), EQEDGE(E(S(S(y1)), S(z1)), E(z2, 0))) MEMBER(E(z0, S(S(y2))), Cons(E(z2, 0), Cons(E(y4, S(S(y5))), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(S(y2))), E(z0, S(S(y2))), Cons(E(z2, 0), Cons(E(y4, S(S(y5))), y6))), EQEDGE(E(z0, S(S(y2))), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(S(y4), S(y5)), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(S(y4), S(y5)), y6))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(S(y3), S(y4)), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(S(y3), S(y4)), y5))), EQEDGE(E(0, S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(0, S(y4)), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(0, S(y4)), y5))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(0, S(y3)), y4))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(0, S(y3)), y4))), EQEDGE(E(0, S(z1)), E(z2, 0))) MEMBER(E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(S(S(y4)), S(y5)), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z2), False), z2, 0, S(S(y1)), S(z1)), E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(S(S(y4)), S(y5)), y6))), EQEDGE(E(S(S(y1)), S(z1)), E(z2, 0))) MEMBER(E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, S(y7)), y8)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(z1)), E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, S(y7)), y8)))), EQEDGE(E(z0, S(z1)), E(z2, 0))) MEMBER(E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, 0), y7)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(z1)), E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, 0), y7)))), EQEDGE(E(z0, S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(S(y6), y7), y8)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(S(y6), y7), y8)))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Cons(E(S(y5), y6), y7)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Cons(E(S(y5), y6), y7)))), EQEDGE(E(0, S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(0, y6), y7)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(0, y6), y7)))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Cons(E(0, y5), y6)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Cons(E(0, y5), y6)))), EQEDGE(E(0, S(z1)), E(z2, 0))) MEMBER(E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Nil))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(z1)), E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Nil))), EQEDGE(E(z0, S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Nil))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Nil))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Nil))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Nil))), EQEDGE(E(0, S(z1)), E(z2, 0))) MEMBER(E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(S(S(y6)), y7), y8)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z2), False), z2, 0, S(S(y1)), S(z1)), E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(S(S(y6)), y7), y8)))), EQEDGE(E(S(S(y1)), S(z1)), E(z2, 0))) MEMBER(E(z0, S(S(y2))), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, S(S(y7))), y8)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(S(y2))), E(z0, S(S(y2))), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, S(S(y7))), y8)))), EQEDGE(E(z0, S(S(y2))), E(z2, 0))) ---------------------------------------- (122) Obligation: Complexity Dependency Tuples Problem Rules: reach(z0, z1, z2) -> reach[Ite](member(E(z0, z1), z2), z0, z1, z2) reach[Ite](False, z0, z1, z2) -> via(z0, z1, z2, z2) reach[Ite](True, z0, z1, z2) -> Cons(E(z0, z1), Nil) member(z0, Cons(z1, z2)) -> member[Ite](eqEdge(z0, z1), z0, Cons(z1, z2)) member(z0, Nil) -> False member[Ite](False, z0, Cons(z1, z2)) -> member(z0, z2) member[Ite](True, z0, z1) -> True eqEdge(E(z0, z1), E(z2, z3)) -> eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1) eqEdge[Ite](False, z0, z1, z2, z3) -> False eqEdge[Ite](True, z0, z1, z2, z3) -> True and(False, False) -> False and(True, False) -> False and(False, True) -> False and(True, True) -> True !EQ(S(z0), S(z1)) -> !EQ(z0, z1) !EQ(0, S(z0)) -> False !EQ(S(z0), 0) -> False !EQ(0, 0) -> True via(z0, z1, Cons(E(z2, z3), z4), z5) -> via[Ite](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5) via(z0, z1, Nil, z2) -> Nil via[Ite](True, z0, z1, Cons(E(z2, z3), z4), z5) -> via[Let](z0, z1, Cons(E(z2, z3), z4), z5, reach(z3, z1, z5)) via[Ite](False, z0, z1, Cons(z2, z3), z4) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Nil) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Cons(z5, z6)) -> Cons(z2, Cons(z5, z6)) Tuples: VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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))) MEMBER[ITE](False, E(x0, 0), Cons(E(x1, 0), x2)) -> c12(MEMBER(E(x0, 0), x2)) MEMBER[ITE](False, E(S(x0), x1), Cons(E(S(x2), x3), x4)) -> c12(MEMBER(E(S(x0), x1), x4)) MEMBER[ITE](False, E(0, x0), Cons(E(S(x1), x2), x3)) -> c12(MEMBER(E(0, x0), x3)) MEMBER[ITE](False, E(S(x0), x1), Cons(E(0, x2), x3)) -> c12(MEMBER(E(S(x0), x1), x3)) MEMBER[ITE](False, E(0, x0), Cons(E(0, x1), x2)) -> c12(MEMBER(E(0, x0), x2)) REACH[ITE](False, x0, x1, Nil) -> c14(VIA(x0, x1, Nil, Nil)) REACH[ITE](False, x0, x1, Cons(E(x2, x3), x4)) -> c14(VIA(x0, x1, Cons(E(x2, x3), x4), Cons(E(x2, x3), x4))) REACH(x0, x1, Nil) -> c1(REACH[ITE](False, x0, x1, Nil)) REACH(x0, x1, Nil) -> c1(MEMBER(E(x0, x1), Nil)) VIA(0, x0, Nil, x4) -> c22 VIA(S(x0), x1, Nil, x4) -> c22 VIA(S(S(x0)), x1, Nil, x5) -> c22 VIA(S(0), x0, Nil, x4) -> c22 VIA(x0, x1, Nil, Nil) -> c22 !EQ'(S(S(y0)), S(S(y1))) -> c(!EQ'(S(y0), S(y1))) VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5)) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5)) MEMBER(E(x0, x1), Nil) -> c24 MEMBER(E(x0, S(x1)), Nil) -> c24 MEMBER(E(x0, 0), Nil) -> c24 MEMBER(E(S(x0), x1), Nil) -> c24 MEMBER(E(0, x0), Nil) -> c24 VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), Cons(z5, z6)) -> c8(VIA[LET](0, x0, Cons(E(0, x1), x2), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x1, x0), z5), E(x1, x0), Cons(z5, z6)), x1, x0, Cons(z5, z6))), REACH(x1, x0, Cons(z5, z6))) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(z5, z6)) -> c8(VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x3, x1), z5), E(x3, x1), Cons(z5, z6)), x3, x1, Cons(z5, z6))), REACH(x3, x1, Cons(z5, z6))) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), Cons(z5, z6)) -> c8(VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x1, x0), z5), E(x1, x0), Cons(z5, z6)), x1, x0, Cons(z5, z6))), REACH(x1, x0, Cons(z5, z6))) VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), x3) -> c8(REACH(x1, x0, x3)) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), x5) -> c8(REACH(x3, x1, x5)) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), x3) -> c8(REACH(x1, x0, x3)) VIA[LET](0, x0, Cons(E(0, x1), x2), Cons(x3, x4), Nil) -> c10(VIA(0, x0, x2, Cons(x3, x4))) VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(x5, x6), Nil) -> c10(VIA(S(S(x0)), x1, x4, Cons(x5, x6))) VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Cons(x3, x4), Nil) -> c10(VIA(S(0), x0, x2, Cons(x3, x4))) VIA(0, x0, Nil, Cons(z2, z3)) -> c22 VIA(S(x0), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(S(x0)), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(0), x0, Nil, Cons(z2, z3)) -> c22 VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), Nil) -> c8(VIA[LET](0, x0, Cons(E(0, x1), x2), Nil, Nil), REACH(x1, x0, Nil)) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Nil) -> c8(VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Nil, Nil), REACH(x3, x1, Nil)) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), Nil) -> c8(VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Nil, Nil), REACH(x1, x0, Nil)) EQEDGE(E(S(S(y0)), z1), E(S(S(y1)), z3)) -> c25(!EQ'(S(S(y0)), S(S(y1)))) EQEDGE(E(z0, S(S(y0))), E(z2, S(S(y1)))) -> c26(!EQ'(S(S(y0)), S(S(y1)))) VIA[LET](0, x0, Cons(E(0, x1), x2), Nil, Nil) -> c10(VIA(0, x0, x2, Nil)) VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Nil, Nil) -> c10(VIA(S(S(x0)), x1, x4, Nil)) VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Nil, Nil) -> c10(VIA(S(0), x0, x2, Nil)) REACH(z0, S(y1), Cons(E(y2, S(y3)), y4)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, S(y3)), y4))) REACH(z0, 0, Cons(E(y1, S(y2)), y3)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, S(y2)), y3))) REACH(z0, S(y1), Cons(E(y2, 0), y3)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, 0), y3))) REACH(z0, 0, Cons(E(y1, 0), y2)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, 0), y2))) REACH(S(y0), z1, Cons(E(S(y2), y3), y4)) -> c29(MEMBER(E(S(y0), z1), Cons(E(S(y2), y3), y4))) REACH(0, z1, Cons(E(S(y1), y2), y3)) -> c29(MEMBER(E(0, z1), Cons(E(S(y1), y2), y3))) REACH(S(y0), z1, Cons(E(0, y2), y3)) -> c29(MEMBER(E(S(y0), z1), Cons(E(0, y2), y3))) REACH(0, z1, Cons(E(0, y1), y2)) -> c29(MEMBER(E(0, z1), Cons(E(0, y1), y2))) REACH(z0, z1, Cons(E(y2, y3), y4)) -> c29(MEMBER(E(z0, z1), Cons(E(y2, y3), y4))) REACH(z0, z1, Nil) -> c29(MEMBER(E(z0, z1), Nil)) REACH(z0, S(y1), Nil) -> c29(MEMBER(E(z0, S(y1)), Nil)) REACH(z0, 0, Nil) -> c29(MEMBER(E(z0, 0), Nil)) REACH(S(y0), z1, Nil) -> c29(MEMBER(E(S(y0), z1), Nil)) REACH(0, z1, Nil) -> c29(MEMBER(E(0, z1), Nil)) VIA(S(S(y0)), z1, Cons(E(S(S(y1)), z3), z4), z5) -> c21(!EQ'(S(S(y0)), S(S(y1)))) MEMBER(E(S(S(y0)), z1), Cons(E(S(S(y2)), z3), z4)) -> c23(EQEDGE(E(S(S(y0)), z1), E(S(S(y2)), z3))) MEMBER(E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)) -> c23(EQEDGE(E(z0, S(S(y1))), E(z2, S(S(y3))))) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(S(y1), y2), y3)), z4) -> c9(VIA(0, z0, Cons(E(S(y1), y2), y3), z4)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(0, y1), y2)), z4) -> c9(VIA(0, z0, Cons(E(0, y1), y2), z4)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), z4) -> c9(VIA(0, z0, Nil, z4)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Nil) -> c9(VIA(0, z0, Nil, Nil)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Cons(y1, y2)) -> c9(VIA(0, z0, Nil, Cons(y1, y2))) VIA(0, z0, Cons(E(S(z1), z2), Cons(E(S(y3), y4), y5)), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(S(y3), y4), y5)), z4)) VIA(0, z0, Cons(E(S(z1), z2), Cons(E(0, y3), y4)), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(0, y3), y4)), z4)) VIA(0, z0, Cons(E(S(z1), z2), Nil), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), z4)) VIA(0, z0, Cons(E(S(z1), z2), Nil), Nil) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Nil)) VIA(0, z0, Cons(E(S(z1), z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Cons(y3, y4))) VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Cons(E(0, y2), y3)), z4) -> c9(VIA(S(z0), z1, Cons(E(0, y2), y3), z4)) VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4) -> c9(VIA(S(S(y0)), z1, Cons(E(S(S(y2)), y3), y4), z4)) VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), z4) -> c9(VIA(S(z0), z1, Nil, z4)) VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), z4) -> c9(VIA(S(S(y0)), z1, Nil, z4)) VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), z4) -> c9(VIA(S(0), z1, Nil, z4)) VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Nil) -> c9(VIA(S(z0), z1, Nil, Nil)) VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(S(y1)), y2), y3)), z4) -> c9(VIA(S(0), z1, Cons(E(S(S(y1)), y2), y3), z4)) VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4) -> c9(VIA(S(S(y0)), z1, Cons(E(S(0), y2), y3), z4)) VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(0), y1), y2)), z4) -> c9(VIA(S(0), z1, Cons(E(S(0), y1), y2), z4)) VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Cons(y2, y3)) -> c9(VIA(S(z0), z1, Nil, Cons(y2, y3))) VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y2, y3)) -> c9(VIA(S(S(y0)), z1, Nil, Cons(y2, y3))) VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), Cons(y1, y2)) -> c9(VIA(S(0), z1, Nil, Cons(y1, y2))) VIA(S(z0), z1, Cons(E(0, z2), Cons(E(0, y3), y4)), z4) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Cons(E(0, y3), y4)), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y3)), y4), y5)), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y3)), y4), y5)), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), z4)) VIA(S(0), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), Nil) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Nil)) VIA(S(0), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y3), y4)), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y3), y4)), z4)) VIA(S(0), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Cons(y3, y4))) VIA(S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y3, y4))) VIA(S(0), z1, Cons(E(0, z2), Nil), Cons(y2, y3)) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), Cons(y2, y3))) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(S(S(y2)), y3), y4)), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(S(S(y2)), y3), y4), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Nil), z5) -> c9(VIA(S(S(z0)), z1, Nil, z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Nil), Nil) -> c9(VIA(S(S(z0)), z1, Nil, Nil)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(S(0), y2), y3)), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(S(0), y2), y3), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Nil), Cons(y2, y3)) -> c9(VIA(S(S(z0)), z1, Nil, Cons(y2, y3))) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Cons(E(0, y3), y4))), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(0, y3), y4)), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Cons(E(S(S(y3)), y4), y5))), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(S(S(y3)), y4), y5)), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Nil)), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Nil)), Nil) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), Nil)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Cons(E(S(0), y3), y4))), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(S(0), y3), y4)), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Nil)), Cons(y3, y4)) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), Cons(y3, y4))) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Nil), z4) -> c9(VIA(S(0), z0, Nil, z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Nil), Nil) -> c9(VIA(S(0), z0, Nil, Nil)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(S(S(y1)), y2), y3)), z4) -> c9(VIA(S(0), z0, Cons(E(S(S(y1)), y2), y3), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(S(0), y1), y2)), z4) -> c9(VIA(S(0), z0, Cons(E(S(0), y1), y2), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Nil), Cons(y2, y3)) -> c9(VIA(S(0), z0, Nil, Cons(y2, y3))) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y2), Cons(E(0, y3), y4))), z4) -> c9(VIA(S(0), z0, Cons(E(0, y2), Cons(E(0, y3), y4)), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y2), Nil)), z4) -> c9(VIA(S(0), z0, Cons(E(0, y2), Nil), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y2), Nil)), Nil) -> c9(VIA(S(0), z0, Cons(E(0, y2), Nil), Nil)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y1), Cons(E(S(S(y2)), y3), y4))), z4) -> c9(VIA(S(0), z0, Cons(E(0, y1), Cons(E(S(S(y2)), y3), y4)), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y1), Cons(E(S(0), y2), y3))), z4) -> c9(VIA(S(0), z0, Cons(E(0, y1), Cons(E(S(0), y2), y3)), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y2), Nil)), Cons(y3, y4)) -> c9(VIA(S(0), z0, Cons(E(0, y2), Nil), Cons(y3, y4))) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(S(S(y2)), y3), y4)), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(S(S(y2)), y3), y4), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Nil), z4) -> c9(VIA(S(S(z0)), z1, Nil, z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Nil), Nil) -> c9(VIA(S(S(z0)), z1, Nil, Nil)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(S(0), y2), y3)), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(S(0), y2), y3), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Nil), Cons(y2, y3)) -> c9(VIA(S(S(z0)), z1, Nil, Cons(y2, y3))) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Cons(E(0, y3), y4))), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(0, y3), y4)), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Cons(E(S(S(y3)), y4), y5))), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(S(S(y3)), y4), y5)), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Nil)), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Nil)), Nil) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), Nil)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Cons(E(S(0), y3), y4))), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(S(0), y3), y4)), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Nil)), Cons(y3, y4)) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), Cons(y3, y4))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y2, S(y3)), y4))) -> c12(MEMBER(E(z0, S(z1)), Cons(E(y2, S(y3)), y4))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y2, 0), y3))) -> c12(MEMBER(E(z0, S(z1)), Cons(E(y2, 0), y3))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y2), y3), y4))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(S(y2), y3), y4))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y1), y2), y3))) -> c12(MEMBER(E(0, S(z1)), Cons(E(S(y1), y2), y3))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y2), y3))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(0, y2), y3))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y1), y2))) -> c12(MEMBER(E(0, S(z1)), Cons(E(0, y1), y2))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, S(z3)), Nil)) -> c12(MEMBER(E(z0, S(z1)), Nil)) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, S(z3)), Nil)) -> c12(MEMBER(E(S(y0), S(z1)), Nil)) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, S(z3)), Nil)) -> c12(MEMBER(E(0, S(z1)), Nil)) MEMBER[ITE](False, E(S(S(y0)), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(S(y2)), y3), y4))) -> c12(MEMBER(E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), y3), y4))) MEMBER[ITE](False, E(z0, S(S(y1))), Cons(E(z2, S(z3)), Cons(E(y2, S(S(y3))), y4))) -> c12(MEMBER(E(z0, S(S(y1))), Cons(E(y2, S(S(y3))), y4))) MEMBER(E(S(y1), S(z1)), Cons(E(S(y3), S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), S(y3)), !EQ(z1, z3)), S(y3), S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(S(y3), S(z3)), z4)), EQEDGE(E(S(y1), S(z1)), E(S(y3), S(z3)))) MEMBER(E(0, S(z1)), Cons(E(S(y2), S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, S(y2)), !EQ(z1, z3)), S(y2), S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(S(y2), S(z3)), z4)), EQEDGE(E(0, S(z1)), E(S(y2), S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(0, S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), 0), !EQ(z1, z3)), 0, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(0, S(z3)), z4)), EQEDGE(E(S(y1), S(z1)), E(0, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(0, S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, 0), !EQ(z1, z3)), 0, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(0, S(z3)), z4)), EQEDGE(E(0, S(z1)), E(0, S(z3)))) MEMBER(E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y0)), S(S(y2))), !EQ(z1, z3)), S(S(y2)), S(z3), S(S(y0)), S(z1)), E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), S(z3)), z4)), EQEDGE(E(S(S(y0)), S(z1)), E(S(S(y2)), S(z3)))) MEMBER(E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(S(y1), S(y3))), z2, S(S(y3)), z0, S(S(y1))), E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)), EQEDGE(E(z0, S(S(y1))), E(z2, S(S(y3))))) MEMBER(E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, S(y6)), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, S(z3), z0, S(z1)), E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, S(y6)), y7))), EQEDGE(E(z0, S(z1)), E(z2, S(z3)))) MEMBER(E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, 0), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, S(z3), z0, S(z1)), E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, 0), y6))), EQEDGE(E(z0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y5), y6), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), !EQ(z1, z3)), z2, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y5), y6), y7))), EQEDGE(E(S(y1), S(z1)), E(z2, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y4), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), !EQ(z1, z3)), z2, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y4), y5), y6))), EQEDGE(E(0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), !EQ(z1, z3)), z2, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y5), y6))), EQEDGE(E(S(y1), S(z1)), E(z2, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), !EQ(z1, z3)), z2, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y4), y5))), EQEDGE(E(0, S(z1)), E(z2, S(z3)))) MEMBER(E(z0, S(z1)), Cons(E(z2, S(z3)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, S(z3), z0, S(z1)), E(z0, S(z1)), Cons(E(z2, S(z3)), Nil)), EQEDGE(E(z0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, S(z3)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), !EQ(z1, z3)), z2, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, S(z3)), Nil)), EQEDGE(E(S(y1), S(z1)), E(z2, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(z2, S(z3)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), !EQ(z1, z3)), z2, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(z2, S(z3)), Nil)), EQEDGE(E(0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(S(y1)), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(S(y5)), y6), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z2), !EQ(z1, z3)), z2, S(z3), S(S(y1)), S(z1)), E(S(S(y1)), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(S(y5)), y6), y7))), EQEDGE(E(S(S(y1)), S(z1)), E(z2, S(z3)))) MEMBER(E(z0, S(S(y2))), Cons(E(z2, S(z3)), Cons(E(y5, S(S(y6))), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(S(y2), z3)), z2, S(z3), z0, S(S(y2))), E(z0, S(S(y2))), Cons(E(z2, S(z3)), Cons(E(y5, S(S(y6))), y7))), EQEDGE(E(z0, S(S(y2))), E(z2, S(z3)))) MEMBER[ITE](False, E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y1, S(y2)), y3))) -> c12(MEMBER(E(z0, 0), Cons(E(y1, S(y2)), y3))) MEMBER[ITE](False, E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y1, 0), y2))) -> c12(MEMBER(E(z0, 0), Cons(E(y1, 0), y2))) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, S(z2)), Cons(E(S(y2), y3), y4))) -> c12(MEMBER(E(S(y0), 0), Cons(E(S(y2), y3), y4))) MEMBER[ITE](False, E(0, 0), Cons(E(z1, S(z2)), Cons(E(S(y1), y2), y3))) -> c12(MEMBER(E(0, 0), Cons(E(S(y1), y2), y3))) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, S(z2)), Cons(E(0, y2), y3))) -> c12(MEMBER(E(S(y0), 0), Cons(E(0, y2), y3))) MEMBER[ITE](False, E(0, 0), Cons(E(z1, S(z2)), Cons(E(0, y1), y2))) -> c12(MEMBER(E(0, 0), Cons(E(0, y1), y2))) MEMBER[ITE](False, E(z0, 0), Cons(E(z1, S(z2)), Nil)) -> c12(MEMBER(E(z0, 0), Nil)) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, S(z2)), Nil)) -> c12(MEMBER(E(S(y0), 0), Nil)) MEMBER[ITE](False, E(0, 0), Cons(E(z1, S(z2)), Nil)) -> c12(MEMBER(E(0, 0), Nil)) MEMBER[ITE](False, E(S(S(y0)), 0), Cons(E(z1, S(z2)), Cons(E(S(S(y2)), y3), y4))) -> c12(MEMBER(E(S(S(y0)), 0), Cons(E(S(S(y2)), y3), y4))) MEMBER(E(S(y1), 0), Cons(E(S(y3), S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), S(y3)), False), S(y3), S(z2), S(y1), 0), E(S(y1), 0), Cons(E(S(y3), S(z2)), z3)), EQEDGE(E(S(y1), 0), E(S(y3), S(z2)))) MEMBER(E(S(S(y0)), 0), Cons(E(S(S(y2)), S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y0)), S(S(y2))), False), S(S(y2)), S(z2), S(S(y0)), 0), E(S(S(y0)), 0), Cons(E(S(S(y2)), S(z2)), z3)), EQEDGE(E(S(S(y0)), 0), E(S(S(y2)), S(z2)))) MEMBER(E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, S(y5)), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), False), z1, S(z2), z0, 0), E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, S(y5)), y6))), EQEDGE(E(z0, 0), E(z1, S(z2)))) MEMBER(E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, 0), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), False), z1, S(z2), z0, 0), E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, 0), y5))), EQEDGE(E(z0, 0), E(z1, S(z2)))) MEMBER(E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(S(y4), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), False), z1, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(S(y4), y5), y6))), EQEDGE(E(S(y1), 0), E(z1, S(z2)))) MEMBER(E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(0, y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), False), z1, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(0, y4), y5))), EQEDGE(E(S(y1), 0), E(z1, S(z2)))) MEMBER(E(z0, 0), Cons(E(z1, S(z2)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), False), z1, S(z2), z0, 0), E(z0, 0), Cons(E(z1, S(z2)), Nil)), EQEDGE(E(z0, 0), E(z1, S(z2)))) MEMBER(E(S(y1), 0), Cons(E(z1, S(z2)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), False), z1, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(z1, S(z2)), Nil)), EQEDGE(E(S(y1), 0), E(z1, S(z2)))) MEMBER(E(S(S(y1)), 0), Cons(E(z1, S(z2)), Cons(E(S(S(y4)), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z1), False), z1, S(z2), S(S(y1)), 0), E(S(S(y1)), 0), Cons(E(z1, S(z2)), Cons(E(S(S(y4)), y5), y6))), EQEDGE(E(S(S(y1)), 0), E(z1, S(z2)))) MEMBER(E(0, 0), Cons(E(S(y2), S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, S(y2)), False), S(y2), S(z2), 0, 0), E(0, 0), Cons(E(S(y2), S(z2)), z3))) MEMBER(E(S(y1), 0), Cons(E(0, S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), 0), False), 0, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(0, S(z2)), z3))) MEMBER(E(0, 0), Cons(E(0, S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, 0), False), 0, S(z2), 0, 0), E(0, 0), Cons(E(0, S(z2)), z3))) MEMBER(E(0, 0), Cons(E(z1, S(z2)), Cons(E(S(y3), y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), False), z1, S(z2), 0, 0), E(0, 0), Cons(E(z1, S(z2)), Cons(E(S(y3), y4), y5)))) MEMBER(E(0, 0), Cons(E(z1, S(z2)), Cons(E(0, y3), y4))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), False), z1, S(z2), 0, 0), E(0, 0), Cons(E(z1, S(z2)), Cons(E(0, y3), y4)))) MEMBER(E(0, 0), Cons(E(z1, S(z2)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), False), z1, S(z2), 0, 0), E(0, 0), Cons(E(z1, S(z2)), Nil))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y2, 0), y3))) -> c12(MEMBER(E(z0, S(z1)), Cons(E(y2, 0), y3))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, 0), Cons(E(S(y2), y3), y4))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(S(y2), y3), y4))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, 0), Cons(E(S(y1), y2), y3))) -> c12(MEMBER(E(0, S(z1)), Cons(E(S(y1), y2), y3))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, 0), Cons(E(0, y2), y3))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(0, y2), y3))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, 0), Cons(E(0, y1), y2))) -> c12(MEMBER(E(0, S(z1)), Cons(E(0, y1), y2))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, 0), Nil)) -> c12(MEMBER(E(z0, S(z1)), Nil)) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, 0), Nil)) -> c12(MEMBER(E(S(y0), S(z1)), Nil)) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, 0), Nil)) -> c12(MEMBER(E(0, S(z1)), Nil)) MEMBER[ITE](False, E(S(S(y0)), S(z1)), Cons(E(z2, 0), Cons(E(S(S(y2)), y3), y4))) -> c12(MEMBER(E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), y3), y4))) MEMBER[ITE](False, E(z0, S(S(y1))), Cons(E(z2, 0), Cons(E(y2, S(S(y3))), y4))) -> c12(MEMBER(E(z0, S(S(y1))), Cons(E(y2, S(S(y3))), y4))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, 0), Cons(E(S(y2), S(y3)), y4))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(S(y2), S(y3)), y4))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, 0), Cons(E(S(y1), S(y2)), y3))) -> c12(MEMBER(E(0, S(z1)), Cons(E(S(y1), S(y2)), y3))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, 0), Cons(E(0, S(y2)), y3))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(0, S(y2)), y3))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, 0), Cons(E(0, S(y1)), y2))) -> c12(MEMBER(E(0, S(z1)), Cons(E(0, S(y1)), y2))) MEMBER[ITE](False, E(S(S(y0)), S(z1)), Cons(E(z2, 0), Cons(E(S(S(y2)), S(y3)), y4))) -> c12(MEMBER(E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), S(y3)), y4))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y2, S(y3)), Cons(E(y4, S(y5)), y6)))) -> c12(MEMBER(E(z0, S(z1)), Cons(E(y2, S(y3)), Cons(E(y4, S(y5)), y6)))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y2, S(y3)), Cons(E(y4, 0), y5)))) -> c12(MEMBER(E(z0, S(z1)), Cons(E(y2, S(y3)), Cons(E(y4, 0), y5)))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, 0), Cons(E(y2, S(y3)), Cons(E(S(y4), y5), y6)))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(y2, S(y3)), Cons(E(S(y4), y5), y6)))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, 0), Cons(E(y1, S(y2)), Cons(E(S(y3), y4), y5)))) -> c12(MEMBER(E(0, S(z1)), Cons(E(y1, S(y2)), Cons(E(S(y3), y4), y5)))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, 0), Cons(E(y2, S(y3)), Cons(E(0, y4), y5)))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(y2, S(y3)), Cons(E(0, y4), y5)))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, 0), Cons(E(y1, S(y2)), Cons(E(0, y3), y4)))) -> c12(MEMBER(E(0, S(z1)), Cons(E(y1, S(y2)), Cons(E(0, y3), y4)))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y2, S(y3)), Nil))) -> c12(MEMBER(E(z0, S(z1)), Cons(E(y2, S(y3)), Nil))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, 0), Cons(E(y2, S(y3)), Nil))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(y2, S(y3)), Nil))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, 0), Cons(E(y1, S(y2)), Nil))) -> c12(MEMBER(E(0, S(z1)), Cons(E(y1, S(y2)), Nil))) MEMBER[ITE](False, E(S(S(y0)), S(z1)), Cons(E(z2, 0), Cons(E(y2, S(y3)), Cons(E(S(S(y4)), y5), y6)))) -> c12(MEMBER(E(S(S(y0)), S(z1)), Cons(E(y2, S(y3)), Cons(E(S(S(y4)), y5), y6)))) MEMBER[ITE](False, E(z0, S(S(y1))), Cons(E(z2, 0), Cons(E(y2, S(y3)), Cons(E(y4, S(S(y5))), y6)))) -> c12(MEMBER(E(z0, S(S(y1))), Cons(E(y2, S(y3)), Cons(E(y4, S(S(y5))), y6)))) MEMBER(E(S(y1), S(z1)), Cons(E(S(y3), 0), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), S(y3)), False), S(y3), 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(S(y3), 0), z3)), EQEDGE(E(S(y1), S(z1)), E(S(y3), 0))) MEMBER(E(0, S(z1)), Cons(E(S(y2), 0), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, S(y2)), False), S(y2), 0, 0, S(z1)), E(0, S(z1)), Cons(E(S(y2), 0), z3)), EQEDGE(E(0, S(z1)), E(S(y2), 0))) MEMBER(E(S(y1), S(z1)), Cons(E(0, 0), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), 0), False), 0, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(0, 0), z3)), EQEDGE(E(S(y1), S(z1)), E(0, 0))) MEMBER(E(0, S(z1)), Cons(E(0, 0), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, 0), False), 0, 0, 0, S(z1)), E(0, S(z1)), Cons(E(0, 0), z3)), EQEDGE(E(0, S(z1)), E(0, 0))) MEMBER(E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), 0), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y0)), S(S(y2))), False), S(S(y2)), 0, S(S(y0)), S(z1)), E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), 0), z3)), EQEDGE(E(S(S(y0)), S(z1)), E(S(S(y2)), 0))) MEMBER(E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, 0), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(z1)), E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, 0), y5))), EQEDGE(E(z0, S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(S(y4), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(S(y4), y5), y6))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(S(y3), y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(S(y3), y4), y5))), EQEDGE(E(0, S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(0, y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(0, y4), y5))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(0, y3), y4))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(0, y3), y4))), EQEDGE(E(0, S(z1)), E(z2, 0))) MEMBER(E(z0, S(z1)), Cons(E(z2, 0), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(z1)), E(z0, S(z1)), Cons(E(z2, 0), Nil)), EQEDGE(E(z0, S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Nil)), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Nil)), EQEDGE(E(0, S(z1)), E(z2, 0))) MEMBER(E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(S(S(y4)), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z2), False), z2, 0, S(S(y1)), S(z1)), E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(S(S(y4)), y5), y6))), EQEDGE(E(S(S(y1)), S(z1)), E(z2, 0))) MEMBER(E(z0, S(S(y2))), Cons(E(z2, 0), Cons(E(y4, S(S(y5))), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(S(y2))), E(z0, S(S(y2))), Cons(E(z2, 0), Cons(E(y4, S(S(y5))), y6))), EQEDGE(E(z0, S(S(y2))), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(S(y4), S(y5)), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(S(y4), S(y5)), y6))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(S(y3), S(y4)), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(S(y3), S(y4)), y5))), EQEDGE(E(0, S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(0, S(y4)), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(0, S(y4)), y5))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(0, S(y3)), y4))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(0, S(y3)), y4))), EQEDGE(E(0, S(z1)), E(z2, 0))) MEMBER(E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(S(S(y4)), S(y5)), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z2), False), z2, 0, S(S(y1)), S(z1)), E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(S(S(y4)), S(y5)), y6))), EQEDGE(E(S(S(y1)), S(z1)), E(z2, 0))) MEMBER(E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, S(y7)), y8)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(z1)), E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, S(y7)), y8)))), EQEDGE(E(z0, S(z1)), E(z2, 0))) MEMBER(E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, 0), y7)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(z1)), E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, 0), y7)))), EQEDGE(E(z0, S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(S(y6), y7), y8)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(S(y6), y7), y8)))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Cons(E(S(y5), y6), y7)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Cons(E(S(y5), y6), y7)))), EQEDGE(E(0, S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(0, y6), y7)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(0, y6), y7)))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Cons(E(0, y5), y6)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Cons(E(0, y5), y6)))), EQEDGE(E(0, S(z1)), E(z2, 0))) MEMBER(E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Nil))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(z1)), E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Nil))), EQEDGE(E(z0, S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Nil))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Nil))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Nil))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Nil))), EQEDGE(E(0, S(z1)), E(z2, 0))) MEMBER(E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(S(S(y6)), y7), y8)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z2), False), z2, 0, S(S(y1)), S(z1)), E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(S(S(y6)), y7), y8)))), EQEDGE(E(S(S(y1)), S(z1)), E(z2, 0))) MEMBER(E(z0, S(S(y2))), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, S(S(y7))), y8)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(S(y2))), E(z0, S(S(y2))), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, S(S(y7))), y8)))), EQEDGE(E(z0, S(S(y2))), E(z2, 0))) S tuples: VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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))) REACH(x0, x1, Nil) -> c1(REACH[ITE](False, x0, x1, Nil)) REACH(x0, x1, Nil) -> c1(MEMBER(E(x0, x1), Nil)) VIA(0, x0, Nil, x4) -> c22 VIA(S(x0), x1, Nil, x4) -> c22 VIA(S(S(x0)), x1, Nil, x5) -> c22 VIA(S(0), x0, Nil, x4) -> c22 VIA(x0, x1, Nil, Nil) -> c22 VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5)) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5)) MEMBER(E(x0, x1), Nil) -> c24 MEMBER(E(x0, S(x1)), Nil) -> c24 MEMBER(E(x0, 0), Nil) -> c24 MEMBER(E(S(x0), x1), Nil) -> c24 MEMBER(E(0, x0), Nil) -> c24 VIA(0, x0, Nil, Cons(z2, z3)) -> c22 VIA(S(x0), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(S(x0)), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(0), x0, Nil, Cons(z2, z3)) -> c22 EQEDGE(E(S(S(y0)), z1), E(S(S(y1)), z3)) -> c25(!EQ'(S(S(y0)), S(S(y1)))) EQEDGE(E(z0, S(S(y0))), E(z2, S(S(y1)))) -> c26(!EQ'(S(S(y0)), S(S(y1)))) REACH(z0, S(y1), Cons(E(y2, S(y3)), y4)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, S(y3)), y4))) REACH(z0, 0, Cons(E(y1, S(y2)), y3)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, S(y2)), y3))) REACH(z0, S(y1), Cons(E(y2, 0), y3)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, 0), y3))) REACH(z0, 0, Cons(E(y1, 0), y2)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, 0), y2))) REACH(S(y0), z1, Cons(E(S(y2), y3), y4)) -> c29(MEMBER(E(S(y0), z1), Cons(E(S(y2), y3), y4))) REACH(0, z1, Cons(E(S(y1), y2), y3)) -> c29(MEMBER(E(0, z1), Cons(E(S(y1), y2), y3))) REACH(S(y0), z1, Cons(E(0, y2), y3)) -> c29(MEMBER(E(S(y0), z1), Cons(E(0, y2), y3))) REACH(0, z1, Cons(E(0, y1), y2)) -> c29(MEMBER(E(0, z1), Cons(E(0, y1), y2))) REACH(z0, z1, Cons(E(y2, y3), y4)) -> c29(MEMBER(E(z0, z1), Cons(E(y2, y3), y4))) REACH(z0, z1, Nil) -> c29(MEMBER(E(z0, z1), Nil)) REACH(z0, S(y1), Nil) -> c29(MEMBER(E(z0, S(y1)), Nil)) REACH(z0, 0, Nil) -> c29(MEMBER(E(z0, 0), Nil)) REACH(S(y0), z1, Nil) -> c29(MEMBER(E(S(y0), z1), Nil)) REACH(0, z1, Nil) -> c29(MEMBER(E(0, z1), Nil)) VIA(S(S(y0)), z1, Cons(E(S(S(y1)), z3), z4), z5) -> c21(!EQ'(S(S(y0)), S(S(y1)))) MEMBER(E(S(S(y0)), z1), Cons(E(S(S(y2)), z3), z4)) -> c23(EQEDGE(E(S(S(y0)), z1), E(S(S(y2)), z3))) MEMBER(E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)) -> c23(EQEDGE(E(z0, S(S(y1))), E(z2, S(S(y3))))) VIA(0, z0, Cons(E(S(z1), z2), Cons(E(S(y3), y4), y5)), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(S(y3), y4), y5)), z4)) VIA(0, z0, Cons(E(S(z1), z2), Cons(E(0, y3), y4)), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(0, y3), y4)), z4)) VIA(0, z0, Cons(E(S(z1), z2), Nil), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), z4)) VIA(0, z0, Cons(E(S(z1), z2), Nil), Nil) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Nil)) VIA(0, z0, Cons(E(S(z1), z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Cons(y3, y4))) VIA(S(z0), z1, Cons(E(0, z2), Cons(E(0, y3), y4)), z4) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Cons(E(0, y3), y4)), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y3)), y4), y5)), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y3)), y4), y5)), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), z4)) VIA(S(0), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), Nil) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Nil)) VIA(S(0), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y3), y4)), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y3), y4)), z4)) VIA(S(0), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Cons(y3, y4))) VIA(S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y3, y4))) VIA(S(0), z1, Cons(E(0, z2), Nil), Cons(y2, y3)) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), Cons(y2, y3))) MEMBER(E(S(y1), S(z1)), Cons(E(S(y3), S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), S(y3)), !EQ(z1, z3)), S(y3), S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(S(y3), S(z3)), z4)), EQEDGE(E(S(y1), S(z1)), E(S(y3), S(z3)))) MEMBER(E(0, S(z1)), Cons(E(S(y2), S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, S(y2)), !EQ(z1, z3)), S(y2), S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(S(y2), S(z3)), z4)), EQEDGE(E(0, S(z1)), E(S(y2), S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(0, S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), 0), !EQ(z1, z3)), 0, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(0, S(z3)), z4)), EQEDGE(E(S(y1), S(z1)), E(0, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(0, S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, 0), !EQ(z1, z3)), 0, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(0, S(z3)), z4)), EQEDGE(E(0, S(z1)), E(0, S(z3)))) MEMBER(E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y0)), S(S(y2))), !EQ(z1, z3)), S(S(y2)), S(z3), S(S(y0)), S(z1)), E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), S(z3)), z4)), EQEDGE(E(S(S(y0)), S(z1)), E(S(S(y2)), S(z3)))) MEMBER(E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(S(y1), S(y3))), z2, S(S(y3)), z0, S(S(y1))), E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)), EQEDGE(E(z0, S(S(y1))), E(z2, S(S(y3))))) MEMBER(E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, S(y6)), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, S(z3), z0, S(z1)), E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, S(y6)), y7))), EQEDGE(E(z0, S(z1)), E(z2, S(z3)))) MEMBER(E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, 0), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, S(z3), z0, S(z1)), E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, 0), y6))), EQEDGE(E(z0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y5), y6), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), !EQ(z1, z3)), z2, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y5), y6), y7))), EQEDGE(E(S(y1), S(z1)), E(z2, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y4), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), !EQ(z1, z3)), z2, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y4), y5), y6))), EQEDGE(E(0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), !EQ(z1, z3)), z2, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y5), y6))), EQEDGE(E(S(y1), S(z1)), E(z2, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), !EQ(z1, z3)), z2, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y4), y5))), EQEDGE(E(0, S(z1)), E(z2, S(z3)))) MEMBER(E(z0, S(z1)), Cons(E(z2, S(z3)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, S(z3), z0, S(z1)), E(z0, S(z1)), Cons(E(z2, S(z3)), Nil)), EQEDGE(E(z0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, S(z3)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), !EQ(z1, z3)), z2, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, S(z3)), Nil)), EQEDGE(E(S(y1), S(z1)), E(z2, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(z2, S(z3)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), !EQ(z1, z3)), z2, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(z2, S(z3)), Nil)), EQEDGE(E(0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(S(y1)), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(S(y5)), y6), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z2), !EQ(z1, z3)), z2, S(z3), S(S(y1)), S(z1)), E(S(S(y1)), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(S(y5)), y6), y7))), EQEDGE(E(S(S(y1)), S(z1)), E(z2, S(z3)))) MEMBER(E(z0, S(S(y2))), Cons(E(z2, S(z3)), Cons(E(y5, S(S(y6))), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(S(y2), z3)), z2, S(z3), z0, S(S(y2))), E(z0, S(S(y2))), Cons(E(z2, S(z3)), Cons(E(y5, S(S(y6))), y7))), EQEDGE(E(z0, S(S(y2))), E(z2, S(z3)))) MEMBER(E(S(y1), 0), Cons(E(S(y3), S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), S(y3)), False), S(y3), S(z2), S(y1), 0), E(S(y1), 0), Cons(E(S(y3), S(z2)), z3)), EQEDGE(E(S(y1), 0), E(S(y3), S(z2)))) MEMBER(E(S(S(y0)), 0), Cons(E(S(S(y2)), S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y0)), S(S(y2))), False), S(S(y2)), S(z2), S(S(y0)), 0), E(S(S(y0)), 0), Cons(E(S(S(y2)), S(z2)), z3)), EQEDGE(E(S(S(y0)), 0), E(S(S(y2)), S(z2)))) MEMBER(E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, S(y5)), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), False), z1, S(z2), z0, 0), E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, S(y5)), y6))), EQEDGE(E(z0, 0), E(z1, S(z2)))) MEMBER(E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, 0), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), False), z1, S(z2), z0, 0), E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, 0), y5))), EQEDGE(E(z0, 0), E(z1, S(z2)))) MEMBER(E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(S(y4), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), False), z1, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(S(y4), y5), y6))), EQEDGE(E(S(y1), 0), E(z1, S(z2)))) MEMBER(E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(0, y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), False), z1, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(0, y4), y5))), EQEDGE(E(S(y1), 0), E(z1, S(z2)))) MEMBER(E(z0, 0), Cons(E(z1, S(z2)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), False), z1, S(z2), z0, 0), E(z0, 0), Cons(E(z1, S(z2)), Nil)), EQEDGE(E(z0, 0), E(z1, S(z2)))) MEMBER(E(S(y1), 0), Cons(E(z1, S(z2)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), False), z1, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(z1, S(z2)), Nil)), EQEDGE(E(S(y1), 0), E(z1, S(z2)))) MEMBER(E(S(S(y1)), 0), Cons(E(z1, S(z2)), Cons(E(S(S(y4)), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z1), False), z1, S(z2), S(S(y1)), 0), E(S(S(y1)), 0), Cons(E(z1, S(z2)), Cons(E(S(S(y4)), y5), y6))), EQEDGE(E(S(S(y1)), 0), E(z1, S(z2)))) MEMBER(E(0, 0), Cons(E(S(y2), S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, S(y2)), False), S(y2), S(z2), 0, 0), E(0, 0), Cons(E(S(y2), S(z2)), z3))) MEMBER(E(S(y1), 0), Cons(E(0, S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), 0), False), 0, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(0, S(z2)), z3))) MEMBER(E(0, 0), Cons(E(0, S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, 0), False), 0, S(z2), 0, 0), E(0, 0), Cons(E(0, S(z2)), z3))) MEMBER(E(0, 0), Cons(E(z1, S(z2)), Cons(E(S(y3), y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), False), z1, S(z2), 0, 0), E(0, 0), Cons(E(z1, S(z2)), Cons(E(S(y3), y4), y5)))) MEMBER(E(0, 0), Cons(E(z1, S(z2)), Cons(E(0, y3), y4))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), False), z1, S(z2), 0, 0), E(0, 0), Cons(E(z1, S(z2)), Cons(E(0, y3), y4)))) MEMBER(E(0, 0), Cons(E(z1, S(z2)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), False), z1, S(z2), 0, 0), E(0, 0), Cons(E(z1, S(z2)), Nil))) MEMBER(E(S(y1), S(z1)), Cons(E(S(y3), 0), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), S(y3)), False), S(y3), 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(S(y3), 0), z3)), EQEDGE(E(S(y1), S(z1)), E(S(y3), 0))) MEMBER(E(0, S(z1)), Cons(E(S(y2), 0), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, S(y2)), False), S(y2), 0, 0, S(z1)), E(0, S(z1)), Cons(E(S(y2), 0), z3)), EQEDGE(E(0, S(z1)), E(S(y2), 0))) MEMBER(E(S(y1), S(z1)), Cons(E(0, 0), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), 0), False), 0, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(0, 0), z3)), EQEDGE(E(S(y1), S(z1)), E(0, 0))) MEMBER(E(0, S(z1)), Cons(E(0, 0), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, 0), False), 0, 0, 0, S(z1)), E(0, S(z1)), Cons(E(0, 0), z3)), EQEDGE(E(0, S(z1)), E(0, 0))) MEMBER(E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), 0), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y0)), S(S(y2))), False), S(S(y2)), 0, S(S(y0)), S(z1)), E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), 0), z3)), EQEDGE(E(S(S(y0)), S(z1)), E(S(S(y2)), 0))) MEMBER(E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, 0), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(z1)), E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, 0), y5))), EQEDGE(E(z0, S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(S(y4), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(S(y4), y5), y6))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(S(y3), y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(S(y3), y4), y5))), EQEDGE(E(0, S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(0, y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(0, y4), y5))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(0, y3), y4))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(0, y3), y4))), EQEDGE(E(0, S(z1)), E(z2, 0))) MEMBER(E(z0, S(z1)), Cons(E(z2, 0), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(z1)), E(z0, S(z1)), Cons(E(z2, 0), Nil)), EQEDGE(E(z0, S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Nil)), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Nil)), EQEDGE(E(0, S(z1)), E(z2, 0))) MEMBER(E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(S(S(y4)), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z2), False), z2, 0, S(S(y1)), S(z1)), E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(S(S(y4)), y5), y6))), EQEDGE(E(S(S(y1)), S(z1)), E(z2, 0))) MEMBER(E(z0, S(S(y2))), Cons(E(z2, 0), Cons(E(y4, S(S(y5))), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(S(y2))), E(z0, S(S(y2))), Cons(E(z2, 0), Cons(E(y4, S(S(y5))), y6))), EQEDGE(E(z0, S(S(y2))), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(S(y4), S(y5)), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(S(y4), S(y5)), y6))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(S(y3), S(y4)), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(S(y3), S(y4)), y5))), EQEDGE(E(0, S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(0, S(y4)), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(0, S(y4)), y5))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(0, S(y3)), y4))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(0, S(y3)), y4))), EQEDGE(E(0, S(z1)), E(z2, 0))) MEMBER(E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(S(S(y4)), S(y5)), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z2), False), z2, 0, S(S(y1)), S(z1)), E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(S(S(y4)), S(y5)), y6))), EQEDGE(E(S(S(y1)), S(z1)), E(z2, 0))) MEMBER(E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, S(y7)), y8)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(z1)), E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, S(y7)), y8)))), EQEDGE(E(z0, S(z1)), E(z2, 0))) MEMBER(E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, 0), y7)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(z1)), E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, 0), y7)))), EQEDGE(E(z0, S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(S(y6), y7), y8)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(S(y6), y7), y8)))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Cons(E(S(y5), y6), y7)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Cons(E(S(y5), y6), y7)))), EQEDGE(E(0, S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(0, y6), y7)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(0, y6), y7)))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Cons(E(0, y5), y6)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Cons(E(0, y5), y6)))), EQEDGE(E(0, S(z1)), E(z2, 0))) MEMBER(E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Nil))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(z1)), E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Nil))), EQEDGE(E(z0, S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Nil))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Nil))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Nil))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Nil))), EQEDGE(E(0, S(z1)), E(z2, 0))) MEMBER(E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(S(S(y6)), y7), y8)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z2), False), z2, 0, S(S(y1)), S(z1)), E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(S(S(y6)), y7), y8)))), EQEDGE(E(S(S(y1)), S(z1)), E(z2, 0))) MEMBER(E(z0, S(S(y2))), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, S(S(y7))), y8)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(S(y2))), E(z0, S(S(y2))), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, S(S(y7))), y8)))), EQEDGE(E(z0, S(S(y2))), E(z2, 0))) K tuples:none Defined Rule Symbols: reach_3, reach[Ite]_4, member_2, member[Ite]_3, eqEdge_2, eqEdge[Ite]_5, and_2, !EQ_2, via_4, via[Ite]_5, via[Let]_5 Defined Pair Symbols: VIA_4, MEMBER_2, REACH_3, MEMBER[ITE]_3, REACH[ITE]_4, !EQ'_2, VIA[ITE]_5, VIA[LET]_5, EQEDGE_2 Compound Symbols: c21_1, c21_2, c23_2, c29_2, c12_1, c14_1, c1_1, c22, c_1, c24, c8_2, c8_1, c10_1, c25_1, c26_1, c29_1, c23_1, c9_1 ---------------------------------------- (123) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 11 trailing tuple parts ---------------------------------------- (124) Obligation: Complexity Dependency Tuples Problem Rules: reach(z0, z1, z2) -> reach[Ite](member(E(z0, z1), z2), z0, z1, z2) reach[Ite](False, z0, z1, z2) -> via(z0, z1, z2, z2) reach[Ite](True, z0, z1, z2) -> Cons(E(z0, z1), Nil) member(z0, Cons(z1, z2)) -> member[Ite](eqEdge(z0, z1), z0, Cons(z1, z2)) member(z0, Nil) -> False member[Ite](False, z0, Cons(z1, z2)) -> member(z0, z2) member[Ite](True, z0, z1) -> True eqEdge(E(z0, z1), E(z2, z3)) -> eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1) eqEdge[Ite](False, z0, z1, z2, z3) -> False eqEdge[Ite](True, z0, z1, z2, z3) -> True and(False, False) -> False and(True, False) -> False and(False, True) -> False and(True, True) -> True !EQ(S(z0), S(z1)) -> !EQ(z0, z1) !EQ(0, S(z0)) -> False !EQ(S(z0), 0) -> False !EQ(0, 0) -> True via(z0, z1, Cons(E(z2, z3), z4), z5) -> via[Ite](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5) via(z0, z1, Nil, z2) -> Nil via[Ite](True, z0, z1, Cons(E(z2, z3), z4), z5) -> via[Let](z0, z1, Cons(E(z2, z3), z4), z5, reach(z3, z1, z5)) via[Ite](False, z0, z1, Cons(z2, z3), z4) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Nil) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Cons(z5, z6)) -> Cons(z2, Cons(z5, z6)) Tuples: VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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))) MEMBER[ITE](False, E(x0, 0), Cons(E(x1, 0), x2)) -> c12(MEMBER(E(x0, 0), x2)) MEMBER[ITE](False, E(S(x0), x1), Cons(E(S(x2), x3), x4)) -> c12(MEMBER(E(S(x0), x1), x4)) MEMBER[ITE](False, E(0, x0), Cons(E(S(x1), x2), x3)) -> c12(MEMBER(E(0, x0), x3)) MEMBER[ITE](False, E(S(x0), x1), Cons(E(0, x2), x3)) -> c12(MEMBER(E(S(x0), x1), x3)) MEMBER[ITE](False, E(0, x0), Cons(E(0, x1), x2)) -> c12(MEMBER(E(0, x0), x2)) REACH[ITE](False, x0, x1, Nil) -> c14(VIA(x0, x1, Nil, Nil)) REACH[ITE](False, x0, x1, Cons(E(x2, x3), x4)) -> c14(VIA(x0, x1, Cons(E(x2, x3), x4), Cons(E(x2, x3), x4))) REACH(x0, x1, Nil) -> c1(REACH[ITE](False, x0, x1, Nil)) REACH(x0, x1, Nil) -> c1(MEMBER(E(x0, x1), Nil)) VIA(0, x0, Nil, x4) -> c22 VIA(S(x0), x1, Nil, x4) -> c22 VIA(S(S(x0)), x1, Nil, x5) -> c22 VIA(S(0), x0, Nil, x4) -> c22 VIA(x0, x1, Nil, Nil) -> c22 !EQ'(S(S(y0)), S(S(y1))) -> c(!EQ'(S(y0), S(y1))) VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5)) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5)) MEMBER(E(x0, x1), Nil) -> c24 MEMBER(E(x0, S(x1)), Nil) -> c24 MEMBER(E(x0, 0), Nil) -> c24 MEMBER(E(S(x0), x1), Nil) -> c24 MEMBER(E(0, x0), Nil) -> c24 VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), Cons(z5, z6)) -> c8(VIA[LET](0, x0, Cons(E(0, x1), x2), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x1, x0), z5), E(x1, x0), Cons(z5, z6)), x1, x0, Cons(z5, z6))), REACH(x1, x0, Cons(z5, z6))) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(z5, z6)) -> c8(VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x3, x1), z5), E(x3, x1), Cons(z5, z6)), x3, x1, Cons(z5, z6))), REACH(x3, x1, Cons(z5, z6))) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), Cons(z5, z6)) -> c8(VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x1, x0), z5), E(x1, x0), Cons(z5, z6)), x1, x0, Cons(z5, z6))), REACH(x1, x0, Cons(z5, z6))) VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), x3) -> c8(REACH(x1, x0, x3)) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), x5) -> c8(REACH(x3, x1, x5)) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), x3) -> c8(REACH(x1, x0, x3)) VIA[LET](0, x0, Cons(E(0, x1), x2), Cons(x3, x4), Nil) -> c10(VIA(0, x0, x2, Cons(x3, x4))) VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(x5, x6), Nil) -> c10(VIA(S(S(x0)), x1, x4, Cons(x5, x6))) VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Cons(x3, x4), Nil) -> c10(VIA(S(0), x0, x2, Cons(x3, x4))) VIA(0, x0, Nil, Cons(z2, z3)) -> c22 VIA(S(x0), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(S(x0)), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(0), x0, Nil, Cons(z2, z3)) -> c22 VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), Nil) -> c8(VIA[LET](0, x0, Cons(E(0, x1), x2), Nil, Nil), REACH(x1, x0, Nil)) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Nil) -> c8(VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Nil, Nil), REACH(x3, x1, Nil)) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), Nil) -> c8(VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Nil, Nil), REACH(x1, x0, Nil)) EQEDGE(E(S(S(y0)), z1), E(S(S(y1)), z3)) -> c25(!EQ'(S(S(y0)), S(S(y1)))) EQEDGE(E(z0, S(S(y0))), E(z2, S(S(y1)))) -> c26(!EQ'(S(S(y0)), S(S(y1)))) VIA[LET](0, x0, Cons(E(0, x1), x2), Nil, Nil) -> c10(VIA(0, x0, x2, Nil)) VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Nil, Nil) -> c10(VIA(S(S(x0)), x1, x4, Nil)) VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Nil, Nil) -> c10(VIA(S(0), x0, x2, Nil)) REACH(z0, S(y1), Cons(E(y2, S(y3)), y4)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, S(y3)), y4))) REACH(z0, 0, Cons(E(y1, S(y2)), y3)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, S(y2)), y3))) REACH(z0, S(y1), Cons(E(y2, 0), y3)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, 0), y3))) REACH(z0, 0, Cons(E(y1, 0), y2)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, 0), y2))) REACH(S(y0), z1, Cons(E(S(y2), y3), y4)) -> c29(MEMBER(E(S(y0), z1), Cons(E(S(y2), y3), y4))) REACH(0, z1, Cons(E(S(y1), y2), y3)) -> c29(MEMBER(E(0, z1), Cons(E(S(y1), y2), y3))) REACH(S(y0), z1, Cons(E(0, y2), y3)) -> c29(MEMBER(E(S(y0), z1), Cons(E(0, y2), y3))) REACH(0, z1, Cons(E(0, y1), y2)) -> c29(MEMBER(E(0, z1), Cons(E(0, y1), y2))) REACH(z0, z1, Cons(E(y2, y3), y4)) -> c29(MEMBER(E(z0, z1), Cons(E(y2, y3), y4))) REACH(z0, z1, Nil) -> c29(MEMBER(E(z0, z1), Nil)) REACH(z0, S(y1), Nil) -> c29(MEMBER(E(z0, S(y1)), Nil)) REACH(z0, 0, Nil) -> c29(MEMBER(E(z0, 0), Nil)) REACH(S(y0), z1, Nil) -> c29(MEMBER(E(S(y0), z1), Nil)) REACH(0, z1, Nil) -> c29(MEMBER(E(0, z1), Nil)) VIA(S(S(y0)), z1, Cons(E(S(S(y1)), z3), z4), z5) -> c21(!EQ'(S(S(y0)), S(S(y1)))) MEMBER(E(S(S(y0)), z1), Cons(E(S(S(y2)), z3), z4)) -> c23(EQEDGE(E(S(S(y0)), z1), E(S(S(y2)), z3))) MEMBER(E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)) -> c23(EQEDGE(E(z0, S(S(y1))), E(z2, S(S(y3))))) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(S(y1), y2), y3)), z4) -> c9(VIA(0, z0, Cons(E(S(y1), y2), y3), z4)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(0, y1), y2)), z4) -> c9(VIA(0, z0, Cons(E(0, y1), y2), z4)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), z4) -> c9(VIA(0, z0, Nil, z4)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Nil) -> c9(VIA(0, z0, Nil, Nil)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Cons(y1, y2)) -> c9(VIA(0, z0, Nil, Cons(y1, y2))) VIA(0, z0, Cons(E(S(z1), z2), Cons(E(S(y3), y4), y5)), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(S(y3), y4), y5)), z4)) VIA(0, z0, Cons(E(S(z1), z2), Cons(E(0, y3), y4)), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(0, y3), y4)), z4)) VIA(0, z0, Cons(E(S(z1), z2), Nil), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), z4)) VIA(0, z0, Cons(E(S(z1), z2), Nil), Nil) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Nil)) VIA(0, z0, Cons(E(S(z1), z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Cons(y3, y4))) VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Cons(E(0, y2), y3)), z4) -> c9(VIA(S(z0), z1, Cons(E(0, y2), y3), z4)) VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4) -> c9(VIA(S(S(y0)), z1, Cons(E(S(S(y2)), y3), y4), z4)) VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), z4) -> c9(VIA(S(z0), z1, Nil, z4)) VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), z4) -> c9(VIA(S(S(y0)), z1, Nil, z4)) VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), z4) -> c9(VIA(S(0), z1, Nil, z4)) VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Nil) -> c9(VIA(S(z0), z1, Nil, Nil)) VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(S(y1)), y2), y3)), z4) -> c9(VIA(S(0), z1, Cons(E(S(S(y1)), y2), y3), z4)) VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4) -> c9(VIA(S(S(y0)), z1, Cons(E(S(0), y2), y3), z4)) VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(0), y1), y2)), z4) -> c9(VIA(S(0), z1, Cons(E(S(0), y1), y2), z4)) VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Cons(y2, y3)) -> c9(VIA(S(z0), z1, Nil, Cons(y2, y3))) VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y2, y3)) -> c9(VIA(S(S(y0)), z1, Nil, Cons(y2, y3))) VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), Cons(y1, y2)) -> c9(VIA(S(0), z1, Nil, Cons(y1, y2))) VIA(S(z0), z1, Cons(E(0, z2), Cons(E(0, y3), y4)), z4) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Cons(E(0, y3), y4)), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y3)), y4), y5)), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y3)), y4), y5)), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), z4)) VIA(S(0), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), Nil) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Nil)) VIA(S(0), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y3), y4)), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y3), y4)), z4)) VIA(S(0), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Cons(y3, y4))) VIA(S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y3, y4))) VIA(S(0), z1, Cons(E(0, z2), Nil), Cons(y2, y3)) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), Cons(y2, y3))) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(S(S(y2)), y3), y4)), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(S(S(y2)), y3), y4), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Nil), z5) -> c9(VIA(S(S(z0)), z1, Nil, z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Nil), Nil) -> c9(VIA(S(S(z0)), z1, Nil, Nil)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(S(0), y2), y3)), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(S(0), y2), y3), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Nil), Cons(y2, y3)) -> c9(VIA(S(S(z0)), z1, Nil, Cons(y2, y3))) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Cons(E(0, y3), y4))), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(0, y3), y4)), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Cons(E(S(S(y3)), y4), y5))), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(S(S(y3)), y4), y5)), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Nil)), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Nil)), Nil) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), Nil)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Cons(E(S(0), y3), y4))), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(S(0), y3), y4)), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Nil)), Cons(y3, y4)) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), Cons(y3, y4))) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Nil), z4) -> c9(VIA(S(0), z0, Nil, z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Nil), Nil) -> c9(VIA(S(0), z0, Nil, Nil)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(S(S(y1)), y2), y3)), z4) -> c9(VIA(S(0), z0, Cons(E(S(S(y1)), y2), y3), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(S(0), y1), y2)), z4) -> c9(VIA(S(0), z0, Cons(E(S(0), y1), y2), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Nil), Cons(y2, y3)) -> c9(VIA(S(0), z0, Nil, Cons(y2, y3))) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y2), Cons(E(0, y3), y4))), z4) -> c9(VIA(S(0), z0, Cons(E(0, y2), Cons(E(0, y3), y4)), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y2), Nil)), z4) -> c9(VIA(S(0), z0, Cons(E(0, y2), Nil), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y2), Nil)), Nil) -> c9(VIA(S(0), z0, Cons(E(0, y2), Nil), Nil)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y1), Cons(E(S(S(y2)), y3), y4))), z4) -> c9(VIA(S(0), z0, Cons(E(0, y1), Cons(E(S(S(y2)), y3), y4)), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y1), Cons(E(S(0), y2), y3))), z4) -> c9(VIA(S(0), z0, Cons(E(0, y1), Cons(E(S(0), y2), y3)), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y2), Nil)), Cons(y3, y4)) -> c9(VIA(S(0), z0, Cons(E(0, y2), Nil), Cons(y3, y4))) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(S(S(y2)), y3), y4)), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(S(S(y2)), y3), y4), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Nil), z4) -> c9(VIA(S(S(z0)), z1, Nil, z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Nil), Nil) -> c9(VIA(S(S(z0)), z1, Nil, Nil)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(S(0), y2), y3)), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(S(0), y2), y3), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Nil), Cons(y2, y3)) -> c9(VIA(S(S(z0)), z1, Nil, Cons(y2, y3))) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Cons(E(0, y3), y4))), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(0, y3), y4)), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Cons(E(S(S(y3)), y4), y5))), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(S(S(y3)), y4), y5)), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Nil)), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Nil)), Nil) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), Nil)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Cons(E(S(0), y3), y4))), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(S(0), y3), y4)), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Nil)), Cons(y3, y4)) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), Cons(y3, y4))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y2, S(y3)), y4))) -> c12(MEMBER(E(z0, S(z1)), Cons(E(y2, S(y3)), y4))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y2, 0), y3))) -> c12(MEMBER(E(z0, S(z1)), Cons(E(y2, 0), y3))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y2), y3), y4))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(S(y2), y3), y4))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y1), y2), y3))) -> c12(MEMBER(E(0, S(z1)), Cons(E(S(y1), y2), y3))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y2), y3))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(0, y2), y3))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y1), y2))) -> c12(MEMBER(E(0, S(z1)), Cons(E(0, y1), y2))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, S(z3)), Nil)) -> c12(MEMBER(E(z0, S(z1)), Nil)) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, S(z3)), Nil)) -> c12(MEMBER(E(S(y0), S(z1)), Nil)) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, S(z3)), Nil)) -> c12(MEMBER(E(0, S(z1)), Nil)) MEMBER[ITE](False, E(S(S(y0)), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(S(y2)), y3), y4))) -> c12(MEMBER(E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), y3), y4))) MEMBER[ITE](False, E(z0, S(S(y1))), Cons(E(z2, S(z3)), Cons(E(y2, S(S(y3))), y4))) -> c12(MEMBER(E(z0, S(S(y1))), Cons(E(y2, S(S(y3))), y4))) MEMBER(E(S(y1), S(z1)), Cons(E(S(y3), S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), S(y3)), !EQ(z1, z3)), S(y3), S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(S(y3), S(z3)), z4)), EQEDGE(E(S(y1), S(z1)), E(S(y3), S(z3)))) MEMBER(E(0, S(z1)), Cons(E(S(y2), S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, S(y2)), !EQ(z1, z3)), S(y2), S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(S(y2), S(z3)), z4)), EQEDGE(E(0, S(z1)), E(S(y2), S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(0, S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), 0), !EQ(z1, z3)), 0, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(0, S(z3)), z4)), EQEDGE(E(S(y1), S(z1)), E(0, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(0, S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, 0), !EQ(z1, z3)), 0, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(0, S(z3)), z4)), EQEDGE(E(0, S(z1)), E(0, S(z3)))) MEMBER(E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y0)), S(S(y2))), !EQ(z1, z3)), S(S(y2)), S(z3), S(S(y0)), S(z1)), E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), S(z3)), z4)), EQEDGE(E(S(S(y0)), S(z1)), E(S(S(y2)), S(z3)))) MEMBER(E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(S(y1), S(y3))), z2, S(S(y3)), z0, S(S(y1))), E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)), EQEDGE(E(z0, S(S(y1))), E(z2, S(S(y3))))) MEMBER(E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, S(y6)), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, S(z3), z0, S(z1)), E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, S(y6)), y7))), EQEDGE(E(z0, S(z1)), E(z2, S(z3)))) MEMBER(E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, 0), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, S(z3), z0, S(z1)), E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, 0), y6))), EQEDGE(E(z0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y5), y6), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), !EQ(z1, z3)), z2, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y5), y6), y7))), EQEDGE(E(S(y1), S(z1)), E(z2, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y4), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), !EQ(z1, z3)), z2, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y4), y5), y6))), EQEDGE(E(0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), !EQ(z1, z3)), z2, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y5), y6))), EQEDGE(E(S(y1), S(z1)), E(z2, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), !EQ(z1, z3)), z2, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y4), y5))), EQEDGE(E(0, S(z1)), E(z2, S(z3)))) MEMBER(E(z0, S(z1)), Cons(E(z2, S(z3)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, S(z3), z0, S(z1)), E(z0, S(z1)), Cons(E(z2, S(z3)), Nil)), EQEDGE(E(z0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, S(z3)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), !EQ(z1, z3)), z2, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, S(z3)), Nil)), EQEDGE(E(S(y1), S(z1)), E(z2, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(z2, S(z3)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), !EQ(z1, z3)), z2, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(z2, S(z3)), Nil)), EQEDGE(E(0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(S(y1)), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(S(y5)), y6), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z2), !EQ(z1, z3)), z2, S(z3), S(S(y1)), S(z1)), E(S(S(y1)), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(S(y5)), y6), y7))), EQEDGE(E(S(S(y1)), S(z1)), E(z2, S(z3)))) MEMBER(E(z0, S(S(y2))), Cons(E(z2, S(z3)), Cons(E(y5, S(S(y6))), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(S(y2), z3)), z2, S(z3), z0, S(S(y2))), E(z0, S(S(y2))), Cons(E(z2, S(z3)), Cons(E(y5, S(S(y6))), y7))), EQEDGE(E(z0, S(S(y2))), E(z2, S(z3)))) MEMBER[ITE](False, E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y1, S(y2)), y3))) -> c12(MEMBER(E(z0, 0), Cons(E(y1, S(y2)), y3))) MEMBER[ITE](False, E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y1, 0), y2))) -> c12(MEMBER(E(z0, 0), Cons(E(y1, 0), y2))) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, S(z2)), Cons(E(S(y2), y3), y4))) -> c12(MEMBER(E(S(y0), 0), Cons(E(S(y2), y3), y4))) MEMBER[ITE](False, E(0, 0), Cons(E(z1, S(z2)), Cons(E(S(y1), y2), y3))) -> c12(MEMBER(E(0, 0), Cons(E(S(y1), y2), y3))) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, S(z2)), Cons(E(0, y2), y3))) -> c12(MEMBER(E(S(y0), 0), Cons(E(0, y2), y3))) MEMBER[ITE](False, E(0, 0), Cons(E(z1, S(z2)), Cons(E(0, y1), y2))) -> c12(MEMBER(E(0, 0), Cons(E(0, y1), y2))) MEMBER[ITE](False, E(z0, 0), Cons(E(z1, S(z2)), Nil)) -> c12(MEMBER(E(z0, 0), Nil)) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, S(z2)), Nil)) -> c12(MEMBER(E(S(y0), 0), Nil)) MEMBER[ITE](False, E(0, 0), Cons(E(z1, S(z2)), Nil)) -> c12(MEMBER(E(0, 0), Nil)) MEMBER[ITE](False, E(S(S(y0)), 0), Cons(E(z1, S(z2)), Cons(E(S(S(y2)), y3), y4))) -> c12(MEMBER(E(S(S(y0)), 0), Cons(E(S(S(y2)), y3), y4))) MEMBER(E(S(y1), 0), Cons(E(S(y3), S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), S(y3)), False), S(y3), S(z2), S(y1), 0), E(S(y1), 0), Cons(E(S(y3), S(z2)), z3)), EQEDGE(E(S(y1), 0), E(S(y3), S(z2)))) MEMBER(E(S(S(y0)), 0), Cons(E(S(S(y2)), S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y0)), S(S(y2))), False), S(S(y2)), S(z2), S(S(y0)), 0), E(S(S(y0)), 0), Cons(E(S(S(y2)), S(z2)), z3)), EQEDGE(E(S(S(y0)), 0), E(S(S(y2)), S(z2)))) MEMBER(E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, S(y5)), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), False), z1, S(z2), z0, 0), E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, S(y5)), y6))), EQEDGE(E(z0, 0), E(z1, S(z2)))) MEMBER(E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, 0), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), False), z1, S(z2), z0, 0), E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, 0), y5))), EQEDGE(E(z0, 0), E(z1, S(z2)))) MEMBER(E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(S(y4), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), False), z1, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(S(y4), y5), y6))), EQEDGE(E(S(y1), 0), E(z1, S(z2)))) MEMBER(E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(0, y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), False), z1, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(0, y4), y5))), EQEDGE(E(S(y1), 0), E(z1, S(z2)))) MEMBER(E(z0, 0), Cons(E(z1, S(z2)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), False), z1, S(z2), z0, 0), E(z0, 0), Cons(E(z1, S(z2)), Nil)), EQEDGE(E(z0, 0), E(z1, S(z2)))) MEMBER(E(S(y1), 0), Cons(E(z1, S(z2)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), False), z1, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(z1, S(z2)), Nil)), EQEDGE(E(S(y1), 0), E(z1, S(z2)))) MEMBER(E(S(S(y1)), 0), Cons(E(z1, S(z2)), Cons(E(S(S(y4)), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z1), False), z1, S(z2), S(S(y1)), 0), E(S(S(y1)), 0), Cons(E(z1, S(z2)), Cons(E(S(S(y4)), y5), y6))), EQEDGE(E(S(S(y1)), 0), E(z1, S(z2)))) MEMBER(E(0, 0), Cons(E(S(y2), S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, S(y2)), False), S(y2), S(z2), 0, 0), E(0, 0), Cons(E(S(y2), S(z2)), z3))) MEMBER(E(S(y1), 0), Cons(E(0, S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), 0), False), 0, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(0, S(z2)), z3))) MEMBER(E(0, 0), Cons(E(0, S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, 0), False), 0, S(z2), 0, 0), E(0, 0), Cons(E(0, S(z2)), z3))) MEMBER(E(0, 0), Cons(E(z1, S(z2)), Cons(E(S(y3), y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), False), z1, S(z2), 0, 0), E(0, 0), Cons(E(z1, S(z2)), Cons(E(S(y3), y4), y5)))) MEMBER(E(0, 0), Cons(E(z1, S(z2)), Cons(E(0, y3), y4))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), False), z1, S(z2), 0, 0), E(0, 0), Cons(E(z1, S(z2)), Cons(E(0, y3), y4)))) MEMBER(E(0, 0), Cons(E(z1, S(z2)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), False), z1, S(z2), 0, 0), E(0, 0), Cons(E(z1, S(z2)), Nil))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y2, 0), y3))) -> c12(MEMBER(E(z0, S(z1)), Cons(E(y2, 0), y3))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, 0), Cons(E(S(y2), y3), y4))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(S(y2), y3), y4))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, 0), Cons(E(S(y1), y2), y3))) -> c12(MEMBER(E(0, S(z1)), Cons(E(S(y1), y2), y3))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, 0), Cons(E(0, y2), y3))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(0, y2), y3))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, 0), Cons(E(0, y1), y2))) -> c12(MEMBER(E(0, S(z1)), Cons(E(0, y1), y2))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, 0), Nil)) -> c12(MEMBER(E(z0, S(z1)), Nil)) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, 0), Nil)) -> c12(MEMBER(E(S(y0), S(z1)), Nil)) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, 0), Nil)) -> c12(MEMBER(E(0, S(z1)), Nil)) MEMBER[ITE](False, E(S(S(y0)), S(z1)), Cons(E(z2, 0), Cons(E(S(S(y2)), y3), y4))) -> c12(MEMBER(E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), y3), y4))) MEMBER[ITE](False, E(z0, S(S(y1))), Cons(E(z2, 0), Cons(E(y2, S(S(y3))), y4))) -> c12(MEMBER(E(z0, S(S(y1))), Cons(E(y2, S(S(y3))), y4))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, 0), Cons(E(S(y2), S(y3)), y4))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(S(y2), S(y3)), y4))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, 0), Cons(E(S(y1), S(y2)), y3))) -> c12(MEMBER(E(0, S(z1)), Cons(E(S(y1), S(y2)), y3))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, 0), Cons(E(0, S(y2)), y3))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(0, S(y2)), y3))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, 0), Cons(E(0, S(y1)), y2))) -> c12(MEMBER(E(0, S(z1)), Cons(E(0, S(y1)), y2))) MEMBER[ITE](False, E(S(S(y0)), S(z1)), Cons(E(z2, 0), Cons(E(S(S(y2)), S(y3)), y4))) -> c12(MEMBER(E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), S(y3)), y4))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y2, S(y3)), Cons(E(y4, S(y5)), y6)))) -> c12(MEMBER(E(z0, S(z1)), Cons(E(y2, S(y3)), Cons(E(y4, S(y5)), y6)))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y2, S(y3)), Cons(E(y4, 0), y5)))) -> c12(MEMBER(E(z0, S(z1)), Cons(E(y2, S(y3)), Cons(E(y4, 0), y5)))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, 0), Cons(E(y2, S(y3)), Cons(E(S(y4), y5), y6)))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(y2, S(y3)), Cons(E(S(y4), y5), y6)))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, 0), Cons(E(y1, S(y2)), Cons(E(S(y3), y4), y5)))) -> c12(MEMBER(E(0, S(z1)), Cons(E(y1, S(y2)), Cons(E(S(y3), y4), y5)))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, 0), Cons(E(y2, S(y3)), Cons(E(0, y4), y5)))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(y2, S(y3)), Cons(E(0, y4), y5)))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, 0), Cons(E(y1, S(y2)), Cons(E(0, y3), y4)))) -> c12(MEMBER(E(0, S(z1)), Cons(E(y1, S(y2)), Cons(E(0, y3), y4)))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y2, S(y3)), Nil))) -> c12(MEMBER(E(z0, S(z1)), Cons(E(y2, S(y3)), Nil))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, 0), Cons(E(y2, S(y3)), Nil))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(y2, S(y3)), Nil))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, 0), Cons(E(y1, S(y2)), Nil))) -> c12(MEMBER(E(0, S(z1)), Cons(E(y1, S(y2)), Nil))) MEMBER[ITE](False, E(S(S(y0)), S(z1)), Cons(E(z2, 0), Cons(E(y2, S(y3)), Cons(E(S(S(y4)), y5), y6)))) -> c12(MEMBER(E(S(S(y0)), S(z1)), Cons(E(y2, S(y3)), Cons(E(S(S(y4)), y5), y6)))) MEMBER[ITE](False, E(z0, S(S(y1))), Cons(E(z2, 0), Cons(E(y2, S(y3)), Cons(E(y4, S(S(y5))), y6)))) -> c12(MEMBER(E(z0, S(S(y1))), Cons(E(y2, S(y3)), Cons(E(y4, S(S(y5))), y6)))) MEMBER(E(S(y1), S(z1)), Cons(E(S(y3), 0), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), S(y3)), False), S(y3), 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(S(y3), 0), z3)), EQEDGE(E(S(y1), S(z1)), E(S(y3), 0))) MEMBER(E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), 0), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y0)), S(S(y2))), False), S(S(y2)), 0, S(S(y0)), S(z1)), E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), 0), z3)), EQEDGE(E(S(S(y0)), S(z1)), E(S(S(y2)), 0))) MEMBER(E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, 0), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(z1)), E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, 0), y5))), EQEDGE(E(z0, S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(S(y4), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(S(y4), y5), y6))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(0, y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(0, y4), y5))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(z0, S(z1)), Cons(E(z2, 0), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(z1)), E(z0, S(z1)), Cons(E(z2, 0), Nil)), EQEDGE(E(z0, S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Nil)), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(S(S(y4)), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z2), False), z2, 0, S(S(y1)), S(z1)), E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(S(S(y4)), y5), y6))), EQEDGE(E(S(S(y1)), S(z1)), E(z2, 0))) MEMBER(E(z0, S(S(y2))), Cons(E(z2, 0), Cons(E(y4, S(S(y5))), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(S(y2))), E(z0, S(S(y2))), Cons(E(z2, 0), Cons(E(y4, S(S(y5))), y6))), EQEDGE(E(z0, S(S(y2))), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(S(y4), S(y5)), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(S(y4), S(y5)), y6))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(0, S(y4)), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(0, S(y4)), y5))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(S(S(y4)), S(y5)), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z2), False), z2, 0, S(S(y1)), S(z1)), E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(S(S(y4)), S(y5)), y6))), EQEDGE(E(S(S(y1)), S(z1)), E(z2, 0))) MEMBER(E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, S(y7)), y8)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(z1)), E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, S(y7)), y8)))), EQEDGE(E(z0, S(z1)), E(z2, 0))) MEMBER(E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, 0), y7)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(z1)), E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, 0), y7)))), EQEDGE(E(z0, S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(S(y6), y7), y8)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(S(y6), y7), y8)))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(0, y6), y7)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(0, y6), y7)))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Nil))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(z1)), E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Nil))), EQEDGE(E(z0, S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Nil))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Nil))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(S(S(y6)), y7), y8)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z2), False), z2, 0, S(S(y1)), S(z1)), E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(S(S(y6)), y7), y8)))), EQEDGE(E(S(S(y1)), S(z1)), E(z2, 0))) MEMBER(E(z0, S(S(y2))), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, S(S(y7))), y8)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(S(y2))), E(z0, S(S(y2))), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, S(S(y7))), y8)))), EQEDGE(E(z0, S(S(y2))), E(z2, 0))) MEMBER(E(0, S(z1)), Cons(E(S(y2), 0), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, S(y2)), False), S(y2), 0, 0, S(z1)), E(0, S(z1)), Cons(E(S(y2), 0), z3))) MEMBER(E(S(y1), S(z1)), Cons(E(0, 0), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), 0), False), 0, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(0, 0), z3))) MEMBER(E(0, S(z1)), Cons(E(0, 0), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, 0), False), 0, 0, 0, S(z1)), E(0, S(z1)), Cons(E(0, 0), z3))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(S(y3), y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(S(y3), y4), y5)))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(0, y3), y4))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(0, y3), y4)))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Nil))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(S(y3), S(y4)), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(S(y3), S(y4)), y5)))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(0, S(y3)), y4))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(0, S(y3)), y4)))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Cons(E(S(y5), y6), y7)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Cons(E(S(y5), y6), y7))))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Cons(E(0, y5), y6)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Cons(E(0, y5), y6))))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Nil))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Nil)))) S tuples: VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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))) REACH(x0, x1, Nil) -> c1(REACH[ITE](False, x0, x1, Nil)) REACH(x0, x1, Nil) -> c1(MEMBER(E(x0, x1), Nil)) VIA(0, x0, Nil, x4) -> c22 VIA(S(x0), x1, Nil, x4) -> c22 VIA(S(S(x0)), x1, Nil, x5) -> c22 VIA(S(0), x0, Nil, x4) -> c22 VIA(x0, x1, Nil, Nil) -> c22 VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5)) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5)) MEMBER(E(x0, x1), Nil) -> c24 MEMBER(E(x0, S(x1)), Nil) -> c24 MEMBER(E(x0, 0), Nil) -> c24 MEMBER(E(S(x0), x1), Nil) -> c24 MEMBER(E(0, x0), Nil) -> c24 VIA(0, x0, Nil, Cons(z2, z3)) -> c22 VIA(S(x0), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(S(x0)), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(0), x0, Nil, Cons(z2, z3)) -> c22 EQEDGE(E(S(S(y0)), z1), E(S(S(y1)), z3)) -> c25(!EQ'(S(S(y0)), S(S(y1)))) EQEDGE(E(z0, S(S(y0))), E(z2, S(S(y1)))) -> c26(!EQ'(S(S(y0)), S(S(y1)))) REACH(z0, S(y1), Cons(E(y2, S(y3)), y4)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, S(y3)), y4))) REACH(z0, 0, Cons(E(y1, S(y2)), y3)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, S(y2)), y3))) REACH(z0, S(y1), Cons(E(y2, 0), y3)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, 0), y3))) REACH(z0, 0, Cons(E(y1, 0), y2)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, 0), y2))) REACH(S(y0), z1, Cons(E(S(y2), y3), y4)) -> c29(MEMBER(E(S(y0), z1), Cons(E(S(y2), y3), y4))) REACH(0, z1, Cons(E(S(y1), y2), y3)) -> c29(MEMBER(E(0, z1), Cons(E(S(y1), y2), y3))) REACH(S(y0), z1, Cons(E(0, y2), y3)) -> c29(MEMBER(E(S(y0), z1), Cons(E(0, y2), y3))) REACH(0, z1, Cons(E(0, y1), y2)) -> c29(MEMBER(E(0, z1), Cons(E(0, y1), y2))) REACH(z0, z1, Cons(E(y2, y3), y4)) -> c29(MEMBER(E(z0, z1), Cons(E(y2, y3), y4))) REACH(z0, z1, Nil) -> c29(MEMBER(E(z0, z1), Nil)) REACH(z0, S(y1), Nil) -> c29(MEMBER(E(z0, S(y1)), Nil)) REACH(z0, 0, Nil) -> c29(MEMBER(E(z0, 0), Nil)) REACH(S(y0), z1, Nil) -> c29(MEMBER(E(S(y0), z1), Nil)) REACH(0, z1, Nil) -> c29(MEMBER(E(0, z1), Nil)) VIA(S(S(y0)), z1, Cons(E(S(S(y1)), z3), z4), z5) -> c21(!EQ'(S(S(y0)), S(S(y1)))) MEMBER(E(S(S(y0)), z1), Cons(E(S(S(y2)), z3), z4)) -> c23(EQEDGE(E(S(S(y0)), z1), E(S(S(y2)), z3))) MEMBER(E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)) -> c23(EQEDGE(E(z0, S(S(y1))), E(z2, S(S(y3))))) VIA(0, z0, Cons(E(S(z1), z2), Cons(E(S(y3), y4), y5)), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(S(y3), y4), y5)), z4)) VIA(0, z0, Cons(E(S(z1), z2), Cons(E(0, y3), y4)), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(0, y3), y4)), z4)) VIA(0, z0, Cons(E(S(z1), z2), Nil), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), z4)) VIA(0, z0, Cons(E(S(z1), z2), Nil), Nil) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Nil)) VIA(0, z0, Cons(E(S(z1), z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Cons(y3, y4))) VIA(S(z0), z1, Cons(E(0, z2), Cons(E(0, y3), y4)), z4) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Cons(E(0, y3), y4)), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y3)), y4), y5)), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y3)), y4), y5)), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), z4)) VIA(S(0), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), Nil) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Nil)) VIA(S(0), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y3), y4)), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y3), y4)), z4)) VIA(S(0), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Cons(y3, y4))) VIA(S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y3, y4))) VIA(S(0), z1, Cons(E(0, z2), Nil), Cons(y2, y3)) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), Cons(y2, y3))) MEMBER(E(S(y1), S(z1)), Cons(E(S(y3), S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), S(y3)), !EQ(z1, z3)), S(y3), S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(S(y3), S(z3)), z4)), EQEDGE(E(S(y1), S(z1)), E(S(y3), S(z3)))) MEMBER(E(0, S(z1)), Cons(E(S(y2), S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, S(y2)), !EQ(z1, z3)), S(y2), S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(S(y2), S(z3)), z4)), EQEDGE(E(0, S(z1)), E(S(y2), S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(0, S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), 0), !EQ(z1, z3)), 0, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(0, S(z3)), z4)), EQEDGE(E(S(y1), S(z1)), E(0, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(0, S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, 0), !EQ(z1, z3)), 0, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(0, S(z3)), z4)), EQEDGE(E(0, S(z1)), E(0, S(z3)))) MEMBER(E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y0)), S(S(y2))), !EQ(z1, z3)), S(S(y2)), S(z3), S(S(y0)), S(z1)), E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), S(z3)), z4)), EQEDGE(E(S(S(y0)), S(z1)), E(S(S(y2)), S(z3)))) MEMBER(E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(S(y1), S(y3))), z2, S(S(y3)), z0, S(S(y1))), E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)), EQEDGE(E(z0, S(S(y1))), E(z2, S(S(y3))))) MEMBER(E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, S(y6)), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, S(z3), z0, S(z1)), E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, S(y6)), y7))), EQEDGE(E(z0, S(z1)), E(z2, S(z3)))) MEMBER(E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, 0), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, S(z3), z0, S(z1)), E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, 0), y6))), EQEDGE(E(z0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y5), y6), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), !EQ(z1, z3)), z2, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y5), y6), y7))), EQEDGE(E(S(y1), S(z1)), E(z2, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y4), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), !EQ(z1, z3)), z2, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y4), y5), y6))), EQEDGE(E(0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), !EQ(z1, z3)), z2, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y5), y6))), EQEDGE(E(S(y1), S(z1)), E(z2, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), !EQ(z1, z3)), z2, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y4), y5))), EQEDGE(E(0, S(z1)), E(z2, S(z3)))) MEMBER(E(z0, S(z1)), Cons(E(z2, S(z3)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, S(z3), z0, S(z1)), E(z0, S(z1)), Cons(E(z2, S(z3)), Nil)), EQEDGE(E(z0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, S(z3)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), !EQ(z1, z3)), z2, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, S(z3)), Nil)), EQEDGE(E(S(y1), S(z1)), E(z2, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(z2, S(z3)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), !EQ(z1, z3)), z2, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(z2, S(z3)), Nil)), EQEDGE(E(0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(S(y1)), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(S(y5)), y6), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z2), !EQ(z1, z3)), z2, S(z3), S(S(y1)), S(z1)), E(S(S(y1)), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(S(y5)), y6), y7))), EQEDGE(E(S(S(y1)), S(z1)), E(z2, S(z3)))) MEMBER(E(z0, S(S(y2))), Cons(E(z2, S(z3)), Cons(E(y5, S(S(y6))), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(S(y2), z3)), z2, S(z3), z0, S(S(y2))), E(z0, S(S(y2))), Cons(E(z2, S(z3)), Cons(E(y5, S(S(y6))), y7))), EQEDGE(E(z0, S(S(y2))), E(z2, S(z3)))) MEMBER(E(S(y1), 0), Cons(E(S(y3), S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), S(y3)), False), S(y3), S(z2), S(y1), 0), E(S(y1), 0), Cons(E(S(y3), S(z2)), z3)), EQEDGE(E(S(y1), 0), E(S(y3), S(z2)))) MEMBER(E(S(S(y0)), 0), Cons(E(S(S(y2)), S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y0)), S(S(y2))), False), S(S(y2)), S(z2), S(S(y0)), 0), E(S(S(y0)), 0), Cons(E(S(S(y2)), S(z2)), z3)), EQEDGE(E(S(S(y0)), 0), E(S(S(y2)), S(z2)))) MEMBER(E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, S(y5)), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), False), z1, S(z2), z0, 0), E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, S(y5)), y6))), EQEDGE(E(z0, 0), E(z1, S(z2)))) MEMBER(E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, 0), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), False), z1, S(z2), z0, 0), E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, 0), y5))), EQEDGE(E(z0, 0), E(z1, S(z2)))) MEMBER(E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(S(y4), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), False), z1, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(S(y4), y5), y6))), EQEDGE(E(S(y1), 0), E(z1, S(z2)))) MEMBER(E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(0, y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), False), z1, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(0, y4), y5))), EQEDGE(E(S(y1), 0), E(z1, S(z2)))) MEMBER(E(z0, 0), Cons(E(z1, S(z2)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), False), z1, S(z2), z0, 0), E(z0, 0), Cons(E(z1, S(z2)), Nil)), EQEDGE(E(z0, 0), E(z1, S(z2)))) MEMBER(E(S(y1), 0), Cons(E(z1, S(z2)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), False), z1, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(z1, S(z2)), Nil)), EQEDGE(E(S(y1), 0), E(z1, S(z2)))) MEMBER(E(S(S(y1)), 0), Cons(E(z1, S(z2)), Cons(E(S(S(y4)), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z1), False), z1, S(z2), S(S(y1)), 0), E(S(S(y1)), 0), Cons(E(z1, S(z2)), Cons(E(S(S(y4)), y5), y6))), EQEDGE(E(S(S(y1)), 0), E(z1, S(z2)))) MEMBER(E(0, 0), Cons(E(S(y2), S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, S(y2)), False), S(y2), S(z2), 0, 0), E(0, 0), Cons(E(S(y2), S(z2)), z3))) MEMBER(E(S(y1), 0), Cons(E(0, S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), 0), False), 0, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(0, S(z2)), z3))) MEMBER(E(0, 0), Cons(E(0, S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, 0), False), 0, S(z2), 0, 0), E(0, 0), Cons(E(0, S(z2)), z3))) MEMBER(E(0, 0), Cons(E(z1, S(z2)), Cons(E(S(y3), y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), False), z1, S(z2), 0, 0), E(0, 0), Cons(E(z1, S(z2)), Cons(E(S(y3), y4), y5)))) MEMBER(E(0, 0), Cons(E(z1, S(z2)), Cons(E(0, y3), y4))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), False), z1, S(z2), 0, 0), E(0, 0), Cons(E(z1, S(z2)), Cons(E(0, y3), y4)))) MEMBER(E(0, 0), Cons(E(z1, S(z2)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), False), z1, S(z2), 0, 0), E(0, 0), Cons(E(z1, S(z2)), Nil))) MEMBER(E(S(y1), S(z1)), Cons(E(S(y3), 0), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), S(y3)), False), S(y3), 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(S(y3), 0), z3)), EQEDGE(E(S(y1), S(z1)), E(S(y3), 0))) MEMBER(E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), 0), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y0)), S(S(y2))), False), S(S(y2)), 0, S(S(y0)), S(z1)), E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), 0), z3)), EQEDGE(E(S(S(y0)), S(z1)), E(S(S(y2)), 0))) MEMBER(E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, 0), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(z1)), E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, 0), y5))), EQEDGE(E(z0, S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(S(y4), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(S(y4), y5), y6))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(0, y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(0, y4), y5))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(z0, S(z1)), Cons(E(z2, 0), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(z1)), E(z0, S(z1)), Cons(E(z2, 0), Nil)), EQEDGE(E(z0, S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Nil)), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(S(S(y4)), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z2), False), z2, 0, S(S(y1)), S(z1)), E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(S(S(y4)), y5), y6))), EQEDGE(E(S(S(y1)), S(z1)), E(z2, 0))) MEMBER(E(z0, S(S(y2))), Cons(E(z2, 0), Cons(E(y4, S(S(y5))), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(S(y2))), E(z0, S(S(y2))), Cons(E(z2, 0), Cons(E(y4, S(S(y5))), y6))), EQEDGE(E(z0, S(S(y2))), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(S(y4), S(y5)), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(S(y4), S(y5)), y6))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(0, S(y4)), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(0, S(y4)), y5))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(S(S(y4)), S(y5)), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z2), False), z2, 0, S(S(y1)), S(z1)), E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(S(S(y4)), S(y5)), y6))), EQEDGE(E(S(S(y1)), S(z1)), E(z2, 0))) MEMBER(E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, S(y7)), y8)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(z1)), E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, S(y7)), y8)))), EQEDGE(E(z0, S(z1)), E(z2, 0))) MEMBER(E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, 0), y7)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(z1)), E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, 0), y7)))), EQEDGE(E(z0, S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(S(y6), y7), y8)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(S(y6), y7), y8)))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(0, y6), y7)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(0, y6), y7)))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Nil))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(z1)), E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Nil))), EQEDGE(E(z0, S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Nil))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Nil))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(S(S(y6)), y7), y8)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z2), False), z2, 0, S(S(y1)), S(z1)), E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(S(S(y6)), y7), y8)))), EQEDGE(E(S(S(y1)), S(z1)), E(z2, 0))) MEMBER(E(z0, S(S(y2))), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, S(S(y7))), y8)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(S(y2))), E(z0, S(S(y2))), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, S(S(y7))), y8)))), EQEDGE(E(z0, S(S(y2))), E(z2, 0))) MEMBER(E(0, S(z1)), Cons(E(S(y2), 0), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, S(y2)), False), S(y2), 0, 0, S(z1)), E(0, S(z1)), Cons(E(S(y2), 0), z3))) MEMBER(E(S(y1), S(z1)), Cons(E(0, 0), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), 0), False), 0, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(0, 0), z3))) MEMBER(E(0, S(z1)), Cons(E(0, 0), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, 0), False), 0, 0, 0, S(z1)), E(0, S(z1)), Cons(E(0, 0), z3))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(S(y3), y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(S(y3), y4), y5)))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(0, y3), y4))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(0, y3), y4)))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Nil))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(S(y3), S(y4)), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(S(y3), S(y4)), y5)))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(0, S(y3)), y4))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(0, S(y3)), y4)))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Cons(E(S(y5), y6), y7)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Cons(E(S(y5), y6), y7))))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Cons(E(0, y5), y6)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Cons(E(0, y5), y6))))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Nil))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Nil)))) K tuples:none Defined Rule Symbols: reach_3, reach[Ite]_4, member_2, member[Ite]_3, eqEdge_2, eqEdge[Ite]_5, and_2, !EQ_2, via_4, via[Ite]_5, via[Let]_5 Defined Pair Symbols: VIA_4, MEMBER_2, REACH_3, MEMBER[ITE]_3, REACH[ITE]_4, !EQ'_2, VIA[ITE]_5, VIA[LET]_5, EQEDGE_2 Compound Symbols: c21_1, c21_2, c23_2, c29_2, c12_1, c14_1, c1_1, c22, c_1, c24, c8_2, c8_1, c10_1, c25_1, c26_1, c29_1, c23_1, c9_1 ---------------------------------------- (125) CdtForwardInstantiationProof (BOTH BOUNDS(ID, ID)) Use forward instantiation to replace MEMBER[ITE](False, E(x0, 0), Cons(E(x1, 0), x2)) -> c12(MEMBER(E(x0, 0), x2)) by MEMBER[ITE](False, E(z0, 0), Cons(E(z1, 0), Cons(E(y1, 0), y2))) -> c12(MEMBER(E(z0, 0), Cons(E(y1, 0), y2))) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, 0), Cons(E(S(y2), y3), y4))) -> c12(MEMBER(E(S(y0), 0), Cons(E(S(y2), y3), y4))) MEMBER[ITE](False, E(0, 0), Cons(E(z1, 0), Cons(E(S(y1), y2), y3))) -> c12(MEMBER(E(0, 0), Cons(E(S(y1), y2), y3))) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, 0), Cons(E(0, y2), y3))) -> c12(MEMBER(E(S(y0), 0), Cons(E(0, y2), y3))) MEMBER[ITE](False, E(0, 0), Cons(E(z1, 0), Cons(E(0, y1), y2))) -> c12(MEMBER(E(0, 0), Cons(E(0, y1), y2))) MEMBER[ITE](False, E(z0, 0), Cons(E(z1, 0), Nil)) -> c12(MEMBER(E(z0, 0), Nil)) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, 0), Nil)) -> c12(MEMBER(E(S(y0), 0), Nil)) MEMBER[ITE](False, E(0, 0), Cons(E(z1, 0), Nil)) -> c12(MEMBER(E(0, 0), Nil)) MEMBER[ITE](False, E(S(S(y0)), 0), Cons(E(z1, 0), Cons(E(S(S(y2)), y3), y4))) -> c12(MEMBER(E(S(S(y0)), 0), Cons(E(S(S(y2)), y3), y4))) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, 0), Cons(E(S(y1), S(y2)), y3))) -> c12(MEMBER(E(S(y0), 0), Cons(E(S(y1), S(y2)), y3))) MEMBER[ITE](False, E(S(S(y0)), 0), Cons(E(z1, 0), Cons(E(S(S(y1)), S(y2)), y3))) -> c12(MEMBER(E(S(S(y0)), 0), Cons(E(S(S(y1)), S(y2)), y3))) MEMBER[ITE](False, E(z0, 0), Cons(E(z1, 0), Cons(E(y1, S(y2)), Cons(E(y3, S(y4)), y5)))) -> c12(MEMBER(E(z0, 0), Cons(E(y1, S(y2)), Cons(E(y3, S(y4)), y5)))) MEMBER[ITE](False, E(z0, 0), Cons(E(z1, 0), Cons(E(y1, S(y2)), Cons(E(y3, 0), y4)))) -> c12(MEMBER(E(z0, 0), Cons(E(y1, S(y2)), Cons(E(y3, 0), y4)))) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, 0), Cons(E(y1, S(y2)), Cons(E(S(y3), y4), y5)))) -> c12(MEMBER(E(S(y0), 0), Cons(E(y1, S(y2)), Cons(E(S(y3), y4), y5)))) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, 0), Cons(E(y1, S(y2)), Cons(E(0, y3), y4)))) -> c12(MEMBER(E(S(y0), 0), Cons(E(y1, S(y2)), Cons(E(0, y3), y4)))) MEMBER[ITE](False, E(z0, 0), Cons(E(z1, 0), Cons(E(y1, S(y2)), Nil))) -> c12(MEMBER(E(z0, 0), Cons(E(y1, S(y2)), Nil))) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, 0), Cons(E(y1, S(y2)), Nil))) -> c12(MEMBER(E(S(y0), 0), Cons(E(y1, S(y2)), Nil))) MEMBER[ITE](False, E(S(S(y0)), 0), Cons(E(z1, 0), Cons(E(y1, S(y2)), Cons(E(S(S(y3)), y4), y5)))) -> c12(MEMBER(E(S(S(y0)), 0), Cons(E(y1, S(y2)), Cons(E(S(S(y3)), y4), y5)))) MEMBER[ITE](False, E(0, 0), Cons(E(z1, 0), Cons(E(S(y0), S(y1)), y2))) -> c12(MEMBER(E(0, 0), Cons(E(S(y0), S(y1)), y2))) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, 0), Cons(E(0, S(y1)), y2))) -> c12(MEMBER(E(S(y0), 0), Cons(E(0, S(y1)), y2))) MEMBER[ITE](False, E(0, 0), Cons(E(z1, 0), Cons(E(0, S(y0)), y1))) -> c12(MEMBER(E(0, 0), Cons(E(0, S(y0)), y1))) MEMBER[ITE](False, E(0, 0), Cons(E(z1, 0), Cons(E(y0, S(y1)), Cons(E(S(y2), y3), y4)))) -> c12(MEMBER(E(0, 0), Cons(E(y0, S(y1)), Cons(E(S(y2), y3), y4)))) MEMBER[ITE](False, E(0, 0), Cons(E(z1, 0), Cons(E(y0, S(y1)), Cons(E(0, y2), y3)))) -> c12(MEMBER(E(0, 0), Cons(E(y0, S(y1)), Cons(E(0, y2), y3)))) MEMBER[ITE](False, E(0, 0), Cons(E(z1, 0), Cons(E(y0, S(y1)), Nil))) -> c12(MEMBER(E(0, 0), Cons(E(y0, S(y1)), Nil))) ---------------------------------------- (126) Obligation: Complexity Dependency Tuples Problem Rules: reach(z0, z1, z2) -> reach[Ite](member(E(z0, z1), z2), z0, z1, z2) reach[Ite](False, z0, z1, z2) -> via(z0, z1, z2, z2) reach[Ite](True, z0, z1, z2) -> Cons(E(z0, z1), Nil) member(z0, Cons(z1, z2)) -> member[Ite](eqEdge(z0, z1), z0, Cons(z1, z2)) member(z0, Nil) -> False member[Ite](False, z0, Cons(z1, z2)) -> member(z0, z2) member[Ite](True, z0, z1) -> True eqEdge(E(z0, z1), E(z2, z3)) -> eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1) eqEdge[Ite](False, z0, z1, z2, z3) -> False eqEdge[Ite](True, z0, z1, z2, z3) -> True and(False, False) -> False and(True, False) -> False and(False, True) -> False and(True, True) -> True !EQ(S(z0), S(z1)) -> !EQ(z0, z1) !EQ(0, S(z0)) -> False !EQ(S(z0), 0) -> False !EQ(0, 0) -> True via(z0, z1, Cons(E(z2, z3), z4), z5) -> via[Ite](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5) via(z0, z1, Nil, z2) -> Nil via[Ite](True, z0, z1, Cons(E(z2, z3), z4), z5) -> via[Let](z0, z1, Cons(E(z2, z3), z4), z5, reach(z3, z1, z5)) via[Ite](False, z0, z1, Cons(z2, z3), z4) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Nil) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Cons(z5, z6)) -> Cons(z2, Cons(z5, z6)) Tuples: VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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))) MEMBER[ITE](False, E(S(x0), x1), Cons(E(S(x2), x3), x4)) -> c12(MEMBER(E(S(x0), x1), x4)) MEMBER[ITE](False, E(0, x0), Cons(E(S(x1), x2), x3)) -> c12(MEMBER(E(0, x0), x3)) MEMBER[ITE](False, E(S(x0), x1), Cons(E(0, x2), x3)) -> c12(MEMBER(E(S(x0), x1), x3)) MEMBER[ITE](False, E(0, x0), Cons(E(0, x1), x2)) -> c12(MEMBER(E(0, x0), x2)) REACH[ITE](False, x0, x1, Nil) -> c14(VIA(x0, x1, Nil, Nil)) REACH[ITE](False, x0, x1, Cons(E(x2, x3), x4)) -> c14(VIA(x0, x1, Cons(E(x2, x3), x4), Cons(E(x2, x3), x4))) REACH(x0, x1, Nil) -> c1(REACH[ITE](False, x0, x1, Nil)) REACH(x0, x1, Nil) -> c1(MEMBER(E(x0, x1), Nil)) VIA(0, x0, Nil, x4) -> c22 VIA(S(x0), x1, Nil, x4) -> c22 VIA(S(S(x0)), x1, Nil, x5) -> c22 VIA(S(0), x0, Nil, x4) -> c22 VIA(x0, x1, Nil, Nil) -> c22 !EQ'(S(S(y0)), S(S(y1))) -> c(!EQ'(S(y0), S(y1))) VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5)) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5)) MEMBER(E(x0, x1), Nil) -> c24 MEMBER(E(x0, S(x1)), Nil) -> c24 MEMBER(E(x0, 0), Nil) -> c24 MEMBER(E(S(x0), x1), Nil) -> c24 MEMBER(E(0, x0), Nil) -> c24 VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), Cons(z5, z6)) -> c8(VIA[LET](0, x0, Cons(E(0, x1), x2), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x1, x0), z5), E(x1, x0), Cons(z5, z6)), x1, x0, Cons(z5, z6))), REACH(x1, x0, Cons(z5, z6))) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(z5, z6)) -> c8(VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x3, x1), z5), E(x3, x1), Cons(z5, z6)), x3, x1, Cons(z5, z6))), REACH(x3, x1, Cons(z5, z6))) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), Cons(z5, z6)) -> c8(VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x1, x0), z5), E(x1, x0), Cons(z5, z6)), x1, x0, Cons(z5, z6))), REACH(x1, x0, Cons(z5, z6))) VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), x3) -> c8(REACH(x1, x0, x3)) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), x5) -> c8(REACH(x3, x1, x5)) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), x3) -> c8(REACH(x1, x0, x3)) VIA[LET](0, x0, Cons(E(0, x1), x2), Cons(x3, x4), Nil) -> c10(VIA(0, x0, x2, Cons(x3, x4))) VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(x5, x6), Nil) -> c10(VIA(S(S(x0)), x1, x4, Cons(x5, x6))) VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Cons(x3, x4), Nil) -> c10(VIA(S(0), x0, x2, Cons(x3, x4))) VIA(0, x0, Nil, Cons(z2, z3)) -> c22 VIA(S(x0), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(S(x0)), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(0), x0, Nil, Cons(z2, z3)) -> c22 VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), Nil) -> c8(VIA[LET](0, x0, Cons(E(0, x1), x2), Nil, Nil), REACH(x1, x0, Nil)) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Nil) -> c8(VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Nil, Nil), REACH(x3, x1, Nil)) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), Nil) -> c8(VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Nil, Nil), REACH(x1, x0, Nil)) EQEDGE(E(S(S(y0)), z1), E(S(S(y1)), z3)) -> c25(!EQ'(S(S(y0)), S(S(y1)))) EQEDGE(E(z0, S(S(y0))), E(z2, S(S(y1)))) -> c26(!EQ'(S(S(y0)), S(S(y1)))) VIA[LET](0, x0, Cons(E(0, x1), x2), Nil, Nil) -> c10(VIA(0, x0, x2, Nil)) VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Nil, Nil) -> c10(VIA(S(S(x0)), x1, x4, Nil)) VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Nil, Nil) -> c10(VIA(S(0), x0, x2, Nil)) REACH(z0, S(y1), Cons(E(y2, S(y3)), y4)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, S(y3)), y4))) REACH(z0, 0, Cons(E(y1, S(y2)), y3)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, S(y2)), y3))) REACH(z0, S(y1), Cons(E(y2, 0), y3)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, 0), y3))) REACH(z0, 0, Cons(E(y1, 0), y2)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, 0), y2))) REACH(S(y0), z1, Cons(E(S(y2), y3), y4)) -> c29(MEMBER(E(S(y0), z1), Cons(E(S(y2), y3), y4))) REACH(0, z1, Cons(E(S(y1), y2), y3)) -> c29(MEMBER(E(0, z1), Cons(E(S(y1), y2), y3))) REACH(S(y0), z1, Cons(E(0, y2), y3)) -> c29(MEMBER(E(S(y0), z1), Cons(E(0, y2), y3))) REACH(0, z1, Cons(E(0, y1), y2)) -> c29(MEMBER(E(0, z1), Cons(E(0, y1), y2))) REACH(z0, z1, Cons(E(y2, y3), y4)) -> c29(MEMBER(E(z0, z1), Cons(E(y2, y3), y4))) REACH(z0, z1, Nil) -> c29(MEMBER(E(z0, z1), Nil)) REACH(z0, S(y1), Nil) -> c29(MEMBER(E(z0, S(y1)), Nil)) REACH(z0, 0, Nil) -> c29(MEMBER(E(z0, 0), Nil)) REACH(S(y0), z1, Nil) -> c29(MEMBER(E(S(y0), z1), Nil)) REACH(0, z1, Nil) -> c29(MEMBER(E(0, z1), Nil)) VIA(S(S(y0)), z1, Cons(E(S(S(y1)), z3), z4), z5) -> c21(!EQ'(S(S(y0)), S(S(y1)))) MEMBER(E(S(S(y0)), z1), Cons(E(S(S(y2)), z3), z4)) -> c23(EQEDGE(E(S(S(y0)), z1), E(S(S(y2)), z3))) MEMBER(E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)) -> c23(EQEDGE(E(z0, S(S(y1))), E(z2, S(S(y3))))) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(S(y1), y2), y3)), z4) -> c9(VIA(0, z0, Cons(E(S(y1), y2), y3), z4)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(0, y1), y2)), z4) -> c9(VIA(0, z0, Cons(E(0, y1), y2), z4)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), z4) -> c9(VIA(0, z0, Nil, z4)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Nil) -> c9(VIA(0, z0, Nil, Nil)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Cons(y1, y2)) -> c9(VIA(0, z0, Nil, Cons(y1, y2))) VIA(0, z0, Cons(E(S(z1), z2), Cons(E(S(y3), y4), y5)), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(S(y3), y4), y5)), z4)) VIA(0, z0, Cons(E(S(z1), z2), Cons(E(0, y3), y4)), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(0, y3), y4)), z4)) VIA(0, z0, Cons(E(S(z1), z2), Nil), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), z4)) VIA(0, z0, Cons(E(S(z1), z2), Nil), Nil) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Nil)) VIA(0, z0, Cons(E(S(z1), z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Cons(y3, y4))) VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Cons(E(0, y2), y3)), z4) -> c9(VIA(S(z0), z1, Cons(E(0, y2), y3), z4)) VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4) -> c9(VIA(S(S(y0)), z1, Cons(E(S(S(y2)), y3), y4), z4)) VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), z4) -> c9(VIA(S(z0), z1, Nil, z4)) VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), z4) -> c9(VIA(S(S(y0)), z1, Nil, z4)) VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), z4) -> c9(VIA(S(0), z1, Nil, z4)) VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Nil) -> c9(VIA(S(z0), z1, Nil, Nil)) VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(S(y1)), y2), y3)), z4) -> c9(VIA(S(0), z1, Cons(E(S(S(y1)), y2), y3), z4)) VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4) -> c9(VIA(S(S(y0)), z1, Cons(E(S(0), y2), y3), z4)) VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(0), y1), y2)), z4) -> c9(VIA(S(0), z1, Cons(E(S(0), y1), y2), z4)) VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Cons(y2, y3)) -> c9(VIA(S(z0), z1, Nil, Cons(y2, y3))) VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y2, y3)) -> c9(VIA(S(S(y0)), z1, Nil, Cons(y2, y3))) VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), Cons(y1, y2)) -> c9(VIA(S(0), z1, Nil, Cons(y1, y2))) VIA(S(z0), z1, Cons(E(0, z2), Cons(E(0, y3), y4)), z4) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Cons(E(0, y3), y4)), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y3)), y4), y5)), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y3)), y4), y5)), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), z4)) VIA(S(0), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), Nil) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Nil)) VIA(S(0), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y3), y4)), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y3), y4)), z4)) VIA(S(0), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Cons(y3, y4))) VIA(S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y3, y4))) VIA(S(0), z1, Cons(E(0, z2), Nil), Cons(y2, y3)) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), Cons(y2, y3))) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(S(S(y2)), y3), y4)), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(S(S(y2)), y3), y4), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Nil), z5) -> c9(VIA(S(S(z0)), z1, Nil, z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Nil), Nil) -> c9(VIA(S(S(z0)), z1, Nil, Nil)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(S(0), y2), y3)), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(S(0), y2), y3), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Nil), Cons(y2, y3)) -> c9(VIA(S(S(z0)), z1, Nil, Cons(y2, y3))) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Cons(E(0, y3), y4))), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(0, y3), y4)), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Cons(E(S(S(y3)), y4), y5))), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(S(S(y3)), y4), y5)), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Nil)), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Nil)), Nil) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), Nil)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Cons(E(S(0), y3), y4))), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(S(0), y3), y4)), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Nil)), Cons(y3, y4)) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), Cons(y3, y4))) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Nil), z4) -> c9(VIA(S(0), z0, Nil, z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Nil), Nil) -> c9(VIA(S(0), z0, Nil, Nil)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(S(S(y1)), y2), y3)), z4) -> c9(VIA(S(0), z0, Cons(E(S(S(y1)), y2), y3), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(S(0), y1), y2)), z4) -> c9(VIA(S(0), z0, Cons(E(S(0), y1), y2), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Nil), Cons(y2, y3)) -> c9(VIA(S(0), z0, Nil, Cons(y2, y3))) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y2), Cons(E(0, y3), y4))), z4) -> c9(VIA(S(0), z0, Cons(E(0, y2), Cons(E(0, y3), y4)), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y2), Nil)), z4) -> c9(VIA(S(0), z0, Cons(E(0, y2), Nil), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y2), Nil)), Nil) -> c9(VIA(S(0), z0, Cons(E(0, y2), Nil), Nil)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y1), Cons(E(S(S(y2)), y3), y4))), z4) -> c9(VIA(S(0), z0, Cons(E(0, y1), Cons(E(S(S(y2)), y3), y4)), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y1), Cons(E(S(0), y2), y3))), z4) -> c9(VIA(S(0), z0, Cons(E(0, y1), Cons(E(S(0), y2), y3)), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y2), Nil)), Cons(y3, y4)) -> c9(VIA(S(0), z0, Cons(E(0, y2), Nil), Cons(y3, y4))) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(S(S(y2)), y3), y4)), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(S(S(y2)), y3), y4), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Nil), z4) -> c9(VIA(S(S(z0)), z1, Nil, z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Nil), Nil) -> c9(VIA(S(S(z0)), z1, Nil, Nil)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(S(0), y2), y3)), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(S(0), y2), y3), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Nil), Cons(y2, y3)) -> c9(VIA(S(S(z0)), z1, Nil, Cons(y2, y3))) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Cons(E(0, y3), y4))), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(0, y3), y4)), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Cons(E(S(S(y3)), y4), y5))), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(S(S(y3)), y4), y5)), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Nil)), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Nil)), Nil) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), Nil)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Cons(E(S(0), y3), y4))), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(S(0), y3), y4)), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Nil)), Cons(y3, y4)) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), Cons(y3, y4))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y2, S(y3)), y4))) -> c12(MEMBER(E(z0, S(z1)), Cons(E(y2, S(y3)), y4))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y2, 0), y3))) -> c12(MEMBER(E(z0, S(z1)), Cons(E(y2, 0), y3))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y2), y3), y4))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(S(y2), y3), y4))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y1), y2), y3))) -> c12(MEMBER(E(0, S(z1)), Cons(E(S(y1), y2), y3))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y2), y3))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(0, y2), y3))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y1), y2))) -> c12(MEMBER(E(0, S(z1)), Cons(E(0, y1), y2))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, S(z3)), Nil)) -> c12(MEMBER(E(z0, S(z1)), Nil)) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, S(z3)), Nil)) -> c12(MEMBER(E(S(y0), S(z1)), Nil)) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, S(z3)), Nil)) -> c12(MEMBER(E(0, S(z1)), Nil)) MEMBER[ITE](False, E(S(S(y0)), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(S(y2)), y3), y4))) -> c12(MEMBER(E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), y3), y4))) MEMBER[ITE](False, E(z0, S(S(y1))), Cons(E(z2, S(z3)), Cons(E(y2, S(S(y3))), y4))) -> c12(MEMBER(E(z0, S(S(y1))), Cons(E(y2, S(S(y3))), y4))) MEMBER(E(S(y1), S(z1)), Cons(E(S(y3), S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), S(y3)), !EQ(z1, z3)), S(y3), S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(S(y3), S(z3)), z4)), EQEDGE(E(S(y1), S(z1)), E(S(y3), S(z3)))) MEMBER(E(0, S(z1)), Cons(E(S(y2), S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, S(y2)), !EQ(z1, z3)), S(y2), S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(S(y2), S(z3)), z4)), EQEDGE(E(0, S(z1)), E(S(y2), S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(0, S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), 0), !EQ(z1, z3)), 0, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(0, S(z3)), z4)), EQEDGE(E(S(y1), S(z1)), E(0, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(0, S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, 0), !EQ(z1, z3)), 0, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(0, S(z3)), z4)), EQEDGE(E(0, S(z1)), E(0, S(z3)))) MEMBER(E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y0)), S(S(y2))), !EQ(z1, z3)), S(S(y2)), S(z3), S(S(y0)), S(z1)), E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), S(z3)), z4)), EQEDGE(E(S(S(y0)), S(z1)), E(S(S(y2)), S(z3)))) MEMBER(E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(S(y1), S(y3))), z2, S(S(y3)), z0, S(S(y1))), E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)), EQEDGE(E(z0, S(S(y1))), E(z2, S(S(y3))))) MEMBER(E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, S(y6)), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, S(z3), z0, S(z1)), E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, S(y6)), y7))), EQEDGE(E(z0, S(z1)), E(z2, S(z3)))) MEMBER(E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, 0), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, S(z3), z0, S(z1)), E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, 0), y6))), EQEDGE(E(z0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y5), y6), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), !EQ(z1, z3)), z2, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y5), y6), y7))), EQEDGE(E(S(y1), S(z1)), E(z2, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y4), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), !EQ(z1, z3)), z2, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y4), y5), y6))), EQEDGE(E(0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), !EQ(z1, z3)), z2, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y5), y6))), EQEDGE(E(S(y1), S(z1)), E(z2, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), !EQ(z1, z3)), z2, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y4), y5))), EQEDGE(E(0, S(z1)), E(z2, S(z3)))) MEMBER(E(z0, S(z1)), Cons(E(z2, S(z3)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, S(z3), z0, S(z1)), E(z0, S(z1)), Cons(E(z2, S(z3)), Nil)), EQEDGE(E(z0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, S(z3)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), !EQ(z1, z3)), z2, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, S(z3)), Nil)), EQEDGE(E(S(y1), S(z1)), E(z2, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(z2, S(z3)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), !EQ(z1, z3)), z2, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(z2, S(z3)), Nil)), EQEDGE(E(0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(S(y1)), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(S(y5)), y6), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z2), !EQ(z1, z3)), z2, S(z3), S(S(y1)), S(z1)), E(S(S(y1)), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(S(y5)), y6), y7))), EQEDGE(E(S(S(y1)), S(z1)), E(z2, S(z3)))) MEMBER(E(z0, S(S(y2))), Cons(E(z2, S(z3)), Cons(E(y5, S(S(y6))), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(S(y2), z3)), z2, S(z3), z0, S(S(y2))), E(z0, S(S(y2))), Cons(E(z2, S(z3)), Cons(E(y5, S(S(y6))), y7))), EQEDGE(E(z0, S(S(y2))), E(z2, S(z3)))) MEMBER[ITE](False, E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y1, S(y2)), y3))) -> c12(MEMBER(E(z0, 0), Cons(E(y1, S(y2)), y3))) MEMBER[ITE](False, E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y1, 0), y2))) -> c12(MEMBER(E(z0, 0), Cons(E(y1, 0), y2))) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, S(z2)), Cons(E(S(y2), y3), y4))) -> c12(MEMBER(E(S(y0), 0), Cons(E(S(y2), y3), y4))) MEMBER[ITE](False, E(0, 0), Cons(E(z1, S(z2)), Cons(E(S(y1), y2), y3))) -> c12(MEMBER(E(0, 0), Cons(E(S(y1), y2), y3))) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, S(z2)), Cons(E(0, y2), y3))) -> c12(MEMBER(E(S(y0), 0), Cons(E(0, y2), y3))) MEMBER[ITE](False, E(0, 0), Cons(E(z1, S(z2)), Cons(E(0, y1), y2))) -> c12(MEMBER(E(0, 0), Cons(E(0, y1), y2))) MEMBER[ITE](False, E(z0, 0), Cons(E(z1, S(z2)), Nil)) -> c12(MEMBER(E(z0, 0), Nil)) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, S(z2)), Nil)) -> c12(MEMBER(E(S(y0), 0), Nil)) MEMBER[ITE](False, E(0, 0), Cons(E(z1, S(z2)), Nil)) -> c12(MEMBER(E(0, 0), Nil)) MEMBER[ITE](False, E(S(S(y0)), 0), Cons(E(z1, S(z2)), Cons(E(S(S(y2)), y3), y4))) -> c12(MEMBER(E(S(S(y0)), 0), Cons(E(S(S(y2)), y3), y4))) MEMBER(E(S(y1), 0), Cons(E(S(y3), S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), S(y3)), False), S(y3), S(z2), S(y1), 0), E(S(y1), 0), Cons(E(S(y3), S(z2)), z3)), EQEDGE(E(S(y1), 0), E(S(y3), S(z2)))) MEMBER(E(S(S(y0)), 0), Cons(E(S(S(y2)), S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y0)), S(S(y2))), False), S(S(y2)), S(z2), S(S(y0)), 0), E(S(S(y0)), 0), Cons(E(S(S(y2)), S(z2)), z3)), EQEDGE(E(S(S(y0)), 0), E(S(S(y2)), S(z2)))) MEMBER(E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, S(y5)), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), False), z1, S(z2), z0, 0), E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, S(y5)), y6))), EQEDGE(E(z0, 0), E(z1, S(z2)))) MEMBER(E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, 0), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), False), z1, S(z2), z0, 0), E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, 0), y5))), EQEDGE(E(z0, 0), E(z1, S(z2)))) MEMBER(E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(S(y4), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), False), z1, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(S(y4), y5), y6))), EQEDGE(E(S(y1), 0), E(z1, S(z2)))) MEMBER(E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(0, y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), False), z1, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(0, y4), y5))), EQEDGE(E(S(y1), 0), E(z1, S(z2)))) MEMBER(E(z0, 0), Cons(E(z1, S(z2)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), False), z1, S(z2), z0, 0), E(z0, 0), Cons(E(z1, S(z2)), Nil)), EQEDGE(E(z0, 0), E(z1, S(z2)))) MEMBER(E(S(y1), 0), Cons(E(z1, S(z2)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), False), z1, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(z1, S(z2)), Nil)), EQEDGE(E(S(y1), 0), E(z1, S(z2)))) MEMBER(E(S(S(y1)), 0), Cons(E(z1, S(z2)), Cons(E(S(S(y4)), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z1), False), z1, S(z2), S(S(y1)), 0), E(S(S(y1)), 0), Cons(E(z1, S(z2)), Cons(E(S(S(y4)), y5), y6))), EQEDGE(E(S(S(y1)), 0), E(z1, S(z2)))) MEMBER(E(0, 0), Cons(E(S(y2), S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, S(y2)), False), S(y2), S(z2), 0, 0), E(0, 0), Cons(E(S(y2), S(z2)), z3))) MEMBER(E(S(y1), 0), Cons(E(0, S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), 0), False), 0, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(0, S(z2)), z3))) MEMBER(E(0, 0), Cons(E(0, S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, 0), False), 0, S(z2), 0, 0), E(0, 0), Cons(E(0, S(z2)), z3))) MEMBER(E(0, 0), Cons(E(z1, S(z2)), Cons(E(S(y3), y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), False), z1, S(z2), 0, 0), E(0, 0), Cons(E(z1, S(z2)), Cons(E(S(y3), y4), y5)))) MEMBER(E(0, 0), Cons(E(z1, S(z2)), Cons(E(0, y3), y4))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), False), z1, S(z2), 0, 0), E(0, 0), Cons(E(z1, S(z2)), Cons(E(0, y3), y4)))) MEMBER(E(0, 0), Cons(E(z1, S(z2)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), False), z1, S(z2), 0, 0), E(0, 0), Cons(E(z1, S(z2)), Nil))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y2, 0), y3))) -> c12(MEMBER(E(z0, S(z1)), Cons(E(y2, 0), y3))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, 0), Cons(E(S(y2), y3), y4))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(S(y2), y3), y4))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, 0), Cons(E(S(y1), y2), y3))) -> c12(MEMBER(E(0, S(z1)), Cons(E(S(y1), y2), y3))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, 0), Cons(E(0, y2), y3))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(0, y2), y3))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, 0), Cons(E(0, y1), y2))) -> c12(MEMBER(E(0, S(z1)), Cons(E(0, y1), y2))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, 0), Nil)) -> c12(MEMBER(E(z0, S(z1)), Nil)) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, 0), Nil)) -> c12(MEMBER(E(S(y0), S(z1)), Nil)) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, 0), Nil)) -> c12(MEMBER(E(0, S(z1)), Nil)) MEMBER[ITE](False, E(S(S(y0)), S(z1)), Cons(E(z2, 0), Cons(E(S(S(y2)), y3), y4))) -> c12(MEMBER(E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), y3), y4))) MEMBER[ITE](False, E(z0, S(S(y1))), Cons(E(z2, 0), Cons(E(y2, S(S(y3))), y4))) -> c12(MEMBER(E(z0, S(S(y1))), Cons(E(y2, S(S(y3))), y4))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, 0), Cons(E(S(y2), S(y3)), y4))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(S(y2), S(y3)), y4))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, 0), Cons(E(S(y1), S(y2)), y3))) -> c12(MEMBER(E(0, S(z1)), Cons(E(S(y1), S(y2)), y3))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, 0), Cons(E(0, S(y2)), y3))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(0, S(y2)), y3))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, 0), Cons(E(0, S(y1)), y2))) -> c12(MEMBER(E(0, S(z1)), Cons(E(0, S(y1)), y2))) MEMBER[ITE](False, E(S(S(y0)), S(z1)), Cons(E(z2, 0), Cons(E(S(S(y2)), S(y3)), y4))) -> c12(MEMBER(E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), S(y3)), y4))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y2, S(y3)), Cons(E(y4, S(y5)), y6)))) -> c12(MEMBER(E(z0, S(z1)), Cons(E(y2, S(y3)), Cons(E(y4, S(y5)), y6)))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y2, S(y3)), Cons(E(y4, 0), y5)))) -> c12(MEMBER(E(z0, S(z1)), Cons(E(y2, S(y3)), Cons(E(y4, 0), y5)))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, 0), Cons(E(y2, S(y3)), Cons(E(S(y4), y5), y6)))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(y2, S(y3)), Cons(E(S(y4), y5), y6)))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, 0), Cons(E(y1, S(y2)), Cons(E(S(y3), y4), y5)))) -> c12(MEMBER(E(0, S(z1)), Cons(E(y1, S(y2)), Cons(E(S(y3), y4), y5)))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, 0), Cons(E(y2, S(y3)), Cons(E(0, y4), y5)))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(y2, S(y3)), Cons(E(0, y4), y5)))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, 0), Cons(E(y1, S(y2)), Cons(E(0, y3), y4)))) -> c12(MEMBER(E(0, S(z1)), Cons(E(y1, S(y2)), Cons(E(0, y3), y4)))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y2, S(y3)), Nil))) -> c12(MEMBER(E(z0, S(z1)), Cons(E(y2, S(y3)), Nil))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, 0), Cons(E(y2, S(y3)), Nil))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(y2, S(y3)), Nil))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, 0), Cons(E(y1, S(y2)), Nil))) -> c12(MEMBER(E(0, S(z1)), Cons(E(y1, S(y2)), Nil))) MEMBER[ITE](False, E(S(S(y0)), S(z1)), Cons(E(z2, 0), Cons(E(y2, S(y3)), Cons(E(S(S(y4)), y5), y6)))) -> c12(MEMBER(E(S(S(y0)), S(z1)), Cons(E(y2, S(y3)), Cons(E(S(S(y4)), y5), y6)))) MEMBER[ITE](False, E(z0, S(S(y1))), Cons(E(z2, 0), Cons(E(y2, S(y3)), Cons(E(y4, S(S(y5))), y6)))) -> c12(MEMBER(E(z0, S(S(y1))), Cons(E(y2, S(y3)), Cons(E(y4, S(S(y5))), y6)))) MEMBER(E(S(y1), S(z1)), Cons(E(S(y3), 0), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), S(y3)), False), S(y3), 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(S(y3), 0), z3)), EQEDGE(E(S(y1), S(z1)), E(S(y3), 0))) MEMBER(E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), 0), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y0)), S(S(y2))), False), S(S(y2)), 0, S(S(y0)), S(z1)), E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), 0), z3)), EQEDGE(E(S(S(y0)), S(z1)), E(S(S(y2)), 0))) MEMBER(E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, 0), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(z1)), E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, 0), y5))), EQEDGE(E(z0, S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(S(y4), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(S(y4), y5), y6))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(0, y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(0, y4), y5))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(z0, S(z1)), Cons(E(z2, 0), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(z1)), E(z0, S(z1)), Cons(E(z2, 0), Nil)), EQEDGE(E(z0, S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Nil)), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(S(S(y4)), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z2), False), z2, 0, S(S(y1)), S(z1)), E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(S(S(y4)), y5), y6))), EQEDGE(E(S(S(y1)), S(z1)), E(z2, 0))) MEMBER(E(z0, S(S(y2))), Cons(E(z2, 0), Cons(E(y4, S(S(y5))), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(S(y2))), E(z0, S(S(y2))), Cons(E(z2, 0), Cons(E(y4, S(S(y5))), y6))), EQEDGE(E(z0, S(S(y2))), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(S(y4), S(y5)), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(S(y4), S(y5)), y6))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(0, S(y4)), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(0, S(y4)), y5))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(S(S(y4)), S(y5)), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z2), False), z2, 0, S(S(y1)), S(z1)), E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(S(S(y4)), S(y5)), y6))), EQEDGE(E(S(S(y1)), S(z1)), E(z2, 0))) MEMBER(E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, S(y7)), y8)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(z1)), E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, S(y7)), y8)))), EQEDGE(E(z0, S(z1)), E(z2, 0))) MEMBER(E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, 0), y7)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(z1)), E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, 0), y7)))), EQEDGE(E(z0, S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(S(y6), y7), y8)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(S(y6), y7), y8)))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(0, y6), y7)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(0, y6), y7)))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Nil))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(z1)), E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Nil))), EQEDGE(E(z0, S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Nil))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Nil))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(S(S(y6)), y7), y8)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z2), False), z2, 0, S(S(y1)), S(z1)), E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(S(S(y6)), y7), y8)))), EQEDGE(E(S(S(y1)), S(z1)), E(z2, 0))) MEMBER(E(z0, S(S(y2))), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, S(S(y7))), y8)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(S(y2))), E(z0, S(S(y2))), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, S(S(y7))), y8)))), EQEDGE(E(z0, S(S(y2))), E(z2, 0))) MEMBER(E(0, S(z1)), Cons(E(S(y2), 0), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, S(y2)), False), S(y2), 0, 0, S(z1)), E(0, S(z1)), Cons(E(S(y2), 0), z3))) MEMBER(E(S(y1), S(z1)), Cons(E(0, 0), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), 0), False), 0, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(0, 0), z3))) MEMBER(E(0, S(z1)), Cons(E(0, 0), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, 0), False), 0, 0, 0, S(z1)), E(0, S(z1)), Cons(E(0, 0), z3))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(S(y3), y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(S(y3), y4), y5)))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(0, y3), y4))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(0, y3), y4)))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Nil))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(S(y3), S(y4)), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(S(y3), S(y4)), y5)))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(0, S(y3)), y4))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(0, S(y3)), y4)))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Cons(E(S(y5), y6), y7)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Cons(E(S(y5), y6), y7))))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Cons(E(0, y5), y6)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Cons(E(0, y5), y6))))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Nil))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Nil)))) MEMBER[ITE](False, E(z0, 0), Cons(E(z1, 0), Cons(E(y1, 0), y2))) -> c12(MEMBER(E(z0, 0), Cons(E(y1, 0), y2))) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, 0), Cons(E(S(y2), y3), y4))) -> c12(MEMBER(E(S(y0), 0), Cons(E(S(y2), y3), y4))) MEMBER[ITE](False, E(0, 0), Cons(E(z1, 0), Cons(E(S(y1), y2), y3))) -> c12(MEMBER(E(0, 0), Cons(E(S(y1), y2), y3))) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, 0), Cons(E(0, y2), y3))) -> c12(MEMBER(E(S(y0), 0), Cons(E(0, y2), y3))) MEMBER[ITE](False, E(0, 0), Cons(E(z1, 0), Cons(E(0, y1), y2))) -> c12(MEMBER(E(0, 0), Cons(E(0, y1), y2))) MEMBER[ITE](False, E(z0, 0), Cons(E(z1, 0), Nil)) -> c12(MEMBER(E(z0, 0), Nil)) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, 0), Nil)) -> c12(MEMBER(E(S(y0), 0), Nil)) MEMBER[ITE](False, E(0, 0), Cons(E(z1, 0), Nil)) -> c12(MEMBER(E(0, 0), Nil)) MEMBER[ITE](False, E(S(S(y0)), 0), Cons(E(z1, 0), Cons(E(S(S(y2)), y3), y4))) -> c12(MEMBER(E(S(S(y0)), 0), Cons(E(S(S(y2)), y3), y4))) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, 0), Cons(E(S(y1), S(y2)), y3))) -> c12(MEMBER(E(S(y0), 0), Cons(E(S(y1), S(y2)), y3))) MEMBER[ITE](False, E(S(S(y0)), 0), Cons(E(z1, 0), Cons(E(S(S(y1)), S(y2)), y3))) -> c12(MEMBER(E(S(S(y0)), 0), Cons(E(S(S(y1)), S(y2)), y3))) MEMBER[ITE](False, E(z0, 0), Cons(E(z1, 0), Cons(E(y1, S(y2)), Cons(E(y3, S(y4)), y5)))) -> c12(MEMBER(E(z0, 0), Cons(E(y1, S(y2)), Cons(E(y3, S(y4)), y5)))) MEMBER[ITE](False, E(z0, 0), Cons(E(z1, 0), Cons(E(y1, S(y2)), Cons(E(y3, 0), y4)))) -> c12(MEMBER(E(z0, 0), Cons(E(y1, S(y2)), Cons(E(y3, 0), y4)))) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, 0), Cons(E(y1, S(y2)), Cons(E(S(y3), y4), y5)))) -> c12(MEMBER(E(S(y0), 0), Cons(E(y1, S(y2)), Cons(E(S(y3), y4), y5)))) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, 0), Cons(E(y1, S(y2)), Cons(E(0, y3), y4)))) -> c12(MEMBER(E(S(y0), 0), Cons(E(y1, S(y2)), Cons(E(0, y3), y4)))) MEMBER[ITE](False, E(z0, 0), Cons(E(z1, 0), Cons(E(y1, S(y2)), Nil))) -> c12(MEMBER(E(z0, 0), Cons(E(y1, S(y2)), Nil))) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, 0), Cons(E(y1, S(y2)), Nil))) -> c12(MEMBER(E(S(y0), 0), Cons(E(y1, S(y2)), Nil))) MEMBER[ITE](False, E(S(S(y0)), 0), Cons(E(z1, 0), Cons(E(y1, S(y2)), Cons(E(S(S(y3)), y4), y5)))) -> c12(MEMBER(E(S(S(y0)), 0), Cons(E(y1, S(y2)), Cons(E(S(S(y3)), y4), y5)))) MEMBER[ITE](False, E(0, 0), Cons(E(z1, 0), Cons(E(S(y0), S(y1)), y2))) -> c12(MEMBER(E(0, 0), Cons(E(S(y0), S(y1)), y2))) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, 0), Cons(E(0, S(y1)), y2))) -> c12(MEMBER(E(S(y0), 0), Cons(E(0, S(y1)), y2))) MEMBER[ITE](False, E(0, 0), Cons(E(z1, 0), Cons(E(0, S(y0)), y1))) -> c12(MEMBER(E(0, 0), Cons(E(0, S(y0)), y1))) MEMBER[ITE](False, E(0, 0), Cons(E(z1, 0), Cons(E(y0, S(y1)), Cons(E(S(y2), y3), y4)))) -> c12(MEMBER(E(0, 0), Cons(E(y0, S(y1)), Cons(E(S(y2), y3), y4)))) MEMBER[ITE](False, E(0, 0), Cons(E(z1, 0), Cons(E(y0, S(y1)), Cons(E(0, y2), y3)))) -> c12(MEMBER(E(0, 0), Cons(E(y0, S(y1)), Cons(E(0, y2), y3)))) MEMBER[ITE](False, E(0, 0), Cons(E(z1, 0), Cons(E(y0, S(y1)), Nil))) -> c12(MEMBER(E(0, 0), Cons(E(y0, S(y1)), Nil))) S tuples: VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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))) REACH(x0, x1, Nil) -> c1(REACH[ITE](False, x0, x1, Nil)) REACH(x0, x1, Nil) -> c1(MEMBER(E(x0, x1), Nil)) VIA(0, x0, Nil, x4) -> c22 VIA(S(x0), x1, Nil, x4) -> c22 VIA(S(S(x0)), x1, Nil, x5) -> c22 VIA(S(0), x0, Nil, x4) -> c22 VIA(x0, x1, Nil, Nil) -> c22 VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5)) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5)) MEMBER(E(x0, x1), Nil) -> c24 MEMBER(E(x0, S(x1)), Nil) -> c24 MEMBER(E(x0, 0), Nil) -> c24 MEMBER(E(S(x0), x1), Nil) -> c24 MEMBER(E(0, x0), Nil) -> c24 VIA(0, x0, Nil, Cons(z2, z3)) -> c22 VIA(S(x0), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(S(x0)), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(0), x0, Nil, Cons(z2, z3)) -> c22 EQEDGE(E(S(S(y0)), z1), E(S(S(y1)), z3)) -> c25(!EQ'(S(S(y0)), S(S(y1)))) EQEDGE(E(z0, S(S(y0))), E(z2, S(S(y1)))) -> c26(!EQ'(S(S(y0)), S(S(y1)))) REACH(z0, S(y1), Cons(E(y2, S(y3)), y4)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, S(y3)), y4))) REACH(z0, 0, Cons(E(y1, S(y2)), y3)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, S(y2)), y3))) REACH(z0, S(y1), Cons(E(y2, 0), y3)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, 0), y3))) REACH(z0, 0, Cons(E(y1, 0), y2)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, 0), y2))) REACH(S(y0), z1, Cons(E(S(y2), y3), y4)) -> c29(MEMBER(E(S(y0), z1), Cons(E(S(y2), y3), y4))) REACH(0, z1, Cons(E(S(y1), y2), y3)) -> c29(MEMBER(E(0, z1), Cons(E(S(y1), y2), y3))) REACH(S(y0), z1, Cons(E(0, y2), y3)) -> c29(MEMBER(E(S(y0), z1), Cons(E(0, y2), y3))) REACH(0, z1, Cons(E(0, y1), y2)) -> c29(MEMBER(E(0, z1), Cons(E(0, y1), y2))) REACH(z0, z1, Cons(E(y2, y3), y4)) -> c29(MEMBER(E(z0, z1), Cons(E(y2, y3), y4))) REACH(z0, z1, Nil) -> c29(MEMBER(E(z0, z1), Nil)) REACH(z0, S(y1), Nil) -> c29(MEMBER(E(z0, S(y1)), Nil)) REACH(z0, 0, Nil) -> c29(MEMBER(E(z0, 0), Nil)) REACH(S(y0), z1, Nil) -> c29(MEMBER(E(S(y0), z1), Nil)) REACH(0, z1, Nil) -> c29(MEMBER(E(0, z1), Nil)) VIA(S(S(y0)), z1, Cons(E(S(S(y1)), z3), z4), z5) -> c21(!EQ'(S(S(y0)), S(S(y1)))) MEMBER(E(S(S(y0)), z1), Cons(E(S(S(y2)), z3), z4)) -> c23(EQEDGE(E(S(S(y0)), z1), E(S(S(y2)), z3))) MEMBER(E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)) -> c23(EQEDGE(E(z0, S(S(y1))), E(z2, S(S(y3))))) VIA(0, z0, Cons(E(S(z1), z2), Cons(E(S(y3), y4), y5)), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(S(y3), y4), y5)), z4)) VIA(0, z0, Cons(E(S(z1), z2), Cons(E(0, y3), y4)), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(0, y3), y4)), z4)) VIA(0, z0, Cons(E(S(z1), z2), Nil), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), z4)) VIA(0, z0, Cons(E(S(z1), z2), Nil), Nil) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Nil)) VIA(0, z0, Cons(E(S(z1), z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Cons(y3, y4))) VIA(S(z0), z1, Cons(E(0, z2), Cons(E(0, y3), y4)), z4) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Cons(E(0, y3), y4)), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y3)), y4), y5)), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y3)), y4), y5)), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), z4)) VIA(S(0), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), Nil) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Nil)) VIA(S(0), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y3), y4)), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y3), y4)), z4)) VIA(S(0), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Cons(y3, y4))) VIA(S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y3, y4))) VIA(S(0), z1, Cons(E(0, z2), Nil), Cons(y2, y3)) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), Cons(y2, y3))) MEMBER(E(S(y1), S(z1)), Cons(E(S(y3), S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), S(y3)), !EQ(z1, z3)), S(y3), S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(S(y3), S(z3)), z4)), EQEDGE(E(S(y1), S(z1)), E(S(y3), S(z3)))) MEMBER(E(0, S(z1)), Cons(E(S(y2), S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, S(y2)), !EQ(z1, z3)), S(y2), S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(S(y2), S(z3)), z4)), EQEDGE(E(0, S(z1)), E(S(y2), S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(0, S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), 0), !EQ(z1, z3)), 0, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(0, S(z3)), z4)), EQEDGE(E(S(y1), S(z1)), E(0, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(0, S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, 0), !EQ(z1, z3)), 0, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(0, S(z3)), z4)), EQEDGE(E(0, S(z1)), E(0, S(z3)))) MEMBER(E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y0)), S(S(y2))), !EQ(z1, z3)), S(S(y2)), S(z3), S(S(y0)), S(z1)), E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), S(z3)), z4)), EQEDGE(E(S(S(y0)), S(z1)), E(S(S(y2)), S(z3)))) MEMBER(E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(S(y1), S(y3))), z2, S(S(y3)), z0, S(S(y1))), E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)), EQEDGE(E(z0, S(S(y1))), E(z2, S(S(y3))))) MEMBER(E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, S(y6)), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, S(z3), z0, S(z1)), E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, S(y6)), y7))), EQEDGE(E(z0, S(z1)), E(z2, S(z3)))) MEMBER(E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, 0), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, S(z3), z0, S(z1)), E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, 0), y6))), EQEDGE(E(z0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y5), y6), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), !EQ(z1, z3)), z2, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y5), y6), y7))), EQEDGE(E(S(y1), S(z1)), E(z2, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y4), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), !EQ(z1, z3)), z2, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y4), y5), y6))), EQEDGE(E(0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), !EQ(z1, z3)), z2, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y5), y6))), EQEDGE(E(S(y1), S(z1)), E(z2, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), !EQ(z1, z3)), z2, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y4), y5))), EQEDGE(E(0, S(z1)), E(z2, S(z3)))) MEMBER(E(z0, S(z1)), Cons(E(z2, S(z3)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, S(z3), z0, S(z1)), E(z0, S(z1)), Cons(E(z2, S(z3)), Nil)), EQEDGE(E(z0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, S(z3)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), !EQ(z1, z3)), z2, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, S(z3)), Nil)), EQEDGE(E(S(y1), S(z1)), E(z2, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(z2, S(z3)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), !EQ(z1, z3)), z2, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(z2, S(z3)), Nil)), EQEDGE(E(0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(S(y1)), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(S(y5)), y6), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z2), !EQ(z1, z3)), z2, S(z3), S(S(y1)), S(z1)), E(S(S(y1)), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(S(y5)), y6), y7))), EQEDGE(E(S(S(y1)), S(z1)), E(z2, S(z3)))) MEMBER(E(z0, S(S(y2))), Cons(E(z2, S(z3)), Cons(E(y5, S(S(y6))), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(S(y2), z3)), z2, S(z3), z0, S(S(y2))), E(z0, S(S(y2))), Cons(E(z2, S(z3)), Cons(E(y5, S(S(y6))), y7))), EQEDGE(E(z0, S(S(y2))), E(z2, S(z3)))) MEMBER(E(S(y1), 0), Cons(E(S(y3), S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), S(y3)), False), S(y3), S(z2), S(y1), 0), E(S(y1), 0), Cons(E(S(y3), S(z2)), z3)), EQEDGE(E(S(y1), 0), E(S(y3), S(z2)))) MEMBER(E(S(S(y0)), 0), Cons(E(S(S(y2)), S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y0)), S(S(y2))), False), S(S(y2)), S(z2), S(S(y0)), 0), E(S(S(y0)), 0), Cons(E(S(S(y2)), S(z2)), z3)), EQEDGE(E(S(S(y0)), 0), E(S(S(y2)), S(z2)))) MEMBER(E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, S(y5)), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), False), z1, S(z2), z0, 0), E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, S(y5)), y6))), EQEDGE(E(z0, 0), E(z1, S(z2)))) MEMBER(E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, 0), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), False), z1, S(z2), z0, 0), E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, 0), y5))), EQEDGE(E(z0, 0), E(z1, S(z2)))) MEMBER(E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(S(y4), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), False), z1, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(S(y4), y5), y6))), EQEDGE(E(S(y1), 0), E(z1, S(z2)))) MEMBER(E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(0, y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), False), z1, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(0, y4), y5))), EQEDGE(E(S(y1), 0), E(z1, S(z2)))) MEMBER(E(z0, 0), Cons(E(z1, S(z2)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), False), z1, S(z2), z0, 0), E(z0, 0), Cons(E(z1, S(z2)), Nil)), EQEDGE(E(z0, 0), E(z1, S(z2)))) MEMBER(E(S(y1), 0), Cons(E(z1, S(z2)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), False), z1, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(z1, S(z2)), Nil)), EQEDGE(E(S(y1), 0), E(z1, S(z2)))) MEMBER(E(S(S(y1)), 0), Cons(E(z1, S(z2)), Cons(E(S(S(y4)), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z1), False), z1, S(z2), S(S(y1)), 0), E(S(S(y1)), 0), Cons(E(z1, S(z2)), Cons(E(S(S(y4)), y5), y6))), EQEDGE(E(S(S(y1)), 0), E(z1, S(z2)))) MEMBER(E(0, 0), Cons(E(S(y2), S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, S(y2)), False), S(y2), S(z2), 0, 0), E(0, 0), Cons(E(S(y2), S(z2)), z3))) MEMBER(E(S(y1), 0), Cons(E(0, S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), 0), False), 0, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(0, S(z2)), z3))) MEMBER(E(0, 0), Cons(E(0, S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, 0), False), 0, S(z2), 0, 0), E(0, 0), Cons(E(0, S(z2)), z3))) MEMBER(E(0, 0), Cons(E(z1, S(z2)), Cons(E(S(y3), y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), False), z1, S(z2), 0, 0), E(0, 0), Cons(E(z1, S(z2)), Cons(E(S(y3), y4), y5)))) MEMBER(E(0, 0), Cons(E(z1, S(z2)), Cons(E(0, y3), y4))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), False), z1, S(z2), 0, 0), E(0, 0), Cons(E(z1, S(z2)), Cons(E(0, y3), y4)))) MEMBER(E(0, 0), Cons(E(z1, S(z2)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), False), z1, S(z2), 0, 0), E(0, 0), Cons(E(z1, S(z2)), Nil))) MEMBER(E(S(y1), S(z1)), Cons(E(S(y3), 0), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), S(y3)), False), S(y3), 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(S(y3), 0), z3)), EQEDGE(E(S(y1), S(z1)), E(S(y3), 0))) MEMBER(E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), 0), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y0)), S(S(y2))), False), S(S(y2)), 0, S(S(y0)), S(z1)), E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), 0), z3)), EQEDGE(E(S(S(y0)), S(z1)), E(S(S(y2)), 0))) MEMBER(E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, 0), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(z1)), E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, 0), y5))), EQEDGE(E(z0, S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(S(y4), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(S(y4), y5), y6))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(0, y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(0, y4), y5))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(z0, S(z1)), Cons(E(z2, 0), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(z1)), E(z0, S(z1)), Cons(E(z2, 0), Nil)), EQEDGE(E(z0, S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Nil)), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(S(S(y4)), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z2), False), z2, 0, S(S(y1)), S(z1)), E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(S(S(y4)), y5), y6))), EQEDGE(E(S(S(y1)), S(z1)), E(z2, 0))) MEMBER(E(z0, S(S(y2))), Cons(E(z2, 0), Cons(E(y4, S(S(y5))), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(S(y2))), E(z0, S(S(y2))), Cons(E(z2, 0), Cons(E(y4, S(S(y5))), y6))), EQEDGE(E(z0, S(S(y2))), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(S(y4), S(y5)), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(S(y4), S(y5)), y6))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(0, S(y4)), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(0, S(y4)), y5))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(S(S(y4)), S(y5)), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z2), False), z2, 0, S(S(y1)), S(z1)), E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(S(S(y4)), S(y5)), y6))), EQEDGE(E(S(S(y1)), S(z1)), E(z2, 0))) MEMBER(E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, S(y7)), y8)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(z1)), E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, S(y7)), y8)))), EQEDGE(E(z0, S(z1)), E(z2, 0))) MEMBER(E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, 0), y7)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(z1)), E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, 0), y7)))), EQEDGE(E(z0, S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(S(y6), y7), y8)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(S(y6), y7), y8)))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(0, y6), y7)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(0, y6), y7)))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Nil))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(z1)), E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Nil))), EQEDGE(E(z0, S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Nil))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Nil))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(S(S(y6)), y7), y8)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z2), False), z2, 0, S(S(y1)), S(z1)), E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(S(S(y6)), y7), y8)))), EQEDGE(E(S(S(y1)), S(z1)), E(z2, 0))) MEMBER(E(z0, S(S(y2))), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, S(S(y7))), y8)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(S(y2))), E(z0, S(S(y2))), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, S(S(y7))), y8)))), EQEDGE(E(z0, S(S(y2))), E(z2, 0))) MEMBER(E(0, S(z1)), Cons(E(S(y2), 0), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, S(y2)), False), S(y2), 0, 0, S(z1)), E(0, S(z1)), Cons(E(S(y2), 0), z3))) MEMBER(E(S(y1), S(z1)), Cons(E(0, 0), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), 0), False), 0, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(0, 0), z3))) MEMBER(E(0, S(z1)), Cons(E(0, 0), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, 0), False), 0, 0, 0, S(z1)), E(0, S(z1)), Cons(E(0, 0), z3))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(S(y3), y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(S(y3), y4), y5)))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(0, y3), y4))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(0, y3), y4)))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Nil))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(S(y3), S(y4)), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(S(y3), S(y4)), y5)))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(0, S(y3)), y4))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(0, S(y3)), y4)))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Cons(E(S(y5), y6), y7)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Cons(E(S(y5), y6), y7))))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Cons(E(0, y5), y6)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Cons(E(0, y5), y6))))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Nil))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Nil)))) K tuples:none Defined Rule Symbols: reach_3, reach[Ite]_4, member_2, member[Ite]_3, eqEdge_2, eqEdge[Ite]_5, and_2, !EQ_2, via_4, via[Ite]_5, via[Let]_5 Defined Pair Symbols: VIA_4, MEMBER_2, REACH_3, MEMBER[ITE]_3, REACH[ITE]_4, !EQ'_2, VIA[ITE]_5, VIA[LET]_5, EQEDGE_2 Compound Symbols: c21_1, c21_2, c23_2, c29_2, c12_1, c14_1, c1_1, c22, c_1, c24, c8_2, c8_1, c10_1, c25_1, c26_1, c29_1, c23_1, c9_1 ---------------------------------------- (127) CdtRewritingProof (BOTH BOUNDS(ID, ID)) Used rewriting to replace MEMBER(E(S(y1), S(z1)), Cons(E(S(y3), S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), S(y3)), !EQ(z1, z3)), S(y3), S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(S(y3), S(z3)), z4)), EQEDGE(E(S(y1), S(z1)), E(S(y3), S(z3)))) by MEMBER(E(S(z0), S(z1)), Cons(E(S(z2), S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), S(z2), S(z3), S(z0), S(z1)), E(S(z0), S(z1)), Cons(E(S(z2), S(z3)), z4)), EQEDGE(E(S(z0), S(z1)), E(S(z2), S(z3)))) ---------------------------------------- (128) Obligation: Complexity Dependency Tuples Problem Rules: reach(z0, z1, z2) -> reach[Ite](member(E(z0, z1), z2), z0, z1, z2) reach[Ite](False, z0, z1, z2) -> via(z0, z1, z2, z2) reach[Ite](True, z0, z1, z2) -> Cons(E(z0, z1), Nil) member(z0, Cons(z1, z2)) -> member[Ite](eqEdge(z0, z1), z0, Cons(z1, z2)) member(z0, Nil) -> False member[Ite](False, z0, Cons(z1, z2)) -> member(z0, z2) member[Ite](True, z0, z1) -> True eqEdge(E(z0, z1), E(z2, z3)) -> eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1) eqEdge[Ite](False, z0, z1, z2, z3) -> False eqEdge[Ite](True, z0, z1, z2, z3) -> True and(False, False) -> False and(True, False) -> False and(False, True) -> False and(True, True) -> True !EQ(S(z0), S(z1)) -> !EQ(z0, z1) !EQ(0, S(z0)) -> False !EQ(S(z0), 0) -> False !EQ(0, 0) -> True via(z0, z1, Cons(E(z2, z3), z4), z5) -> via[Ite](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5) via(z0, z1, Nil, z2) -> Nil via[Ite](True, z0, z1, Cons(E(z2, z3), z4), z5) -> via[Let](z0, z1, Cons(E(z2, z3), z4), z5, reach(z3, z1, z5)) via[Ite](False, z0, z1, Cons(z2, z3), z4) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Nil) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Cons(z5, z6)) -> Cons(z2, Cons(z5, z6)) Tuples: VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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))) MEMBER[ITE](False, E(S(x0), x1), Cons(E(S(x2), x3), x4)) -> c12(MEMBER(E(S(x0), x1), x4)) MEMBER[ITE](False, E(0, x0), Cons(E(S(x1), x2), x3)) -> c12(MEMBER(E(0, x0), x3)) MEMBER[ITE](False, E(S(x0), x1), Cons(E(0, x2), x3)) -> c12(MEMBER(E(S(x0), x1), x3)) MEMBER[ITE](False, E(0, x0), Cons(E(0, x1), x2)) -> c12(MEMBER(E(0, x0), x2)) REACH[ITE](False, x0, x1, Nil) -> c14(VIA(x0, x1, Nil, Nil)) REACH[ITE](False, x0, x1, Cons(E(x2, x3), x4)) -> c14(VIA(x0, x1, Cons(E(x2, x3), x4), Cons(E(x2, x3), x4))) REACH(x0, x1, Nil) -> c1(REACH[ITE](False, x0, x1, Nil)) REACH(x0, x1, Nil) -> c1(MEMBER(E(x0, x1), Nil)) VIA(0, x0, Nil, x4) -> c22 VIA(S(x0), x1, Nil, x4) -> c22 VIA(S(S(x0)), x1, Nil, x5) -> c22 VIA(S(0), x0, Nil, x4) -> c22 VIA(x0, x1, Nil, Nil) -> c22 !EQ'(S(S(y0)), S(S(y1))) -> c(!EQ'(S(y0), S(y1))) VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5)) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5)) MEMBER(E(x0, x1), Nil) -> c24 MEMBER(E(x0, S(x1)), Nil) -> c24 MEMBER(E(x0, 0), Nil) -> c24 MEMBER(E(S(x0), x1), Nil) -> c24 MEMBER(E(0, x0), Nil) -> c24 VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), Cons(z5, z6)) -> c8(VIA[LET](0, x0, Cons(E(0, x1), x2), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x1, x0), z5), E(x1, x0), Cons(z5, z6)), x1, x0, Cons(z5, z6))), REACH(x1, x0, Cons(z5, z6))) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(z5, z6)) -> c8(VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x3, x1), z5), E(x3, x1), Cons(z5, z6)), x3, x1, Cons(z5, z6))), REACH(x3, x1, Cons(z5, z6))) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), Cons(z5, z6)) -> c8(VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x1, x0), z5), E(x1, x0), Cons(z5, z6)), x1, x0, Cons(z5, z6))), REACH(x1, x0, Cons(z5, z6))) VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), x3) -> c8(REACH(x1, x0, x3)) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), x5) -> c8(REACH(x3, x1, x5)) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), x3) -> c8(REACH(x1, x0, x3)) VIA[LET](0, x0, Cons(E(0, x1), x2), Cons(x3, x4), Nil) -> c10(VIA(0, x0, x2, Cons(x3, x4))) VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(x5, x6), Nil) -> c10(VIA(S(S(x0)), x1, x4, Cons(x5, x6))) VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Cons(x3, x4), Nil) -> c10(VIA(S(0), x0, x2, Cons(x3, x4))) VIA(0, x0, Nil, Cons(z2, z3)) -> c22 VIA(S(x0), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(S(x0)), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(0), x0, Nil, Cons(z2, z3)) -> c22 VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), Nil) -> c8(VIA[LET](0, x0, Cons(E(0, x1), x2), Nil, Nil), REACH(x1, x0, Nil)) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Nil) -> c8(VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Nil, Nil), REACH(x3, x1, Nil)) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), Nil) -> c8(VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Nil, Nil), REACH(x1, x0, Nil)) EQEDGE(E(S(S(y0)), z1), E(S(S(y1)), z3)) -> c25(!EQ'(S(S(y0)), S(S(y1)))) EQEDGE(E(z0, S(S(y0))), E(z2, S(S(y1)))) -> c26(!EQ'(S(S(y0)), S(S(y1)))) VIA[LET](0, x0, Cons(E(0, x1), x2), Nil, Nil) -> c10(VIA(0, x0, x2, Nil)) VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Nil, Nil) -> c10(VIA(S(S(x0)), x1, x4, Nil)) VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Nil, Nil) -> c10(VIA(S(0), x0, x2, Nil)) REACH(z0, S(y1), Cons(E(y2, S(y3)), y4)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, S(y3)), y4))) REACH(z0, 0, Cons(E(y1, S(y2)), y3)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, S(y2)), y3))) REACH(z0, S(y1), Cons(E(y2, 0), y3)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, 0), y3))) REACH(z0, 0, Cons(E(y1, 0), y2)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, 0), y2))) REACH(S(y0), z1, Cons(E(S(y2), y3), y4)) -> c29(MEMBER(E(S(y0), z1), Cons(E(S(y2), y3), y4))) REACH(0, z1, Cons(E(S(y1), y2), y3)) -> c29(MEMBER(E(0, z1), Cons(E(S(y1), y2), y3))) REACH(S(y0), z1, Cons(E(0, y2), y3)) -> c29(MEMBER(E(S(y0), z1), Cons(E(0, y2), y3))) REACH(0, z1, Cons(E(0, y1), y2)) -> c29(MEMBER(E(0, z1), Cons(E(0, y1), y2))) REACH(z0, z1, Cons(E(y2, y3), y4)) -> c29(MEMBER(E(z0, z1), Cons(E(y2, y3), y4))) REACH(z0, z1, Nil) -> c29(MEMBER(E(z0, z1), Nil)) REACH(z0, S(y1), Nil) -> c29(MEMBER(E(z0, S(y1)), Nil)) REACH(z0, 0, Nil) -> c29(MEMBER(E(z0, 0), Nil)) REACH(S(y0), z1, Nil) -> c29(MEMBER(E(S(y0), z1), Nil)) REACH(0, z1, Nil) -> c29(MEMBER(E(0, z1), Nil)) VIA(S(S(y0)), z1, Cons(E(S(S(y1)), z3), z4), z5) -> c21(!EQ'(S(S(y0)), S(S(y1)))) MEMBER(E(S(S(y0)), z1), Cons(E(S(S(y2)), z3), z4)) -> c23(EQEDGE(E(S(S(y0)), z1), E(S(S(y2)), z3))) MEMBER(E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)) -> c23(EQEDGE(E(z0, S(S(y1))), E(z2, S(S(y3))))) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(S(y1), y2), y3)), z4) -> c9(VIA(0, z0, Cons(E(S(y1), y2), y3), z4)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(0, y1), y2)), z4) -> c9(VIA(0, z0, Cons(E(0, y1), y2), z4)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), z4) -> c9(VIA(0, z0, Nil, z4)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Nil) -> c9(VIA(0, z0, Nil, Nil)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Cons(y1, y2)) -> c9(VIA(0, z0, Nil, Cons(y1, y2))) VIA(0, z0, Cons(E(S(z1), z2), Cons(E(S(y3), y4), y5)), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(S(y3), y4), y5)), z4)) VIA(0, z0, Cons(E(S(z1), z2), Cons(E(0, y3), y4)), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(0, y3), y4)), z4)) VIA(0, z0, Cons(E(S(z1), z2), Nil), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), z4)) VIA(0, z0, Cons(E(S(z1), z2), Nil), Nil) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Nil)) VIA(0, z0, Cons(E(S(z1), z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Cons(y3, y4))) VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Cons(E(0, y2), y3)), z4) -> c9(VIA(S(z0), z1, Cons(E(0, y2), y3), z4)) VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4) -> c9(VIA(S(S(y0)), z1, Cons(E(S(S(y2)), y3), y4), z4)) VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), z4) -> c9(VIA(S(z0), z1, Nil, z4)) VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), z4) -> c9(VIA(S(S(y0)), z1, Nil, z4)) VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), z4) -> c9(VIA(S(0), z1, Nil, z4)) VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Nil) -> c9(VIA(S(z0), z1, Nil, Nil)) VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(S(y1)), y2), y3)), z4) -> c9(VIA(S(0), z1, Cons(E(S(S(y1)), y2), y3), z4)) VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4) -> c9(VIA(S(S(y0)), z1, Cons(E(S(0), y2), y3), z4)) VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(0), y1), y2)), z4) -> c9(VIA(S(0), z1, Cons(E(S(0), y1), y2), z4)) VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Cons(y2, y3)) -> c9(VIA(S(z0), z1, Nil, Cons(y2, y3))) VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y2, y3)) -> c9(VIA(S(S(y0)), z1, Nil, Cons(y2, y3))) VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), Cons(y1, y2)) -> c9(VIA(S(0), z1, Nil, Cons(y1, y2))) VIA(S(z0), z1, Cons(E(0, z2), Cons(E(0, y3), y4)), z4) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Cons(E(0, y3), y4)), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y3)), y4), y5)), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y3)), y4), y5)), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), z4)) VIA(S(0), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), Nil) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Nil)) VIA(S(0), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y3), y4)), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y3), y4)), z4)) VIA(S(0), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Cons(y3, y4))) VIA(S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y3, y4))) VIA(S(0), z1, Cons(E(0, z2), Nil), Cons(y2, y3)) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), Cons(y2, y3))) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(S(S(y2)), y3), y4)), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(S(S(y2)), y3), y4), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Nil), z5) -> c9(VIA(S(S(z0)), z1, Nil, z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Nil), Nil) -> c9(VIA(S(S(z0)), z1, Nil, Nil)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(S(0), y2), y3)), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(S(0), y2), y3), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Nil), Cons(y2, y3)) -> c9(VIA(S(S(z0)), z1, Nil, Cons(y2, y3))) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Cons(E(0, y3), y4))), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(0, y3), y4)), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Cons(E(S(S(y3)), y4), y5))), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(S(S(y3)), y4), y5)), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Nil)), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Nil)), Nil) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), Nil)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Cons(E(S(0), y3), y4))), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(S(0), y3), y4)), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Nil)), Cons(y3, y4)) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), Cons(y3, y4))) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Nil), z4) -> c9(VIA(S(0), z0, Nil, z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Nil), Nil) -> c9(VIA(S(0), z0, Nil, Nil)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(S(S(y1)), y2), y3)), z4) -> c9(VIA(S(0), z0, Cons(E(S(S(y1)), y2), y3), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(S(0), y1), y2)), z4) -> c9(VIA(S(0), z0, Cons(E(S(0), y1), y2), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Nil), Cons(y2, y3)) -> c9(VIA(S(0), z0, Nil, Cons(y2, y3))) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y2), Cons(E(0, y3), y4))), z4) -> c9(VIA(S(0), z0, Cons(E(0, y2), Cons(E(0, y3), y4)), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y2), Nil)), z4) -> c9(VIA(S(0), z0, Cons(E(0, y2), Nil), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y2), Nil)), Nil) -> c9(VIA(S(0), z0, Cons(E(0, y2), Nil), Nil)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y1), Cons(E(S(S(y2)), y3), y4))), z4) -> c9(VIA(S(0), z0, Cons(E(0, y1), Cons(E(S(S(y2)), y3), y4)), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y1), Cons(E(S(0), y2), y3))), z4) -> c9(VIA(S(0), z0, Cons(E(0, y1), Cons(E(S(0), y2), y3)), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y2), Nil)), Cons(y3, y4)) -> c9(VIA(S(0), z0, Cons(E(0, y2), Nil), Cons(y3, y4))) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(S(S(y2)), y3), y4)), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(S(S(y2)), y3), y4), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Nil), z4) -> c9(VIA(S(S(z0)), z1, Nil, z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Nil), Nil) -> c9(VIA(S(S(z0)), z1, Nil, Nil)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(S(0), y2), y3)), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(S(0), y2), y3), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Nil), Cons(y2, y3)) -> c9(VIA(S(S(z0)), z1, Nil, Cons(y2, y3))) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Cons(E(0, y3), y4))), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(0, y3), y4)), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Cons(E(S(S(y3)), y4), y5))), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(S(S(y3)), y4), y5)), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Nil)), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Nil)), Nil) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), Nil)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Cons(E(S(0), y3), y4))), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(S(0), y3), y4)), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Nil)), Cons(y3, y4)) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), Cons(y3, y4))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y2, S(y3)), y4))) -> c12(MEMBER(E(z0, S(z1)), Cons(E(y2, S(y3)), y4))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y2, 0), y3))) -> c12(MEMBER(E(z0, S(z1)), Cons(E(y2, 0), y3))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y2), y3), y4))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(S(y2), y3), y4))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y1), y2), y3))) -> c12(MEMBER(E(0, S(z1)), Cons(E(S(y1), y2), y3))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y2), y3))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(0, y2), y3))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y1), y2))) -> c12(MEMBER(E(0, S(z1)), Cons(E(0, y1), y2))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, S(z3)), Nil)) -> c12(MEMBER(E(z0, S(z1)), Nil)) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, S(z3)), Nil)) -> c12(MEMBER(E(S(y0), S(z1)), Nil)) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, S(z3)), Nil)) -> c12(MEMBER(E(0, S(z1)), Nil)) MEMBER[ITE](False, E(S(S(y0)), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(S(y2)), y3), y4))) -> c12(MEMBER(E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), y3), y4))) MEMBER[ITE](False, E(z0, S(S(y1))), Cons(E(z2, S(z3)), Cons(E(y2, S(S(y3))), y4))) -> c12(MEMBER(E(z0, S(S(y1))), Cons(E(y2, S(S(y3))), y4))) MEMBER(E(0, S(z1)), Cons(E(S(y2), S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, S(y2)), !EQ(z1, z3)), S(y2), S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(S(y2), S(z3)), z4)), EQEDGE(E(0, S(z1)), E(S(y2), S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(0, S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), 0), !EQ(z1, z3)), 0, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(0, S(z3)), z4)), EQEDGE(E(S(y1), S(z1)), E(0, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(0, S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, 0), !EQ(z1, z3)), 0, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(0, S(z3)), z4)), EQEDGE(E(0, S(z1)), E(0, S(z3)))) MEMBER(E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y0)), S(S(y2))), !EQ(z1, z3)), S(S(y2)), S(z3), S(S(y0)), S(z1)), E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), S(z3)), z4)), EQEDGE(E(S(S(y0)), S(z1)), E(S(S(y2)), S(z3)))) MEMBER(E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(S(y1), S(y3))), z2, S(S(y3)), z0, S(S(y1))), E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)), EQEDGE(E(z0, S(S(y1))), E(z2, S(S(y3))))) MEMBER(E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, S(y6)), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, S(z3), z0, S(z1)), E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, S(y6)), y7))), EQEDGE(E(z0, S(z1)), E(z2, S(z3)))) MEMBER(E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, 0), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, S(z3), z0, S(z1)), E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, 0), y6))), EQEDGE(E(z0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y5), y6), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), !EQ(z1, z3)), z2, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y5), y6), y7))), EQEDGE(E(S(y1), S(z1)), E(z2, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y4), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), !EQ(z1, z3)), z2, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y4), y5), y6))), EQEDGE(E(0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), !EQ(z1, z3)), z2, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y5), y6))), EQEDGE(E(S(y1), S(z1)), E(z2, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), !EQ(z1, z3)), z2, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y4), y5))), EQEDGE(E(0, S(z1)), E(z2, S(z3)))) MEMBER(E(z0, S(z1)), Cons(E(z2, S(z3)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, S(z3), z0, S(z1)), E(z0, S(z1)), Cons(E(z2, S(z3)), Nil)), EQEDGE(E(z0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, S(z3)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), !EQ(z1, z3)), z2, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, S(z3)), Nil)), EQEDGE(E(S(y1), S(z1)), E(z2, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(z2, S(z3)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), !EQ(z1, z3)), z2, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(z2, S(z3)), Nil)), EQEDGE(E(0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(S(y1)), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(S(y5)), y6), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z2), !EQ(z1, z3)), z2, S(z3), S(S(y1)), S(z1)), E(S(S(y1)), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(S(y5)), y6), y7))), EQEDGE(E(S(S(y1)), S(z1)), E(z2, S(z3)))) MEMBER(E(z0, S(S(y2))), Cons(E(z2, S(z3)), Cons(E(y5, S(S(y6))), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(S(y2), z3)), z2, S(z3), z0, S(S(y2))), E(z0, S(S(y2))), Cons(E(z2, S(z3)), Cons(E(y5, S(S(y6))), y7))), EQEDGE(E(z0, S(S(y2))), E(z2, S(z3)))) MEMBER[ITE](False, E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y1, S(y2)), y3))) -> c12(MEMBER(E(z0, 0), Cons(E(y1, S(y2)), y3))) MEMBER[ITE](False, E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y1, 0), y2))) -> c12(MEMBER(E(z0, 0), Cons(E(y1, 0), y2))) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, S(z2)), Cons(E(S(y2), y3), y4))) -> c12(MEMBER(E(S(y0), 0), Cons(E(S(y2), y3), y4))) MEMBER[ITE](False, E(0, 0), Cons(E(z1, S(z2)), Cons(E(S(y1), y2), y3))) -> c12(MEMBER(E(0, 0), Cons(E(S(y1), y2), y3))) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, S(z2)), Cons(E(0, y2), y3))) -> c12(MEMBER(E(S(y0), 0), Cons(E(0, y2), y3))) MEMBER[ITE](False, E(0, 0), Cons(E(z1, S(z2)), Cons(E(0, y1), y2))) -> c12(MEMBER(E(0, 0), Cons(E(0, y1), y2))) MEMBER[ITE](False, E(z0, 0), Cons(E(z1, S(z2)), Nil)) -> c12(MEMBER(E(z0, 0), Nil)) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, S(z2)), Nil)) -> c12(MEMBER(E(S(y0), 0), Nil)) MEMBER[ITE](False, E(0, 0), Cons(E(z1, S(z2)), Nil)) -> c12(MEMBER(E(0, 0), Nil)) MEMBER[ITE](False, E(S(S(y0)), 0), Cons(E(z1, S(z2)), Cons(E(S(S(y2)), y3), y4))) -> c12(MEMBER(E(S(S(y0)), 0), Cons(E(S(S(y2)), y3), y4))) MEMBER(E(S(y1), 0), Cons(E(S(y3), S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), S(y3)), False), S(y3), S(z2), S(y1), 0), E(S(y1), 0), Cons(E(S(y3), S(z2)), z3)), EQEDGE(E(S(y1), 0), E(S(y3), S(z2)))) MEMBER(E(S(S(y0)), 0), Cons(E(S(S(y2)), S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y0)), S(S(y2))), False), S(S(y2)), S(z2), S(S(y0)), 0), E(S(S(y0)), 0), Cons(E(S(S(y2)), S(z2)), z3)), EQEDGE(E(S(S(y0)), 0), E(S(S(y2)), S(z2)))) MEMBER(E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, S(y5)), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), False), z1, S(z2), z0, 0), E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, S(y5)), y6))), EQEDGE(E(z0, 0), E(z1, S(z2)))) MEMBER(E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, 0), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), False), z1, S(z2), z0, 0), E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, 0), y5))), EQEDGE(E(z0, 0), E(z1, S(z2)))) MEMBER(E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(S(y4), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), False), z1, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(S(y4), y5), y6))), EQEDGE(E(S(y1), 0), E(z1, S(z2)))) MEMBER(E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(0, y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), False), z1, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(0, y4), y5))), EQEDGE(E(S(y1), 0), E(z1, S(z2)))) MEMBER(E(z0, 0), Cons(E(z1, S(z2)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), False), z1, S(z2), z0, 0), E(z0, 0), Cons(E(z1, S(z2)), Nil)), EQEDGE(E(z0, 0), E(z1, S(z2)))) MEMBER(E(S(y1), 0), Cons(E(z1, S(z2)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), False), z1, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(z1, S(z2)), Nil)), EQEDGE(E(S(y1), 0), E(z1, S(z2)))) MEMBER(E(S(S(y1)), 0), Cons(E(z1, S(z2)), Cons(E(S(S(y4)), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z1), False), z1, S(z2), S(S(y1)), 0), E(S(S(y1)), 0), Cons(E(z1, S(z2)), Cons(E(S(S(y4)), y5), y6))), EQEDGE(E(S(S(y1)), 0), E(z1, S(z2)))) MEMBER(E(0, 0), Cons(E(S(y2), S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, S(y2)), False), S(y2), S(z2), 0, 0), E(0, 0), Cons(E(S(y2), S(z2)), z3))) MEMBER(E(S(y1), 0), Cons(E(0, S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), 0), False), 0, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(0, S(z2)), z3))) MEMBER(E(0, 0), Cons(E(0, S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, 0), False), 0, S(z2), 0, 0), E(0, 0), Cons(E(0, S(z2)), z3))) MEMBER(E(0, 0), Cons(E(z1, S(z2)), Cons(E(S(y3), y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), False), z1, S(z2), 0, 0), E(0, 0), Cons(E(z1, S(z2)), Cons(E(S(y3), y4), y5)))) MEMBER(E(0, 0), Cons(E(z1, S(z2)), Cons(E(0, y3), y4))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), False), z1, S(z2), 0, 0), E(0, 0), Cons(E(z1, S(z2)), Cons(E(0, y3), y4)))) MEMBER(E(0, 0), Cons(E(z1, S(z2)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), False), z1, S(z2), 0, 0), E(0, 0), Cons(E(z1, S(z2)), Nil))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y2, 0), y3))) -> c12(MEMBER(E(z0, S(z1)), Cons(E(y2, 0), y3))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, 0), Cons(E(S(y2), y3), y4))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(S(y2), y3), y4))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, 0), Cons(E(S(y1), y2), y3))) -> c12(MEMBER(E(0, S(z1)), Cons(E(S(y1), y2), y3))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, 0), Cons(E(0, y2), y3))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(0, y2), y3))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, 0), Cons(E(0, y1), y2))) -> c12(MEMBER(E(0, S(z1)), Cons(E(0, y1), y2))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, 0), Nil)) -> c12(MEMBER(E(z0, S(z1)), Nil)) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, 0), Nil)) -> c12(MEMBER(E(S(y0), S(z1)), Nil)) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, 0), Nil)) -> c12(MEMBER(E(0, S(z1)), Nil)) MEMBER[ITE](False, E(S(S(y0)), S(z1)), Cons(E(z2, 0), Cons(E(S(S(y2)), y3), y4))) -> c12(MEMBER(E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), y3), y4))) MEMBER[ITE](False, E(z0, S(S(y1))), Cons(E(z2, 0), Cons(E(y2, S(S(y3))), y4))) -> c12(MEMBER(E(z0, S(S(y1))), Cons(E(y2, S(S(y3))), y4))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, 0), Cons(E(S(y2), S(y3)), y4))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(S(y2), S(y3)), y4))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, 0), Cons(E(S(y1), S(y2)), y3))) -> c12(MEMBER(E(0, S(z1)), Cons(E(S(y1), S(y2)), y3))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, 0), Cons(E(0, S(y2)), y3))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(0, S(y2)), y3))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, 0), Cons(E(0, S(y1)), y2))) -> c12(MEMBER(E(0, S(z1)), Cons(E(0, S(y1)), y2))) MEMBER[ITE](False, E(S(S(y0)), S(z1)), Cons(E(z2, 0), Cons(E(S(S(y2)), S(y3)), y4))) -> c12(MEMBER(E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), S(y3)), y4))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y2, S(y3)), Cons(E(y4, S(y5)), y6)))) -> c12(MEMBER(E(z0, S(z1)), Cons(E(y2, S(y3)), Cons(E(y4, S(y5)), y6)))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y2, S(y3)), Cons(E(y4, 0), y5)))) -> c12(MEMBER(E(z0, S(z1)), Cons(E(y2, S(y3)), Cons(E(y4, 0), y5)))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, 0), Cons(E(y2, S(y3)), Cons(E(S(y4), y5), y6)))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(y2, S(y3)), Cons(E(S(y4), y5), y6)))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, 0), Cons(E(y1, S(y2)), Cons(E(S(y3), y4), y5)))) -> c12(MEMBER(E(0, S(z1)), Cons(E(y1, S(y2)), Cons(E(S(y3), y4), y5)))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, 0), Cons(E(y2, S(y3)), Cons(E(0, y4), y5)))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(y2, S(y3)), Cons(E(0, y4), y5)))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, 0), Cons(E(y1, S(y2)), Cons(E(0, y3), y4)))) -> c12(MEMBER(E(0, S(z1)), Cons(E(y1, S(y2)), Cons(E(0, y3), y4)))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y2, S(y3)), Nil))) -> c12(MEMBER(E(z0, S(z1)), Cons(E(y2, S(y3)), Nil))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, 0), Cons(E(y2, S(y3)), Nil))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(y2, S(y3)), Nil))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, 0), Cons(E(y1, S(y2)), Nil))) -> c12(MEMBER(E(0, S(z1)), Cons(E(y1, S(y2)), Nil))) MEMBER[ITE](False, E(S(S(y0)), S(z1)), Cons(E(z2, 0), Cons(E(y2, S(y3)), Cons(E(S(S(y4)), y5), y6)))) -> c12(MEMBER(E(S(S(y0)), S(z1)), Cons(E(y2, S(y3)), Cons(E(S(S(y4)), y5), y6)))) MEMBER[ITE](False, E(z0, S(S(y1))), Cons(E(z2, 0), Cons(E(y2, S(y3)), Cons(E(y4, S(S(y5))), y6)))) -> c12(MEMBER(E(z0, S(S(y1))), Cons(E(y2, S(y3)), Cons(E(y4, S(S(y5))), y6)))) MEMBER(E(S(y1), S(z1)), Cons(E(S(y3), 0), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), S(y3)), False), S(y3), 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(S(y3), 0), z3)), EQEDGE(E(S(y1), S(z1)), E(S(y3), 0))) MEMBER(E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), 0), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y0)), S(S(y2))), False), S(S(y2)), 0, S(S(y0)), S(z1)), E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), 0), z3)), EQEDGE(E(S(S(y0)), S(z1)), E(S(S(y2)), 0))) MEMBER(E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, 0), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(z1)), E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, 0), y5))), EQEDGE(E(z0, S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(S(y4), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(S(y4), y5), y6))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(0, y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(0, y4), y5))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(z0, S(z1)), Cons(E(z2, 0), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(z1)), E(z0, S(z1)), Cons(E(z2, 0), Nil)), EQEDGE(E(z0, S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Nil)), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(S(S(y4)), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z2), False), z2, 0, S(S(y1)), S(z1)), E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(S(S(y4)), y5), y6))), EQEDGE(E(S(S(y1)), S(z1)), E(z2, 0))) MEMBER(E(z0, S(S(y2))), Cons(E(z2, 0), Cons(E(y4, S(S(y5))), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(S(y2))), E(z0, S(S(y2))), Cons(E(z2, 0), Cons(E(y4, S(S(y5))), y6))), EQEDGE(E(z0, S(S(y2))), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(S(y4), S(y5)), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(S(y4), S(y5)), y6))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(0, S(y4)), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(0, S(y4)), y5))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(S(S(y4)), S(y5)), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z2), False), z2, 0, S(S(y1)), S(z1)), E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(S(S(y4)), S(y5)), y6))), EQEDGE(E(S(S(y1)), S(z1)), E(z2, 0))) MEMBER(E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, S(y7)), y8)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(z1)), E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, S(y7)), y8)))), EQEDGE(E(z0, S(z1)), E(z2, 0))) MEMBER(E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, 0), y7)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(z1)), E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, 0), y7)))), EQEDGE(E(z0, S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(S(y6), y7), y8)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(S(y6), y7), y8)))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(0, y6), y7)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(0, y6), y7)))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Nil))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(z1)), E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Nil))), EQEDGE(E(z0, S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Nil))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Nil))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(S(S(y6)), y7), y8)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z2), False), z2, 0, S(S(y1)), S(z1)), E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(S(S(y6)), y7), y8)))), EQEDGE(E(S(S(y1)), S(z1)), E(z2, 0))) MEMBER(E(z0, S(S(y2))), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, S(S(y7))), y8)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(S(y2))), E(z0, S(S(y2))), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, S(S(y7))), y8)))), EQEDGE(E(z0, S(S(y2))), E(z2, 0))) MEMBER(E(0, S(z1)), Cons(E(S(y2), 0), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, S(y2)), False), S(y2), 0, 0, S(z1)), E(0, S(z1)), Cons(E(S(y2), 0), z3))) MEMBER(E(S(y1), S(z1)), Cons(E(0, 0), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), 0), False), 0, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(0, 0), z3))) MEMBER(E(0, S(z1)), Cons(E(0, 0), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, 0), False), 0, 0, 0, S(z1)), E(0, S(z1)), Cons(E(0, 0), z3))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(S(y3), y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(S(y3), y4), y5)))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(0, y3), y4))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(0, y3), y4)))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Nil))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(S(y3), S(y4)), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(S(y3), S(y4)), y5)))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(0, S(y3)), y4))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(0, S(y3)), y4)))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Cons(E(S(y5), y6), y7)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Cons(E(S(y5), y6), y7))))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Cons(E(0, y5), y6)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Cons(E(0, y5), y6))))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Nil))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Nil)))) MEMBER[ITE](False, E(z0, 0), Cons(E(z1, 0), Cons(E(y1, 0), y2))) -> c12(MEMBER(E(z0, 0), Cons(E(y1, 0), y2))) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, 0), Cons(E(S(y2), y3), y4))) -> c12(MEMBER(E(S(y0), 0), Cons(E(S(y2), y3), y4))) MEMBER[ITE](False, E(0, 0), Cons(E(z1, 0), Cons(E(S(y1), y2), y3))) -> c12(MEMBER(E(0, 0), Cons(E(S(y1), y2), y3))) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, 0), Cons(E(0, y2), y3))) -> c12(MEMBER(E(S(y0), 0), Cons(E(0, y2), y3))) MEMBER[ITE](False, E(0, 0), Cons(E(z1, 0), Cons(E(0, y1), y2))) -> c12(MEMBER(E(0, 0), Cons(E(0, y1), y2))) MEMBER[ITE](False, E(z0, 0), Cons(E(z1, 0), Nil)) -> c12(MEMBER(E(z0, 0), Nil)) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, 0), Nil)) -> c12(MEMBER(E(S(y0), 0), Nil)) MEMBER[ITE](False, E(0, 0), Cons(E(z1, 0), Nil)) -> c12(MEMBER(E(0, 0), Nil)) MEMBER[ITE](False, E(S(S(y0)), 0), Cons(E(z1, 0), Cons(E(S(S(y2)), y3), y4))) -> c12(MEMBER(E(S(S(y0)), 0), Cons(E(S(S(y2)), y3), y4))) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, 0), Cons(E(S(y1), S(y2)), y3))) -> c12(MEMBER(E(S(y0), 0), Cons(E(S(y1), S(y2)), y3))) MEMBER[ITE](False, E(S(S(y0)), 0), Cons(E(z1, 0), Cons(E(S(S(y1)), S(y2)), y3))) -> c12(MEMBER(E(S(S(y0)), 0), Cons(E(S(S(y1)), S(y2)), y3))) MEMBER[ITE](False, E(z0, 0), Cons(E(z1, 0), Cons(E(y1, S(y2)), Cons(E(y3, S(y4)), y5)))) -> c12(MEMBER(E(z0, 0), Cons(E(y1, S(y2)), Cons(E(y3, S(y4)), y5)))) MEMBER[ITE](False, E(z0, 0), Cons(E(z1, 0), Cons(E(y1, S(y2)), Cons(E(y3, 0), y4)))) -> c12(MEMBER(E(z0, 0), Cons(E(y1, S(y2)), Cons(E(y3, 0), y4)))) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, 0), Cons(E(y1, S(y2)), Cons(E(S(y3), y4), y5)))) -> c12(MEMBER(E(S(y0), 0), Cons(E(y1, S(y2)), Cons(E(S(y3), y4), y5)))) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, 0), Cons(E(y1, S(y2)), Cons(E(0, y3), y4)))) -> c12(MEMBER(E(S(y0), 0), Cons(E(y1, S(y2)), Cons(E(0, y3), y4)))) MEMBER[ITE](False, E(z0, 0), Cons(E(z1, 0), Cons(E(y1, S(y2)), Nil))) -> c12(MEMBER(E(z0, 0), Cons(E(y1, S(y2)), Nil))) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, 0), Cons(E(y1, S(y2)), Nil))) -> c12(MEMBER(E(S(y0), 0), Cons(E(y1, S(y2)), Nil))) MEMBER[ITE](False, E(S(S(y0)), 0), Cons(E(z1, 0), Cons(E(y1, S(y2)), Cons(E(S(S(y3)), y4), y5)))) -> c12(MEMBER(E(S(S(y0)), 0), Cons(E(y1, S(y2)), Cons(E(S(S(y3)), y4), y5)))) MEMBER[ITE](False, E(0, 0), Cons(E(z1, 0), Cons(E(S(y0), S(y1)), y2))) -> c12(MEMBER(E(0, 0), Cons(E(S(y0), S(y1)), y2))) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, 0), Cons(E(0, S(y1)), y2))) -> c12(MEMBER(E(S(y0), 0), Cons(E(0, S(y1)), y2))) MEMBER[ITE](False, E(0, 0), Cons(E(z1, 0), Cons(E(0, S(y0)), y1))) -> c12(MEMBER(E(0, 0), Cons(E(0, S(y0)), y1))) MEMBER[ITE](False, E(0, 0), Cons(E(z1, 0), Cons(E(y0, S(y1)), Cons(E(S(y2), y3), y4)))) -> c12(MEMBER(E(0, 0), Cons(E(y0, S(y1)), Cons(E(S(y2), y3), y4)))) MEMBER[ITE](False, E(0, 0), Cons(E(z1, 0), Cons(E(y0, S(y1)), Cons(E(0, y2), y3)))) -> c12(MEMBER(E(0, 0), Cons(E(y0, S(y1)), Cons(E(0, y2), y3)))) MEMBER[ITE](False, E(0, 0), Cons(E(z1, 0), Cons(E(y0, S(y1)), Nil))) -> c12(MEMBER(E(0, 0), Cons(E(y0, S(y1)), Nil))) MEMBER(E(S(z0), S(z1)), Cons(E(S(z2), S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), S(z2), S(z3), S(z0), S(z1)), E(S(z0), S(z1)), Cons(E(S(z2), S(z3)), z4)), EQEDGE(E(S(z0), S(z1)), E(S(z2), S(z3)))) S tuples: VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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))) REACH(x0, x1, Nil) -> c1(REACH[ITE](False, x0, x1, Nil)) REACH(x0, x1, Nil) -> c1(MEMBER(E(x0, x1), Nil)) VIA(0, x0, Nil, x4) -> c22 VIA(S(x0), x1, Nil, x4) -> c22 VIA(S(S(x0)), x1, Nil, x5) -> c22 VIA(S(0), x0, Nil, x4) -> c22 VIA(x0, x1, Nil, Nil) -> c22 VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5)) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5)) MEMBER(E(x0, x1), Nil) -> c24 MEMBER(E(x0, S(x1)), Nil) -> c24 MEMBER(E(x0, 0), Nil) -> c24 MEMBER(E(S(x0), x1), Nil) -> c24 MEMBER(E(0, x0), Nil) -> c24 VIA(0, x0, Nil, Cons(z2, z3)) -> c22 VIA(S(x0), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(S(x0)), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(0), x0, Nil, Cons(z2, z3)) -> c22 EQEDGE(E(S(S(y0)), z1), E(S(S(y1)), z3)) -> c25(!EQ'(S(S(y0)), S(S(y1)))) EQEDGE(E(z0, S(S(y0))), E(z2, S(S(y1)))) -> c26(!EQ'(S(S(y0)), S(S(y1)))) REACH(z0, S(y1), Cons(E(y2, S(y3)), y4)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, S(y3)), y4))) REACH(z0, 0, Cons(E(y1, S(y2)), y3)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, S(y2)), y3))) REACH(z0, S(y1), Cons(E(y2, 0), y3)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, 0), y3))) REACH(z0, 0, Cons(E(y1, 0), y2)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, 0), y2))) REACH(S(y0), z1, Cons(E(S(y2), y3), y4)) -> c29(MEMBER(E(S(y0), z1), Cons(E(S(y2), y3), y4))) REACH(0, z1, Cons(E(S(y1), y2), y3)) -> c29(MEMBER(E(0, z1), Cons(E(S(y1), y2), y3))) REACH(S(y0), z1, Cons(E(0, y2), y3)) -> c29(MEMBER(E(S(y0), z1), Cons(E(0, y2), y3))) REACH(0, z1, Cons(E(0, y1), y2)) -> c29(MEMBER(E(0, z1), Cons(E(0, y1), y2))) REACH(z0, z1, Cons(E(y2, y3), y4)) -> c29(MEMBER(E(z0, z1), Cons(E(y2, y3), y4))) REACH(z0, z1, Nil) -> c29(MEMBER(E(z0, z1), Nil)) REACH(z0, S(y1), Nil) -> c29(MEMBER(E(z0, S(y1)), Nil)) REACH(z0, 0, Nil) -> c29(MEMBER(E(z0, 0), Nil)) REACH(S(y0), z1, Nil) -> c29(MEMBER(E(S(y0), z1), Nil)) REACH(0, z1, Nil) -> c29(MEMBER(E(0, z1), Nil)) VIA(S(S(y0)), z1, Cons(E(S(S(y1)), z3), z4), z5) -> c21(!EQ'(S(S(y0)), S(S(y1)))) MEMBER(E(S(S(y0)), z1), Cons(E(S(S(y2)), z3), z4)) -> c23(EQEDGE(E(S(S(y0)), z1), E(S(S(y2)), z3))) MEMBER(E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)) -> c23(EQEDGE(E(z0, S(S(y1))), E(z2, S(S(y3))))) VIA(0, z0, Cons(E(S(z1), z2), Cons(E(S(y3), y4), y5)), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(S(y3), y4), y5)), z4)) VIA(0, z0, Cons(E(S(z1), z2), Cons(E(0, y3), y4)), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(0, y3), y4)), z4)) VIA(0, z0, Cons(E(S(z1), z2), Nil), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), z4)) VIA(0, z0, Cons(E(S(z1), z2), Nil), Nil) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Nil)) VIA(0, z0, Cons(E(S(z1), z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Cons(y3, y4))) VIA(S(z0), z1, Cons(E(0, z2), Cons(E(0, y3), y4)), z4) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Cons(E(0, y3), y4)), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y3)), y4), y5)), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y3)), y4), y5)), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), z4)) VIA(S(0), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), Nil) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Nil)) VIA(S(0), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y3), y4)), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y3), y4)), z4)) VIA(S(0), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Cons(y3, y4))) VIA(S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y3, y4))) VIA(S(0), z1, Cons(E(0, z2), Nil), Cons(y2, y3)) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), Cons(y2, y3))) MEMBER(E(0, S(z1)), Cons(E(S(y2), S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, S(y2)), !EQ(z1, z3)), S(y2), S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(S(y2), S(z3)), z4)), EQEDGE(E(0, S(z1)), E(S(y2), S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(0, S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), 0), !EQ(z1, z3)), 0, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(0, S(z3)), z4)), EQEDGE(E(S(y1), S(z1)), E(0, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(0, S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, 0), !EQ(z1, z3)), 0, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(0, S(z3)), z4)), EQEDGE(E(0, S(z1)), E(0, S(z3)))) MEMBER(E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y0)), S(S(y2))), !EQ(z1, z3)), S(S(y2)), S(z3), S(S(y0)), S(z1)), E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), S(z3)), z4)), EQEDGE(E(S(S(y0)), S(z1)), E(S(S(y2)), S(z3)))) MEMBER(E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(S(y1), S(y3))), z2, S(S(y3)), z0, S(S(y1))), E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)), EQEDGE(E(z0, S(S(y1))), E(z2, S(S(y3))))) MEMBER(E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, S(y6)), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, S(z3), z0, S(z1)), E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, S(y6)), y7))), EQEDGE(E(z0, S(z1)), E(z2, S(z3)))) MEMBER(E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, 0), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, S(z3), z0, S(z1)), E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, 0), y6))), EQEDGE(E(z0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y5), y6), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), !EQ(z1, z3)), z2, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y5), y6), y7))), EQEDGE(E(S(y1), S(z1)), E(z2, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y4), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), !EQ(z1, z3)), z2, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y4), y5), y6))), EQEDGE(E(0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), !EQ(z1, z3)), z2, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y5), y6))), EQEDGE(E(S(y1), S(z1)), E(z2, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), !EQ(z1, z3)), z2, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y4), y5))), EQEDGE(E(0, S(z1)), E(z2, S(z3)))) MEMBER(E(z0, S(z1)), Cons(E(z2, S(z3)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, S(z3), z0, S(z1)), E(z0, S(z1)), Cons(E(z2, S(z3)), Nil)), EQEDGE(E(z0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, S(z3)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), !EQ(z1, z3)), z2, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, S(z3)), Nil)), EQEDGE(E(S(y1), S(z1)), E(z2, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(z2, S(z3)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), !EQ(z1, z3)), z2, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(z2, S(z3)), Nil)), EQEDGE(E(0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(S(y1)), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(S(y5)), y6), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z2), !EQ(z1, z3)), z2, S(z3), S(S(y1)), S(z1)), E(S(S(y1)), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(S(y5)), y6), y7))), EQEDGE(E(S(S(y1)), S(z1)), E(z2, S(z3)))) MEMBER(E(z0, S(S(y2))), Cons(E(z2, S(z3)), Cons(E(y5, S(S(y6))), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(S(y2), z3)), z2, S(z3), z0, S(S(y2))), E(z0, S(S(y2))), Cons(E(z2, S(z3)), Cons(E(y5, S(S(y6))), y7))), EQEDGE(E(z0, S(S(y2))), E(z2, S(z3)))) MEMBER(E(S(y1), 0), Cons(E(S(y3), S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), S(y3)), False), S(y3), S(z2), S(y1), 0), E(S(y1), 0), Cons(E(S(y3), S(z2)), z3)), EQEDGE(E(S(y1), 0), E(S(y3), S(z2)))) MEMBER(E(S(S(y0)), 0), Cons(E(S(S(y2)), S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y0)), S(S(y2))), False), S(S(y2)), S(z2), S(S(y0)), 0), E(S(S(y0)), 0), Cons(E(S(S(y2)), S(z2)), z3)), EQEDGE(E(S(S(y0)), 0), E(S(S(y2)), S(z2)))) MEMBER(E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, S(y5)), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), False), z1, S(z2), z0, 0), E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, S(y5)), y6))), EQEDGE(E(z0, 0), E(z1, S(z2)))) MEMBER(E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, 0), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), False), z1, S(z2), z0, 0), E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, 0), y5))), EQEDGE(E(z0, 0), E(z1, S(z2)))) MEMBER(E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(S(y4), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), False), z1, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(S(y4), y5), y6))), EQEDGE(E(S(y1), 0), E(z1, S(z2)))) MEMBER(E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(0, y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), False), z1, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(0, y4), y5))), EQEDGE(E(S(y1), 0), E(z1, S(z2)))) MEMBER(E(z0, 0), Cons(E(z1, S(z2)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), False), z1, S(z2), z0, 0), E(z0, 0), Cons(E(z1, S(z2)), Nil)), EQEDGE(E(z0, 0), E(z1, S(z2)))) MEMBER(E(S(y1), 0), Cons(E(z1, S(z2)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), False), z1, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(z1, S(z2)), Nil)), EQEDGE(E(S(y1), 0), E(z1, S(z2)))) MEMBER(E(S(S(y1)), 0), Cons(E(z1, S(z2)), Cons(E(S(S(y4)), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z1), False), z1, S(z2), S(S(y1)), 0), E(S(S(y1)), 0), Cons(E(z1, S(z2)), Cons(E(S(S(y4)), y5), y6))), EQEDGE(E(S(S(y1)), 0), E(z1, S(z2)))) MEMBER(E(0, 0), Cons(E(S(y2), S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, S(y2)), False), S(y2), S(z2), 0, 0), E(0, 0), Cons(E(S(y2), S(z2)), z3))) MEMBER(E(S(y1), 0), Cons(E(0, S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), 0), False), 0, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(0, S(z2)), z3))) MEMBER(E(0, 0), Cons(E(0, S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, 0), False), 0, S(z2), 0, 0), E(0, 0), Cons(E(0, S(z2)), z3))) MEMBER(E(0, 0), Cons(E(z1, S(z2)), Cons(E(S(y3), y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), False), z1, S(z2), 0, 0), E(0, 0), Cons(E(z1, S(z2)), Cons(E(S(y3), y4), y5)))) MEMBER(E(0, 0), Cons(E(z1, S(z2)), Cons(E(0, y3), y4))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), False), z1, S(z2), 0, 0), E(0, 0), Cons(E(z1, S(z2)), Cons(E(0, y3), y4)))) MEMBER(E(0, 0), Cons(E(z1, S(z2)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), False), z1, S(z2), 0, 0), E(0, 0), Cons(E(z1, S(z2)), Nil))) MEMBER(E(S(y1), S(z1)), Cons(E(S(y3), 0), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), S(y3)), False), S(y3), 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(S(y3), 0), z3)), EQEDGE(E(S(y1), S(z1)), E(S(y3), 0))) MEMBER(E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), 0), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y0)), S(S(y2))), False), S(S(y2)), 0, S(S(y0)), S(z1)), E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), 0), z3)), EQEDGE(E(S(S(y0)), S(z1)), E(S(S(y2)), 0))) MEMBER(E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, 0), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(z1)), E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, 0), y5))), EQEDGE(E(z0, S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(S(y4), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(S(y4), y5), y6))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(0, y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(0, y4), y5))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(z0, S(z1)), Cons(E(z2, 0), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(z1)), E(z0, S(z1)), Cons(E(z2, 0), Nil)), EQEDGE(E(z0, S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Nil)), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(S(S(y4)), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z2), False), z2, 0, S(S(y1)), S(z1)), E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(S(S(y4)), y5), y6))), EQEDGE(E(S(S(y1)), S(z1)), E(z2, 0))) MEMBER(E(z0, S(S(y2))), Cons(E(z2, 0), Cons(E(y4, S(S(y5))), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(S(y2))), E(z0, S(S(y2))), Cons(E(z2, 0), Cons(E(y4, S(S(y5))), y6))), EQEDGE(E(z0, S(S(y2))), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(S(y4), S(y5)), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(S(y4), S(y5)), y6))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(0, S(y4)), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(0, S(y4)), y5))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(S(S(y4)), S(y5)), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z2), False), z2, 0, S(S(y1)), S(z1)), E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(S(S(y4)), S(y5)), y6))), EQEDGE(E(S(S(y1)), S(z1)), E(z2, 0))) MEMBER(E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, S(y7)), y8)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(z1)), E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, S(y7)), y8)))), EQEDGE(E(z0, S(z1)), E(z2, 0))) MEMBER(E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, 0), y7)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(z1)), E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, 0), y7)))), EQEDGE(E(z0, S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(S(y6), y7), y8)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(S(y6), y7), y8)))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(0, y6), y7)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(0, y6), y7)))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Nil))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(z1)), E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Nil))), EQEDGE(E(z0, S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Nil))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Nil))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(S(S(y6)), y7), y8)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z2), False), z2, 0, S(S(y1)), S(z1)), E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(S(S(y6)), y7), y8)))), EQEDGE(E(S(S(y1)), S(z1)), E(z2, 0))) MEMBER(E(z0, S(S(y2))), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, S(S(y7))), y8)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(S(y2))), E(z0, S(S(y2))), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, S(S(y7))), y8)))), EQEDGE(E(z0, S(S(y2))), E(z2, 0))) MEMBER(E(0, S(z1)), Cons(E(S(y2), 0), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, S(y2)), False), S(y2), 0, 0, S(z1)), E(0, S(z1)), Cons(E(S(y2), 0), z3))) MEMBER(E(S(y1), S(z1)), Cons(E(0, 0), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), 0), False), 0, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(0, 0), z3))) MEMBER(E(0, S(z1)), Cons(E(0, 0), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, 0), False), 0, 0, 0, S(z1)), E(0, S(z1)), Cons(E(0, 0), z3))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(S(y3), y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(S(y3), y4), y5)))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(0, y3), y4))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(0, y3), y4)))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Nil))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(S(y3), S(y4)), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(S(y3), S(y4)), y5)))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(0, S(y3)), y4))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(0, S(y3)), y4)))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Cons(E(S(y5), y6), y7)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Cons(E(S(y5), y6), y7))))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Cons(E(0, y5), y6)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Cons(E(0, y5), y6))))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Nil))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Nil)))) MEMBER(E(S(z0), S(z1)), Cons(E(S(z2), S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), S(z2), S(z3), S(z0), S(z1)), E(S(z0), S(z1)), Cons(E(S(z2), S(z3)), z4)), EQEDGE(E(S(z0), S(z1)), E(S(z2), S(z3)))) K tuples:none Defined Rule Symbols: reach_3, reach[Ite]_4, member_2, member[Ite]_3, eqEdge_2, eqEdge[Ite]_5, and_2, !EQ_2, via_4, via[Ite]_5, via[Let]_5 Defined Pair Symbols: VIA_4, MEMBER_2, REACH_3, MEMBER[ITE]_3, REACH[ITE]_4, !EQ'_2, VIA[ITE]_5, VIA[LET]_5, EQEDGE_2 Compound Symbols: c21_1, c21_2, c23_2, c29_2, c12_1, c14_1, c1_1, c22, c_1, c24, c8_2, c8_1, c10_1, c25_1, c26_1, c29_1, c23_1, c9_1 ---------------------------------------- (129) CdtRewritingProof (BOTH BOUNDS(ID, ID)) Used rewriting to replace MEMBER(E(0, S(z1)), Cons(E(S(y2), S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, S(y2)), !EQ(z1, z3)), S(y2), S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(S(y2), S(z3)), z4)), EQEDGE(E(0, S(z1)), E(S(y2), S(z3)))) by MEMBER(E(0, S(z0)), Cons(E(S(z1), S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(z0, z2)), S(z1), S(z2), 0, S(z0)), E(0, S(z0)), Cons(E(S(z1), S(z2)), z3)), EQEDGE(E(0, S(z0)), E(S(z1), S(z2)))) ---------------------------------------- (130) Obligation: Complexity Dependency Tuples Problem Rules: reach(z0, z1, z2) -> reach[Ite](member(E(z0, z1), z2), z0, z1, z2) reach[Ite](False, z0, z1, z2) -> via(z0, z1, z2, z2) reach[Ite](True, z0, z1, z2) -> Cons(E(z0, z1), Nil) member(z0, Cons(z1, z2)) -> member[Ite](eqEdge(z0, z1), z0, Cons(z1, z2)) member(z0, Nil) -> False member[Ite](False, z0, Cons(z1, z2)) -> member(z0, z2) member[Ite](True, z0, z1) -> True eqEdge(E(z0, z1), E(z2, z3)) -> eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1) eqEdge[Ite](False, z0, z1, z2, z3) -> False eqEdge[Ite](True, z0, z1, z2, z3) -> True and(False, False) -> False and(True, False) -> False and(False, True) -> False and(True, True) -> True !EQ(S(z0), S(z1)) -> !EQ(z0, z1) !EQ(0, S(z0)) -> False !EQ(S(z0), 0) -> False !EQ(0, 0) -> True via(z0, z1, Cons(E(z2, z3), z4), z5) -> via[Ite](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5) via(z0, z1, Nil, z2) -> Nil via[Ite](True, z0, z1, Cons(E(z2, z3), z4), z5) -> via[Let](z0, z1, Cons(E(z2, z3), z4), z5, reach(z3, z1, z5)) via[Ite](False, z0, z1, Cons(z2, z3), z4) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Nil) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Cons(z5, z6)) -> Cons(z2, Cons(z5, z6)) Tuples: VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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))) MEMBER[ITE](False, E(S(x0), x1), Cons(E(S(x2), x3), x4)) -> c12(MEMBER(E(S(x0), x1), x4)) MEMBER[ITE](False, E(0, x0), Cons(E(S(x1), x2), x3)) -> c12(MEMBER(E(0, x0), x3)) MEMBER[ITE](False, E(S(x0), x1), Cons(E(0, x2), x3)) -> c12(MEMBER(E(S(x0), x1), x3)) MEMBER[ITE](False, E(0, x0), Cons(E(0, x1), x2)) -> c12(MEMBER(E(0, x0), x2)) REACH[ITE](False, x0, x1, Nil) -> c14(VIA(x0, x1, Nil, Nil)) REACH[ITE](False, x0, x1, Cons(E(x2, x3), x4)) -> c14(VIA(x0, x1, Cons(E(x2, x3), x4), Cons(E(x2, x3), x4))) REACH(x0, x1, Nil) -> c1(REACH[ITE](False, x0, x1, Nil)) REACH(x0, x1, Nil) -> c1(MEMBER(E(x0, x1), Nil)) VIA(0, x0, Nil, x4) -> c22 VIA(S(x0), x1, Nil, x4) -> c22 VIA(S(S(x0)), x1, Nil, x5) -> c22 VIA(S(0), x0, Nil, x4) -> c22 VIA(x0, x1, Nil, Nil) -> c22 !EQ'(S(S(y0)), S(S(y1))) -> c(!EQ'(S(y0), S(y1))) VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5)) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5)) MEMBER(E(x0, x1), Nil) -> c24 MEMBER(E(x0, S(x1)), Nil) -> c24 MEMBER(E(x0, 0), Nil) -> c24 MEMBER(E(S(x0), x1), Nil) -> c24 MEMBER(E(0, x0), Nil) -> c24 VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), Cons(z5, z6)) -> c8(VIA[LET](0, x0, Cons(E(0, x1), x2), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x1, x0), z5), E(x1, x0), Cons(z5, z6)), x1, x0, Cons(z5, z6))), REACH(x1, x0, Cons(z5, z6))) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(z5, z6)) -> c8(VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x3, x1), z5), E(x3, x1), Cons(z5, z6)), x3, x1, Cons(z5, z6))), REACH(x3, x1, Cons(z5, z6))) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), Cons(z5, z6)) -> c8(VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x1, x0), z5), E(x1, x0), Cons(z5, z6)), x1, x0, Cons(z5, z6))), REACH(x1, x0, Cons(z5, z6))) VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), x3) -> c8(REACH(x1, x0, x3)) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), x5) -> c8(REACH(x3, x1, x5)) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), x3) -> c8(REACH(x1, x0, x3)) VIA[LET](0, x0, Cons(E(0, x1), x2), Cons(x3, x4), Nil) -> c10(VIA(0, x0, x2, Cons(x3, x4))) VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(x5, x6), Nil) -> c10(VIA(S(S(x0)), x1, x4, Cons(x5, x6))) VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Cons(x3, x4), Nil) -> c10(VIA(S(0), x0, x2, Cons(x3, x4))) VIA(0, x0, Nil, Cons(z2, z3)) -> c22 VIA(S(x0), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(S(x0)), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(0), x0, Nil, Cons(z2, z3)) -> c22 VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), Nil) -> c8(VIA[LET](0, x0, Cons(E(0, x1), x2), Nil, Nil), REACH(x1, x0, Nil)) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Nil) -> c8(VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Nil, Nil), REACH(x3, x1, Nil)) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), Nil) -> c8(VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Nil, Nil), REACH(x1, x0, Nil)) EQEDGE(E(S(S(y0)), z1), E(S(S(y1)), z3)) -> c25(!EQ'(S(S(y0)), S(S(y1)))) EQEDGE(E(z0, S(S(y0))), E(z2, S(S(y1)))) -> c26(!EQ'(S(S(y0)), S(S(y1)))) VIA[LET](0, x0, Cons(E(0, x1), x2), Nil, Nil) -> c10(VIA(0, x0, x2, Nil)) VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Nil, Nil) -> c10(VIA(S(S(x0)), x1, x4, Nil)) VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Nil, Nil) -> c10(VIA(S(0), x0, x2, Nil)) REACH(z0, S(y1), Cons(E(y2, S(y3)), y4)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, S(y3)), y4))) REACH(z0, 0, Cons(E(y1, S(y2)), y3)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, S(y2)), y3))) REACH(z0, S(y1), Cons(E(y2, 0), y3)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, 0), y3))) REACH(z0, 0, Cons(E(y1, 0), y2)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, 0), y2))) REACH(S(y0), z1, Cons(E(S(y2), y3), y4)) -> c29(MEMBER(E(S(y0), z1), Cons(E(S(y2), y3), y4))) REACH(0, z1, Cons(E(S(y1), y2), y3)) -> c29(MEMBER(E(0, z1), Cons(E(S(y1), y2), y3))) REACH(S(y0), z1, Cons(E(0, y2), y3)) -> c29(MEMBER(E(S(y0), z1), Cons(E(0, y2), y3))) REACH(0, z1, Cons(E(0, y1), y2)) -> c29(MEMBER(E(0, z1), Cons(E(0, y1), y2))) REACH(z0, z1, Cons(E(y2, y3), y4)) -> c29(MEMBER(E(z0, z1), Cons(E(y2, y3), y4))) REACH(z0, z1, Nil) -> c29(MEMBER(E(z0, z1), Nil)) REACH(z0, S(y1), Nil) -> c29(MEMBER(E(z0, S(y1)), Nil)) REACH(z0, 0, Nil) -> c29(MEMBER(E(z0, 0), Nil)) REACH(S(y0), z1, Nil) -> c29(MEMBER(E(S(y0), z1), Nil)) REACH(0, z1, Nil) -> c29(MEMBER(E(0, z1), Nil)) VIA(S(S(y0)), z1, Cons(E(S(S(y1)), z3), z4), z5) -> c21(!EQ'(S(S(y0)), S(S(y1)))) MEMBER(E(S(S(y0)), z1), Cons(E(S(S(y2)), z3), z4)) -> c23(EQEDGE(E(S(S(y0)), z1), E(S(S(y2)), z3))) MEMBER(E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)) -> c23(EQEDGE(E(z0, S(S(y1))), E(z2, S(S(y3))))) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(S(y1), y2), y3)), z4) -> c9(VIA(0, z0, Cons(E(S(y1), y2), y3), z4)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(0, y1), y2)), z4) -> c9(VIA(0, z0, Cons(E(0, y1), y2), z4)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), z4) -> c9(VIA(0, z0, Nil, z4)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Nil) -> c9(VIA(0, z0, Nil, Nil)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Cons(y1, y2)) -> c9(VIA(0, z0, Nil, Cons(y1, y2))) VIA(0, z0, Cons(E(S(z1), z2), Cons(E(S(y3), y4), y5)), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(S(y3), y4), y5)), z4)) VIA(0, z0, Cons(E(S(z1), z2), Cons(E(0, y3), y4)), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(0, y3), y4)), z4)) VIA(0, z0, Cons(E(S(z1), z2), Nil), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), z4)) VIA(0, z0, Cons(E(S(z1), z2), Nil), Nil) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Nil)) VIA(0, z0, Cons(E(S(z1), z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Cons(y3, y4))) VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Cons(E(0, y2), y3)), z4) -> c9(VIA(S(z0), z1, Cons(E(0, y2), y3), z4)) VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4) -> c9(VIA(S(S(y0)), z1, Cons(E(S(S(y2)), y3), y4), z4)) VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), z4) -> c9(VIA(S(z0), z1, Nil, z4)) VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), z4) -> c9(VIA(S(S(y0)), z1, Nil, z4)) VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), z4) -> c9(VIA(S(0), z1, Nil, z4)) VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Nil) -> c9(VIA(S(z0), z1, Nil, Nil)) VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(S(y1)), y2), y3)), z4) -> c9(VIA(S(0), z1, Cons(E(S(S(y1)), y2), y3), z4)) VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4) -> c9(VIA(S(S(y0)), z1, Cons(E(S(0), y2), y3), z4)) VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(0), y1), y2)), z4) -> c9(VIA(S(0), z1, Cons(E(S(0), y1), y2), z4)) VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Cons(y2, y3)) -> c9(VIA(S(z0), z1, Nil, Cons(y2, y3))) VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y2, y3)) -> c9(VIA(S(S(y0)), z1, Nil, Cons(y2, y3))) VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), Cons(y1, y2)) -> c9(VIA(S(0), z1, Nil, Cons(y1, y2))) VIA(S(z0), z1, Cons(E(0, z2), Cons(E(0, y3), y4)), z4) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Cons(E(0, y3), y4)), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y3)), y4), y5)), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y3)), y4), y5)), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), z4)) VIA(S(0), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), Nil) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Nil)) VIA(S(0), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y3), y4)), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y3), y4)), z4)) VIA(S(0), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Cons(y3, y4))) VIA(S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y3, y4))) VIA(S(0), z1, Cons(E(0, z2), Nil), Cons(y2, y3)) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), Cons(y2, y3))) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(S(S(y2)), y3), y4)), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(S(S(y2)), y3), y4), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Nil), z5) -> c9(VIA(S(S(z0)), z1, Nil, z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Nil), Nil) -> c9(VIA(S(S(z0)), z1, Nil, Nil)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(S(0), y2), y3)), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(S(0), y2), y3), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Nil), Cons(y2, y3)) -> c9(VIA(S(S(z0)), z1, Nil, Cons(y2, y3))) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Cons(E(0, y3), y4))), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(0, y3), y4)), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Cons(E(S(S(y3)), y4), y5))), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(S(S(y3)), y4), y5)), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Nil)), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Nil)), Nil) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), Nil)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Cons(E(S(0), y3), y4))), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(S(0), y3), y4)), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Nil)), Cons(y3, y4)) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), Cons(y3, y4))) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Nil), z4) -> c9(VIA(S(0), z0, Nil, z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Nil), Nil) -> c9(VIA(S(0), z0, Nil, Nil)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(S(S(y1)), y2), y3)), z4) -> c9(VIA(S(0), z0, Cons(E(S(S(y1)), y2), y3), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(S(0), y1), y2)), z4) -> c9(VIA(S(0), z0, Cons(E(S(0), y1), y2), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Nil), Cons(y2, y3)) -> c9(VIA(S(0), z0, Nil, Cons(y2, y3))) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y2), Cons(E(0, y3), y4))), z4) -> c9(VIA(S(0), z0, Cons(E(0, y2), Cons(E(0, y3), y4)), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y2), Nil)), z4) -> c9(VIA(S(0), z0, Cons(E(0, y2), Nil), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y2), Nil)), Nil) -> c9(VIA(S(0), z0, Cons(E(0, y2), Nil), Nil)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y1), Cons(E(S(S(y2)), y3), y4))), z4) -> c9(VIA(S(0), z0, Cons(E(0, y1), Cons(E(S(S(y2)), y3), y4)), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y1), Cons(E(S(0), y2), y3))), z4) -> c9(VIA(S(0), z0, Cons(E(0, y1), Cons(E(S(0), y2), y3)), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y2), Nil)), Cons(y3, y4)) -> c9(VIA(S(0), z0, Cons(E(0, y2), Nil), Cons(y3, y4))) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(S(S(y2)), y3), y4)), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(S(S(y2)), y3), y4), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Nil), z4) -> c9(VIA(S(S(z0)), z1, Nil, z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Nil), Nil) -> c9(VIA(S(S(z0)), z1, Nil, Nil)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(S(0), y2), y3)), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(S(0), y2), y3), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Nil), Cons(y2, y3)) -> c9(VIA(S(S(z0)), z1, Nil, Cons(y2, y3))) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Cons(E(0, y3), y4))), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(0, y3), y4)), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Cons(E(S(S(y3)), y4), y5))), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(S(S(y3)), y4), y5)), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Nil)), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Nil)), Nil) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), Nil)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Cons(E(S(0), y3), y4))), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(S(0), y3), y4)), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Nil)), Cons(y3, y4)) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), Cons(y3, y4))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y2, S(y3)), y4))) -> c12(MEMBER(E(z0, S(z1)), Cons(E(y2, S(y3)), y4))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y2, 0), y3))) -> c12(MEMBER(E(z0, S(z1)), Cons(E(y2, 0), y3))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y2), y3), y4))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(S(y2), y3), y4))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y1), y2), y3))) -> c12(MEMBER(E(0, S(z1)), Cons(E(S(y1), y2), y3))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y2), y3))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(0, y2), y3))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y1), y2))) -> c12(MEMBER(E(0, S(z1)), Cons(E(0, y1), y2))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, S(z3)), Nil)) -> c12(MEMBER(E(z0, S(z1)), Nil)) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, S(z3)), Nil)) -> c12(MEMBER(E(S(y0), S(z1)), Nil)) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, S(z3)), Nil)) -> c12(MEMBER(E(0, S(z1)), Nil)) MEMBER[ITE](False, E(S(S(y0)), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(S(y2)), y3), y4))) -> c12(MEMBER(E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), y3), y4))) MEMBER[ITE](False, E(z0, S(S(y1))), Cons(E(z2, S(z3)), Cons(E(y2, S(S(y3))), y4))) -> c12(MEMBER(E(z0, S(S(y1))), Cons(E(y2, S(S(y3))), y4))) MEMBER(E(S(y1), S(z1)), Cons(E(0, S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), 0), !EQ(z1, z3)), 0, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(0, S(z3)), z4)), EQEDGE(E(S(y1), S(z1)), E(0, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(0, S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, 0), !EQ(z1, z3)), 0, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(0, S(z3)), z4)), EQEDGE(E(0, S(z1)), E(0, S(z3)))) MEMBER(E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y0)), S(S(y2))), !EQ(z1, z3)), S(S(y2)), S(z3), S(S(y0)), S(z1)), E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), S(z3)), z4)), EQEDGE(E(S(S(y0)), S(z1)), E(S(S(y2)), S(z3)))) MEMBER(E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(S(y1), S(y3))), z2, S(S(y3)), z0, S(S(y1))), E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)), EQEDGE(E(z0, S(S(y1))), E(z2, S(S(y3))))) MEMBER(E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, S(y6)), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, S(z3), z0, S(z1)), E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, S(y6)), y7))), EQEDGE(E(z0, S(z1)), E(z2, S(z3)))) MEMBER(E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, 0), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, S(z3), z0, S(z1)), E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, 0), y6))), EQEDGE(E(z0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y5), y6), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), !EQ(z1, z3)), z2, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y5), y6), y7))), EQEDGE(E(S(y1), S(z1)), E(z2, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y4), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), !EQ(z1, z3)), z2, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y4), y5), y6))), EQEDGE(E(0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), !EQ(z1, z3)), z2, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y5), y6))), EQEDGE(E(S(y1), S(z1)), E(z2, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), !EQ(z1, z3)), z2, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y4), y5))), EQEDGE(E(0, S(z1)), E(z2, S(z3)))) MEMBER(E(z0, S(z1)), Cons(E(z2, S(z3)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, S(z3), z0, S(z1)), E(z0, S(z1)), Cons(E(z2, S(z3)), Nil)), EQEDGE(E(z0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, S(z3)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), !EQ(z1, z3)), z2, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, S(z3)), Nil)), EQEDGE(E(S(y1), S(z1)), E(z2, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(z2, S(z3)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), !EQ(z1, z3)), z2, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(z2, S(z3)), Nil)), EQEDGE(E(0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(S(y1)), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(S(y5)), y6), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z2), !EQ(z1, z3)), z2, S(z3), S(S(y1)), S(z1)), E(S(S(y1)), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(S(y5)), y6), y7))), EQEDGE(E(S(S(y1)), S(z1)), E(z2, S(z3)))) MEMBER(E(z0, S(S(y2))), Cons(E(z2, S(z3)), Cons(E(y5, S(S(y6))), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(S(y2), z3)), z2, S(z3), z0, S(S(y2))), E(z0, S(S(y2))), Cons(E(z2, S(z3)), Cons(E(y5, S(S(y6))), y7))), EQEDGE(E(z0, S(S(y2))), E(z2, S(z3)))) MEMBER[ITE](False, E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y1, S(y2)), y3))) -> c12(MEMBER(E(z0, 0), Cons(E(y1, S(y2)), y3))) MEMBER[ITE](False, E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y1, 0), y2))) -> c12(MEMBER(E(z0, 0), Cons(E(y1, 0), y2))) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, S(z2)), Cons(E(S(y2), y3), y4))) -> c12(MEMBER(E(S(y0), 0), Cons(E(S(y2), y3), y4))) MEMBER[ITE](False, E(0, 0), Cons(E(z1, S(z2)), Cons(E(S(y1), y2), y3))) -> c12(MEMBER(E(0, 0), Cons(E(S(y1), y2), y3))) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, S(z2)), Cons(E(0, y2), y3))) -> c12(MEMBER(E(S(y0), 0), Cons(E(0, y2), y3))) MEMBER[ITE](False, E(0, 0), Cons(E(z1, S(z2)), Cons(E(0, y1), y2))) -> c12(MEMBER(E(0, 0), Cons(E(0, y1), y2))) MEMBER[ITE](False, E(z0, 0), Cons(E(z1, S(z2)), Nil)) -> c12(MEMBER(E(z0, 0), Nil)) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, S(z2)), Nil)) -> c12(MEMBER(E(S(y0), 0), Nil)) MEMBER[ITE](False, E(0, 0), Cons(E(z1, S(z2)), Nil)) -> c12(MEMBER(E(0, 0), Nil)) MEMBER[ITE](False, E(S(S(y0)), 0), Cons(E(z1, S(z2)), Cons(E(S(S(y2)), y3), y4))) -> c12(MEMBER(E(S(S(y0)), 0), Cons(E(S(S(y2)), y3), y4))) MEMBER(E(S(y1), 0), Cons(E(S(y3), S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), S(y3)), False), S(y3), S(z2), S(y1), 0), E(S(y1), 0), Cons(E(S(y3), S(z2)), z3)), EQEDGE(E(S(y1), 0), E(S(y3), S(z2)))) MEMBER(E(S(S(y0)), 0), Cons(E(S(S(y2)), S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y0)), S(S(y2))), False), S(S(y2)), S(z2), S(S(y0)), 0), E(S(S(y0)), 0), Cons(E(S(S(y2)), S(z2)), z3)), EQEDGE(E(S(S(y0)), 0), E(S(S(y2)), S(z2)))) MEMBER(E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, S(y5)), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), False), z1, S(z2), z0, 0), E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, S(y5)), y6))), EQEDGE(E(z0, 0), E(z1, S(z2)))) MEMBER(E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, 0), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), False), z1, S(z2), z0, 0), E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, 0), y5))), EQEDGE(E(z0, 0), E(z1, S(z2)))) MEMBER(E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(S(y4), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), False), z1, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(S(y4), y5), y6))), EQEDGE(E(S(y1), 0), E(z1, S(z2)))) MEMBER(E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(0, y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), False), z1, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(0, y4), y5))), EQEDGE(E(S(y1), 0), E(z1, S(z2)))) MEMBER(E(z0, 0), Cons(E(z1, S(z2)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), False), z1, S(z2), z0, 0), E(z0, 0), Cons(E(z1, S(z2)), Nil)), EQEDGE(E(z0, 0), E(z1, S(z2)))) MEMBER(E(S(y1), 0), Cons(E(z1, S(z2)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), False), z1, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(z1, S(z2)), Nil)), EQEDGE(E(S(y1), 0), E(z1, S(z2)))) MEMBER(E(S(S(y1)), 0), Cons(E(z1, S(z2)), Cons(E(S(S(y4)), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z1), False), z1, S(z2), S(S(y1)), 0), E(S(S(y1)), 0), Cons(E(z1, S(z2)), Cons(E(S(S(y4)), y5), y6))), EQEDGE(E(S(S(y1)), 0), E(z1, S(z2)))) MEMBER(E(0, 0), Cons(E(S(y2), S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, S(y2)), False), S(y2), S(z2), 0, 0), E(0, 0), Cons(E(S(y2), S(z2)), z3))) MEMBER(E(S(y1), 0), Cons(E(0, S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), 0), False), 0, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(0, S(z2)), z3))) MEMBER(E(0, 0), Cons(E(0, S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, 0), False), 0, S(z2), 0, 0), E(0, 0), Cons(E(0, S(z2)), z3))) MEMBER(E(0, 0), Cons(E(z1, S(z2)), Cons(E(S(y3), y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), False), z1, S(z2), 0, 0), E(0, 0), Cons(E(z1, S(z2)), Cons(E(S(y3), y4), y5)))) MEMBER(E(0, 0), Cons(E(z1, S(z2)), Cons(E(0, y3), y4))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), False), z1, S(z2), 0, 0), E(0, 0), Cons(E(z1, S(z2)), Cons(E(0, y3), y4)))) MEMBER(E(0, 0), Cons(E(z1, S(z2)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), False), z1, S(z2), 0, 0), E(0, 0), Cons(E(z1, S(z2)), Nil))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y2, 0), y3))) -> c12(MEMBER(E(z0, S(z1)), Cons(E(y2, 0), y3))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, 0), Cons(E(S(y2), y3), y4))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(S(y2), y3), y4))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, 0), Cons(E(S(y1), y2), y3))) -> c12(MEMBER(E(0, S(z1)), Cons(E(S(y1), y2), y3))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, 0), Cons(E(0, y2), y3))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(0, y2), y3))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, 0), Cons(E(0, y1), y2))) -> c12(MEMBER(E(0, S(z1)), Cons(E(0, y1), y2))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, 0), Nil)) -> c12(MEMBER(E(z0, S(z1)), Nil)) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, 0), Nil)) -> c12(MEMBER(E(S(y0), S(z1)), Nil)) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, 0), Nil)) -> c12(MEMBER(E(0, S(z1)), Nil)) MEMBER[ITE](False, E(S(S(y0)), S(z1)), Cons(E(z2, 0), Cons(E(S(S(y2)), y3), y4))) -> c12(MEMBER(E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), y3), y4))) MEMBER[ITE](False, E(z0, S(S(y1))), Cons(E(z2, 0), Cons(E(y2, S(S(y3))), y4))) -> c12(MEMBER(E(z0, S(S(y1))), Cons(E(y2, S(S(y3))), y4))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, 0), Cons(E(S(y2), S(y3)), y4))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(S(y2), S(y3)), y4))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, 0), Cons(E(S(y1), S(y2)), y3))) -> c12(MEMBER(E(0, S(z1)), Cons(E(S(y1), S(y2)), y3))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, 0), Cons(E(0, S(y2)), y3))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(0, S(y2)), y3))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, 0), Cons(E(0, S(y1)), y2))) -> c12(MEMBER(E(0, S(z1)), Cons(E(0, S(y1)), y2))) MEMBER[ITE](False, E(S(S(y0)), S(z1)), Cons(E(z2, 0), Cons(E(S(S(y2)), S(y3)), y4))) -> c12(MEMBER(E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), S(y3)), y4))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y2, S(y3)), Cons(E(y4, S(y5)), y6)))) -> c12(MEMBER(E(z0, S(z1)), Cons(E(y2, S(y3)), Cons(E(y4, S(y5)), y6)))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y2, S(y3)), Cons(E(y4, 0), y5)))) -> c12(MEMBER(E(z0, S(z1)), Cons(E(y2, S(y3)), Cons(E(y4, 0), y5)))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, 0), Cons(E(y2, S(y3)), Cons(E(S(y4), y5), y6)))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(y2, S(y3)), Cons(E(S(y4), y5), y6)))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, 0), Cons(E(y1, S(y2)), Cons(E(S(y3), y4), y5)))) -> c12(MEMBER(E(0, S(z1)), Cons(E(y1, S(y2)), Cons(E(S(y3), y4), y5)))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, 0), Cons(E(y2, S(y3)), Cons(E(0, y4), y5)))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(y2, S(y3)), Cons(E(0, y4), y5)))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, 0), Cons(E(y1, S(y2)), Cons(E(0, y3), y4)))) -> c12(MEMBER(E(0, S(z1)), Cons(E(y1, S(y2)), Cons(E(0, y3), y4)))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y2, S(y3)), Nil))) -> c12(MEMBER(E(z0, S(z1)), Cons(E(y2, S(y3)), Nil))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, 0), Cons(E(y2, S(y3)), Nil))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(y2, S(y3)), Nil))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, 0), Cons(E(y1, S(y2)), Nil))) -> c12(MEMBER(E(0, S(z1)), Cons(E(y1, S(y2)), Nil))) MEMBER[ITE](False, E(S(S(y0)), S(z1)), Cons(E(z2, 0), Cons(E(y2, S(y3)), Cons(E(S(S(y4)), y5), y6)))) -> c12(MEMBER(E(S(S(y0)), S(z1)), Cons(E(y2, S(y3)), Cons(E(S(S(y4)), y5), y6)))) MEMBER[ITE](False, E(z0, S(S(y1))), Cons(E(z2, 0), Cons(E(y2, S(y3)), Cons(E(y4, S(S(y5))), y6)))) -> c12(MEMBER(E(z0, S(S(y1))), Cons(E(y2, S(y3)), Cons(E(y4, S(S(y5))), y6)))) MEMBER(E(S(y1), S(z1)), Cons(E(S(y3), 0), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), S(y3)), False), S(y3), 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(S(y3), 0), z3)), EQEDGE(E(S(y1), S(z1)), E(S(y3), 0))) MEMBER(E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), 0), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y0)), S(S(y2))), False), S(S(y2)), 0, S(S(y0)), S(z1)), E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), 0), z3)), EQEDGE(E(S(S(y0)), S(z1)), E(S(S(y2)), 0))) MEMBER(E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, 0), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(z1)), E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, 0), y5))), EQEDGE(E(z0, S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(S(y4), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(S(y4), y5), y6))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(0, y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(0, y4), y5))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(z0, S(z1)), Cons(E(z2, 0), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(z1)), E(z0, S(z1)), Cons(E(z2, 0), Nil)), EQEDGE(E(z0, S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Nil)), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(S(S(y4)), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z2), False), z2, 0, S(S(y1)), S(z1)), E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(S(S(y4)), y5), y6))), EQEDGE(E(S(S(y1)), S(z1)), E(z2, 0))) MEMBER(E(z0, S(S(y2))), Cons(E(z2, 0), Cons(E(y4, S(S(y5))), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(S(y2))), E(z0, S(S(y2))), Cons(E(z2, 0), Cons(E(y4, S(S(y5))), y6))), EQEDGE(E(z0, S(S(y2))), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(S(y4), S(y5)), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(S(y4), S(y5)), y6))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(0, S(y4)), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(0, S(y4)), y5))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(S(S(y4)), S(y5)), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z2), False), z2, 0, S(S(y1)), S(z1)), E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(S(S(y4)), S(y5)), y6))), EQEDGE(E(S(S(y1)), S(z1)), E(z2, 0))) MEMBER(E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, S(y7)), y8)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(z1)), E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, S(y7)), y8)))), EQEDGE(E(z0, S(z1)), E(z2, 0))) MEMBER(E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, 0), y7)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(z1)), E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, 0), y7)))), EQEDGE(E(z0, S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(S(y6), y7), y8)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(S(y6), y7), y8)))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(0, y6), y7)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(0, y6), y7)))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Nil))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(z1)), E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Nil))), EQEDGE(E(z0, S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Nil))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Nil))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(S(S(y6)), y7), y8)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z2), False), z2, 0, S(S(y1)), S(z1)), E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(S(S(y6)), y7), y8)))), EQEDGE(E(S(S(y1)), S(z1)), E(z2, 0))) MEMBER(E(z0, S(S(y2))), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, S(S(y7))), y8)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(S(y2))), E(z0, S(S(y2))), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, S(S(y7))), y8)))), EQEDGE(E(z0, S(S(y2))), E(z2, 0))) MEMBER(E(0, S(z1)), Cons(E(S(y2), 0), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, S(y2)), False), S(y2), 0, 0, S(z1)), E(0, S(z1)), Cons(E(S(y2), 0), z3))) MEMBER(E(S(y1), S(z1)), Cons(E(0, 0), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), 0), False), 0, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(0, 0), z3))) MEMBER(E(0, S(z1)), Cons(E(0, 0), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, 0), False), 0, 0, 0, S(z1)), E(0, S(z1)), Cons(E(0, 0), z3))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(S(y3), y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(S(y3), y4), y5)))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(0, y3), y4))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(0, y3), y4)))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Nil))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(S(y3), S(y4)), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(S(y3), S(y4)), y5)))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(0, S(y3)), y4))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(0, S(y3)), y4)))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Cons(E(S(y5), y6), y7)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Cons(E(S(y5), y6), y7))))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Cons(E(0, y5), y6)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Cons(E(0, y5), y6))))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Nil))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Nil)))) MEMBER[ITE](False, E(z0, 0), Cons(E(z1, 0), Cons(E(y1, 0), y2))) -> c12(MEMBER(E(z0, 0), Cons(E(y1, 0), y2))) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, 0), Cons(E(S(y2), y3), y4))) -> c12(MEMBER(E(S(y0), 0), Cons(E(S(y2), y3), y4))) MEMBER[ITE](False, E(0, 0), Cons(E(z1, 0), Cons(E(S(y1), y2), y3))) -> c12(MEMBER(E(0, 0), Cons(E(S(y1), y2), y3))) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, 0), Cons(E(0, y2), y3))) -> c12(MEMBER(E(S(y0), 0), Cons(E(0, y2), y3))) MEMBER[ITE](False, E(0, 0), Cons(E(z1, 0), Cons(E(0, y1), y2))) -> c12(MEMBER(E(0, 0), Cons(E(0, y1), y2))) MEMBER[ITE](False, E(z0, 0), Cons(E(z1, 0), Nil)) -> c12(MEMBER(E(z0, 0), Nil)) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, 0), Nil)) -> c12(MEMBER(E(S(y0), 0), Nil)) MEMBER[ITE](False, E(0, 0), Cons(E(z1, 0), Nil)) -> c12(MEMBER(E(0, 0), Nil)) MEMBER[ITE](False, E(S(S(y0)), 0), Cons(E(z1, 0), Cons(E(S(S(y2)), y3), y4))) -> c12(MEMBER(E(S(S(y0)), 0), Cons(E(S(S(y2)), y3), y4))) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, 0), Cons(E(S(y1), S(y2)), y3))) -> c12(MEMBER(E(S(y0), 0), Cons(E(S(y1), S(y2)), y3))) MEMBER[ITE](False, E(S(S(y0)), 0), Cons(E(z1, 0), Cons(E(S(S(y1)), S(y2)), y3))) -> c12(MEMBER(E(S(S(y0)), 0), Cons(E(S(S(y1)), S(y2)), y3))) MEMBER[ITE](False, E(z0, 0), Cons(E(z1, 0), Cons(E(y1, S(y2)), Cons(E(y3, S(y4)), y5)))) -> c12(MEMBER(E(z0, 0), Cons(E(y1, S(y2)), Cons(E(y3, S(y4)), y5)))) MEMBER[ITE](False, E(z0, 0), Cons(E(z1, 0), Cons(E(y1, S(y2)), Cons(E(y3, 0), y4)))) -> c12(MEMBER(E(z0, 0), Cons(E(y1, S(y2)), Cons(E(y3, 0), y4)))) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, 0), Cons(E(y1, S(y2)), Cons(E(S(y3), y4), y5)))) -> c12(MEMBER(E(S(y0), 0), Cons(E(y1, S(y2)), Cons(E(S(y3), y4), y5)))) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, 0), Cons(E(y1, S(y2)), Cons(E(0, y3), y4)))) -> c12(MEMBER(E(S(y0), 0), Cons(E(y1, S(y2)), Cons(E(0, y3), y4)))) MEMBER[ITE](False, E(z0, 0), Cons(E(z1, 0), Cons(E(y1, S(y2)), Nil))) -> c12(MEMBER(E(z0, 0), Cons(E(y1, S(y2)), Nil))) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, 0), Cons(E(y1, S(y2)), Nil))) -> c12(MEMBER(E(S(y0), 0), Cons(E(y1, S(y2)), Nil))) MEMBER[ITE](False, E(S(S(y0)), 0), Cons(E(z1, 0), Cons(E(y1, S(y2)), Cons(E(S(S(y3)), y4), y5)))) -> c12(MEMBER(E(S(S(y0)), 0), Cons(E(y1, S(y2)), Cons(E(S(S(y3)), y4), y5)))) MEMBER[ITE](False, E(0, 0), Cons(E(z1, 0), Cons(E(S(y0), S(y1)), y2))) -> c12(MEMBER(E(0, 0), Cons(E(S(y0), S(y1)), y2))) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, 0), Cons(E(0, S(y1)), y2))) -> c12(MEMBER(E(S(y0), 0), Cons(E(0, S(y1)), y2))) MEMBER[ITE](False, E(0, 0), Cons(E(z1, 0), Cons(E(0, S(y0)), y1))) -> c12(MEMBER(E(0, 0), Cons(E(0, S(y0)), y1))) MEMBER[ITE](False, E(0, 0), Cons(E(z1, 0), Cons(E(y0, S(y1)), Cons(E(S(y2), y3), y4)))) -> c12(MEMBER(E(0, 0), Cons(E(y0, S(y1)), Cons(E(S(y2), y3), y4)))) MEMBER[ITE](False, E(0, 0), Cons(E(z1, 0), Cons(E(y0, S(y1)), Cons(E(0, y2), y3)))) -> c12(MEMBER(E(0, 0), Cons(E(y0, S(y1)), Cons(E(0, y2), y3)))) MEMBER[ITE](False, E(0, 0), Cons(E(z1, 0), Cons(E(y0, S(y1)), Nil))) -> c12(MEMBER(E(0, 0), Cons(E(y0, S(y1)), Nil))) MEMBER(E(S(z0), S(z1)), Cons(E(S(z2), S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), S(z2), S(z3), S(z0), S(z1)), E(S(z0), S(z1)), Cons(E(S(z2), S(z3)), z4)), EQEDGE(E(S(z0), S(z1)), E(S(z2), S(z3)))) MEMBER(E(0, S(z0)), Cons(E(S(z1), S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(z0, z2)), S(z1), S(z2), 0, S(z0)), E(0, S(z0)), Cons(E(S(z1), S(z2)), z3)), EQEDGE(E(0, S(z0)), E(S(z1), S(z2)))) S tuples: VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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))) REACH(x0, x1, Nil) -> c1(REACH[ITE](False, x0, x1, Nil)) REACH(x0, x1, Nil) -> c1(MEMBER(E(x0, x1), Nil)) VIA(0, x0, Nil, x4) -> c22 VIA(S(x0), x1, Nil, x4) -> c22 VIA(S(S(x0)), x1, Nil, x5) -> c22 VIA(S(0), x0, Nil, x4) -> c22 VIA(x0, x1, Nil, Nil) -> c22 VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5)) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5)) MEMBER(E(x0, x1), Nil) -> c24 MEMBER(E(x0, S(x1)), Nil) -> c24 MEMBER(E(x0, 0), Nil) -> c24 MEMBER(E(S(x0), x1), Nil) -> c24 MEMBER(E(0, x0), Nil) -> c24 VIA(0, x0, Nil, Cons(z2, z3)) -> c22 VIA(S(x0), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(S(x0)), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(0), x0, Nil, Cons(z2, z3)) -> c22 EQEDGE(E(S(S(y0)), z1), E(S(S(y1)), z3)) -> c25(!EQ'(S(S(y0)), S(S(y1)))) EQEDGE(E(z0, S(S(y0))), E(z2, S(S(y1)))) -> c26(!EQ'(S(S(y0)), S(S(y1)))) REACH(z0, S(y1), Cons(E(y2, S(y3)), y4)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, S(y3)), y4))) REACH(z0, 0, Cons(E(y1, S(y2)), y3)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, S(y2)), y3))) REACH(z0, S(y1), Cons(E(y2, 0), y3)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, 0), y3))) REACH(z0, 0, Cons(E(y1, 0), y2)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, 0), y2))) REACH(S(y0), z1, Cons(E(S(y2), y3), y4)) -> c29(MEMBER(E(S(y0), z1), Cons(E(S(y2), y3), y4))) REACH(0, z1, Cons(E(S(y1), y2), y3)) -> c29(MEMBER(E(0, z1), Cons(E(S(y1), y2), y3))) REACH(S(y0), z1, Cons(E(0, y2), y3)) -> c29(MEMBER(E(S(y0), z1), Cons(E(0, y2), y3))) REACH(0, z1, Cons(E(0, y1), y2)) -> c29(MEMBER(E(0, z1), Cons(E(0, y1), y2))) REACH(z0, z1, Cons(E(y2, y3), y4)) -> c29(MEMBER(E(z0, z1), Cons(E(y2, y3), y4))) REACH(z0, z1, Nil) -> c29(MEMBER(E(z0, z1), Nil)) REACH(z0, S(y1), Nil) -> c29(MEMBER(E(z0, S(y1)), Nil)) REACH(z0, 0, Nil) -> c29(MEMBER(E(z0, 0), Nil)) REACH(S(y0), z1, Nil) -> c29(MEMBER(E(S(y0), z1), Nil)) REACH(0, z1, Nil) -> c29(MEMBER(E(0, z1), Nil)) VIA(S(S(y0)), z1, Cons(E(S(S(y1)), z3), z4), z5) -> c21(!EQ'(S(S(y0)), S(S(y1)))) MEMBER(E(S(S(y0)), z1), Cons(E(S(S(y2)), z3), z4)) -> c23(EQEDGE(E(S(S(y0)), z1), E(S(S(y2)), z3))) MEMBER(E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)) -> c23(EQEDGE(E(z0, S(S(y1))), E(z2, S(S(y3))))) VIA(0, z0, Cons(E(S(z1), z2), Cons(E(S(y3), y4), y5)), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(S(y3), y4), y5)), z4)) VIA(0, z0, Cons(E(S(z1), z2), Cons(E(0, y3), y4)), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(0, y3), y4)), z4)) VIA(0, z0, Cons(E(S(z1), z2), Nil), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), z4)) VIA(0, z0, Cons(E(S(z1), z2), Nil), Nil) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Nil)) VIA(0, z0, Cons(E(S(z1), z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Cons(y3, y4))) VIA(S(z0), z1, Cons(E(0, z2), Cons(E(0, y3), y4)), z4) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Cons(E(0, y3), y4)), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y3)), y4), y5)), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y3)), y4), y5)), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), z4)) VIA(S(0), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), Nil) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Nil)) VIA(S(0), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y3), y4)), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y3), y4)), z4)) VIA(S(0), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Cons(y3, y4))) VIA(S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y3, y4))) VIA(S(0), z1, Cons(E(0, z2), Nil), Cons(y2, y3)) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), Cons(y2, y3))) MEMBER(E(S(y1), S(z1)), Cons(E(0, S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), 0), !EQ(z1, z3)), 0, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(0, S(z3)), z4)), EQEDGE(E(S(y1), S(z1)), E(0, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(0, S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, 0), !EQ(z1, z3)), 0, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(0, S(z3)), z4)), EQEDGE(E(0, S(z1)), E(0, S(z3)))) MEMBER(E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y0)), S(S(y2))), !EQ(z1, z3)), S(S(y2)), S(z3), S(S(y0)), S(z1)), E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), S(z3)), z4)), EQEDGE(E(S(S(y0)), S(z1)), E(S(S(y2)), S(z3)))) MEMBER(E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(S(y1), S(y3))), z2, S(S(y3)), z0, S(S(y1))), E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)), EQEDGE(E(z0, S(S(y1))), E(z2, S(S(y3))))) MEMBER(E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, S(y6)), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, S(z3), z0, S(z1)), E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, S(y6)), y7))), EQEDGE(E(z0, S(z1)), E(z2, S(z3)))) MEMBER(E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, 0), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, S(z3), z0, S(z1)), E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, 0), y6))), EQEDGE(E(z0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y5), y6), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), !EQ(z1, z3)), z2, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y5), y6), y7))), EQEDGE(E(S(y1), S(z1)), E(z2, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y4), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), !EQ(z1, z3)), z2, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y4), y5), y6))), EQEDGE(E(0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), !EQ(z1, z3)), z2, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y5), y6))), EQEDGE(E(S(y1), S(z1)), E(z2, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), !EQ(z1, z3)), z2, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y4), y5))), EQEDGE(E(0, S(z1)), E(z2, S(z3)))) MEMBER(E(z0, S(z1)), Cons(E(z2, S(z3)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, S(z3), z0, S(z1)), E(z0, S(z1)), Cons(E(z2, S(z3)), Nil)), EQEDGE(E(z0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, S(z3)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), !EQ(z1, z3)), z2, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, S(z3)), Nil)), EQEDGE(E(S(y1), S(z1)), E(z2, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(z2, S(z3)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), !EQ(z1, z3)), z2, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(z2, S(z3)), Nil)), EQEDGE(E(0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(S(y1)), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(S(y5)), y6), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z2), !EQ(z1, z3)), z2, S(z3), S(S(y1)), S(z1)), E(S(S(y1)), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(S(y5)), y6), y7))), EQEDGE(E(S(S(y1)), S(z1)), E(z2, S(z3)))) MEMBER(E(z0, S(S(y2))), Cons(E(z2, S(z3)), Cons(E(y5, S(S(y6))), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(S(y2), z3)), z2, S(z3), z0, S(S(y2))), E(z0, S(S(y2))), Cons(E(z2, S(z3)), Cons(E(y5, S(S(y6))), y7))), EQEDGE(E(z0, S(S(y2))), E(z2, S(z3)))) MEMBER(E(S(y1), 0), Cons(E(S(y3), S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), S(y3)), False), S(y3), S(z2), S(y1), 0), E(S(y1), 0), Cons(E(S(y3), S(z2)), z3)), EQEDGE(E(S(y1), 0), E(S(y3), S(z2)))) MEMBER(E(S(S(y0)), 0), Cons(E(S(S(y2)), S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y0)), S(S(y2))), False), S(S(y2)), S(z2), S(S(y0)), 0), E(S(S(y0)), 0), Cons(E(S(S(y2)), S(z2)), z3)), EQEDGE(E(S(S(y0)), 0), E(S(S(y2)), S(z2)))) MEMBER(E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, S(y5)), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), False), z1, S(z2), z0, 0), E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, S(y5)), y6))), EQEDGE(E(z0, 0), E(z1, S(z2)))) MEMBER(E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, 0), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), False), z1, S(z2), z0, 0), E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, 0), y5))), EQEDGE(E(z0, 0), E(z1, S(z2)))) MEMBER(E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(S(y4), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), False), z1, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(S(y4), y5), y6))), EQEDGE(E(S(y1), 0), E(z1, S(z2)))) MEMBER(E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(0, y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), False), z1, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(0, y4), y5))), EQEDGE(E(S(y1), 0), E(z1, S(z2)))) MEMBER(E(z0, 0), Cons(E(z1, S(z2)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), False), z1, S(z2), z0, 0), E(z0, 0), Cons(E(z1, S(z2)), Nil)), EQEDGE(E(z0, 0), E(z1, S(z2)))) MEMBER(E(S(y1), 0), Cons(E(z1, S(z2)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), False), z1, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(z1, S(z2)), Nil)), EQEDGE(E(S(y1), 0), E(z1, S(z2)))) MEMBER(E(S(S(y1)), 0), Cons(E(z1, S(z2)), Cons(E(S(S(y4)), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z1), False), z1, S(z2), S(S(y1)), 0), E(S(S(y1)), 0), Cons(E(z1, S(z2)), Cons(E(S(S(y4)), y5), y6))), EQEDGE(E(S(S(y1)), 0), E(z1, S(z2)))) MEMBER(E(0, 0), Cons(E(S(y2), S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, S(y2)), False), S(y2), S(z2), 0, 0), E(0, 0), Cons(E(S(y2), S(z2)), z3))) MEMBER(E(S(y1), 0), Cons(E(0, S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), 0), False), 0, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(0, S(z2)), z3))) MEMBER(E(0, 0), Cons(E(0, S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, 0), False), 0, S(z2), 0, 0), E(0, 0), Cons(E(0, S(z2)), z3))) MEMBER(E(0, 0), Cons(E(z1, S(z2)), Cons(E(S(y3), y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), False), z1, S(z2), 0, 0), E(0, 0), Cons(E(z1, S(z2)), Cons(E(S(y3), y4), y5)))) MEMBER(E(0, 0), Cons(E(z1, S(z2)), Cons(E(0, y3), y4))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), False), z1, S(z2), 0, 0), E(0, 0), Cons(E(z1, S(z2)), Cons(E(0, y3), y4)))) MEMBER(E(0, 0), Cons(E(z1, S(z2)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), False), z1, S(z2), 0, 0), E(0, 0), Cons(E(z1, S(z2)), Nil))) MEMBER(E(S(y1), S(z1)), Cons(E(S(y3), 0), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), S(y3)), False), S(y3), 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(S(y3), 0), z3)), EQEDGE(E(S(y1), S(z1)), E(S(y3), 0))) MEMBER(E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), 0), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y0)), S(S(y2))), False), S(S(y2)), 0, S(S(y0)), S(z1)), E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), 0), z3)), EQEDGE(E(S(S(y0)), S(z1)), E(S(S(y2)), 0))) MEMBER(E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, 0), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(z1)), E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, 0), y5))), EQEDGE(E(z0, S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(S(y4), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(S(y4), y5), y6))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(0, y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(0, y4), y5))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(z0, S(z1)), Cons(E(z2, 0), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(z1)), E(z0, S(z1)), Cons(E(z2, 0), Nil)), EQEDGE(E(z0, S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Nil)), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(S(S(y4)), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z2), False), z2, 0, S(S(y1)), S(z1)), E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(S(S(y4)), y5), y6))), EQEDGE(E(S(S(y1)), S(z1)), E(z2, 0))) MEMBER(E(z0, S(S(y2))), Cons(E(z2, 0), Cons(E(y4, S(S(y5))), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(S(y2))), E(z0, S(S(y2))), Cons(E(z2, 0), Cons(E(y4, S(S(y5))), y6))), EQEDGE(E(z0, S(S(y2))), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(S(y4), S(y5)), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(S(y4), S(y5)), y6))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(0, S(y4)), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(0, S(y4)), y5))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(S(S(y4)), S(y5)), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z2), False), z2, 0, S(S(y1)), S(z1)), E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(S(S(y4)), S(y5)), y6))), EQEDGE(E(S(S(y1)), S(z1)), E(z2, 0))) MEMBER(E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, S(y7)), y8)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(z1)), E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, S(y7)), y8)))), EQEDGE(E(z0, S(z1)), E(z2, 0))) MEMBER(E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, 0), y7)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(z1)), E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, 0), y7)))), EQEDGE(E(z0, S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(S(y6), y7), y8)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(S(y6), y7), y8)))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(0, y6), y7)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(0, y6), y7)))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Nil))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(z1)), E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Nil))), EQEDGE(E(z0, S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Nil))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Nil))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(S(S(y6)), y7), y8)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z2), False), z2, 0, S(S(y1)), S(z1)), E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(S(S(y6)), y7), y8)))), EQEDGE(E(S(S(y1)), S(z1)), E(z2, 0))) MEMBER(E(z0, S(S(y2))), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, S(S(y7))), y8)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(S(y2))), E(z0, S(S(y2))), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, S(S(y7))), y8)))), EQEDGE(E(z0, S(S(y2))), E(z2, 0))) MEMBER(E(0, S(z1)), Cons(E(S(y2), 0), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, S(y2)), False), S(y2), 0, 0, S(z1)), E(0, S(z1)), Cons(E(S(y2), 0), z3))) MEMBER(E(S(y1), S(z1)), Cons(E(0, 0), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), 0), False), 0, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(0, 0), z3))) MEMBER(E(0, S(z1)), Cons(E(0, 0), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, 0), False), 0, 0, 0, S(z1)), E(0, S(z1)), Cons(E(0, 0), z3))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(S(y3), y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(S(y3), y4), y5)))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(0, y3), y4))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(0, y3), y4)))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Nil))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(S(y3), S(y4)), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(S(y3), S(y4)), y5)))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(0, S(y3)), y4))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(0, S(y3)), y4)))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Cons(E(S(y5), y6), y7)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Cons(E(S(y5), y6), y7))))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Cons(E(0, y5), y6)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Cons(E(0, y5), y6))))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Nil))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Nil)))) MEMBER(E(S(z0), S(z1)), Cons(E(S(z2), S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), S(z2), S(z3), S(z0), S(z1)), E(S(z0), S(z1)), Cons(E(S(z2), S(z3)), z4)), EQEDGE(E(S(z0), S(z1)), E(S(z2), S(z3)))) MEMBER(E(0, S(z0)), Cons(E(S(z1), S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(z0, z2)), S(z1), S(z2), 0, S(z0)), E(0, S(z0)), Cons(E(S(z1), S(z2)), z3)), EQEDGE(E(0, S(z0)), E(S(z1), S(z2)))) K tuples:none Defined Rule Symbols: reach_3, reach[Ite]_4, member_2, member[Ite]_3, eqEdge_2, eqEdge[Ite]_5, and_2, !EQ_2, via_4, via[Ite]_5, via[Let]_5 Defined Pair Symbols: VIA_4, MEMBER_2, REACH_3, MEMBER[ITE]_3, REACH[ITE]_4, !EQ'_2, VIA[ITE]_5, VIA[LET]_5, EQEDGE_2 Compound Symbols: c21_1, c21_2, c23_2, c29_2, c12_1, c14_1, c1_1, c22, c_1, c24, c8_2, c8_1, c10_1, c25_1, c26_1, c29_1, c23_1, c9_1 ---------------------------------------- (131) CdtForwardInstantiationProof (BOTH BOUNDS(ID, ID)) Use forward instantiation to replace MEMBER(E(x0, 0), Cons(E(x2, 0), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(x0, x2), True), x2, 0, x0, 0), E(x0, 0), Cons(E(x2, 0), x4)), EQEDGE(E(x0, 0), E(x2, 0))) by MEMBER(E(S(y1), 0), Cons(E(S(y3), 0), z2)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), S(y3)), True), S(y3), 0, S(y1), 0), E(S(y1), 0), Cons(E(S(y3), 0), z2)), EQEDGE(E(S(y1), 0), E(S(y3), 0))) MEMBER(E(0, 0), Cons(E(S(y2), 0), z2)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, S(y2)), True), S(y2), 0, 0, 0), E(0, 0), Cons(E(S(y2), 0), z2)), EQEDGE(E(0, 0), E(S(y2), 0))) MEMBER(E(S(y1), 0), Cons(E(0, 0), z2)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), 0), True), 0, 0, S(y1), 0), E(S(y1), 0), Cons(E(0, 0), z2)), EQEDGE(E(S(y1), 0), E(0, 0))) MEMBER(E(0, 0), Cons(E(0, 0), z2)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, 0), True), 0, 0, 0, 0), E(0, 0), Cons(E(0, 0), z2)), EQEDGE(E(0, 0), E(0, 0))) MEMBER(E(S(S(y0)), 0), Cons(E(S(S(y2)), 0), z2)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y0)), S(S(y2))), True), S(S(y2)), 0, S(S(y0)), 0), E(S(S(y0)), 0), Cons(E(S(S(y2)), 0), z2)), EQEDGE(E(S(S(y0)), 0), E(S(S(y2)), 0))) MEMBER(E(z0, 0), Cons(E(z1, 0), Cons(E(y3, 0), y4))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), True), z1, 0, z0, 0), E(z0, 0), Cons(E(z1, 0), Cons(E(y3, 0), y4))), EQEDGE(E(z0, 0), E(z1, 0))) MEMBER(E(S(y1), 0), Cons(E(z1, 0), Cons(E(S(y3), y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), True), z1, 0, S(y1), 0), E(S(y1), 0), Cons(E(z1, 0), Cons(E(S(y3), y4), y5))), EQEDGE(E(S(y1), 0), E(z1, 0))) MEMBER(E(0, 0), Cons(E(z1, 0), Cons(E(S(y2), y3), y4))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), True), z1, 0, 0, 0), E(0, 0), Cons(E(z1, 0), Cons(E(S(y2), y3), y4))), EQEDGE(E(0, 0), E(z1, 0))) MEMBER(E(S(y1), 0), Cons(E(z1, 0), Cons(E(0, y3), y4))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), True), z1, 0, S(y1), 0), E(S(y1), 0), Cons(E(z1, 0), Cons(E(0, y3), y4))), EQEDGE(E(S(y1), 0), E(z1, 0))) MEMBER(E(0, 0), Cons(E(z1, 0), Cons(E(0, y2), y3))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), True), z1, 0, 0, 0), E(0, 0), Cons(E(z1, 0), Cons(E(0, y2), y3))), EQEDGE(E(0, 0), E(z1, 0))) MEMBER(E(z0, 0), Cons(E(z1, 0), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), True), z1, 0, z0, 0), E(z0, 0), Cons(E(z1, 0), Nil)), EQEDGE(E(z0, 0), E(z1, 0))) MEMBER(E(S(y1), 0), Cons(E(z1, 0), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), True), z1, 0, S(y1), 0), E(S(y1), 0), Cons(E(z1, 0), Nil)), EQEDGE(E(S(y1), 0), E(z1, 0))) MEMBER(E(0, 0), Cons(E(z1, 0), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), True), z1, 0, 0, 0), E(0, 0), Cons(E(z1, 0), Nil)), EQEDGE(E(0, 0), E(z1, 0))) MEMBER(E(S(S(y1)), 0), Cons(E(z1, 0), Cons(E(S(S(y3)), y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z1), True), z1, 0, S(S(y1)), 0), E(S(S(y1)), 0), Cons(E(z1, 0), Cons(E(S(S(y3)), y4), y5))), EQEDGE(E(S(S(y1)), 0), E(z1, 0))) MEMBER(E(S(y1), 0), Cons(E(z1, 0), Cons(E(S(y3), S(y4)), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), True), z1, 0, S(y1), 0), E(S(y1), 0), Cons(E(z1, 0), Cons(E(S(y3), S(y4)), y5))), EQEDGE(E(S(y1), 0), E(z1, 0))) MEMBER(E(S(S(y1)), 0), Cons(E(z1, 0), Cons(E(S(S(y3)), S(y4)), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z1), True), z1, 0, S(S(y1)), 0), E(S(S(y1)), 0), Cons(E(z1, 0), Cons(E(S(S(y3)), S(y4)), y5))), EQEDGE(E(S(S(y1)), 0), E(z1, 0))) MEMBER(E(z0, 0), Cons(E(z1, 0), Cons(E(y3, S(y4)), Cons(E(y5, S(y6)), y7)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), True), z1, 0, z0, 0), E(z0, 0), Cons(E(z1, 0), Cons(E(y3, S(y4)), Cons(E(y5, S(y6)), y7)))), EQEDGE(E(z0, 0), E(z1, 0))) MEMBER(E(z0, 0), Cons(E(z1, 0), Cons(E(y3, S(y4)), Cons(E(y5, 0), y6)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), True), z1, 0, z0, 0), E(z0, 0), Cons(E(z1, 0), Cons(E(y3, S(y4)), Cons(E(y5, 0), y6)))), EQEDGE(E(z0, 0), E(z1, 0))) MEMBER(E(S(y1), 0), Cons(E(z1, 0), Cons(E(y3, S(y4)), Cons(E(S(y5), y6), y7)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), True), z1, 0, S(y1), 0), E(S(y1), 0), Cons(E(z1, 0), Cons(E(y3, S(y4)), Cons(E(S(y5), y6), y7)))), EQEDGE(E(S(y1), 0), E(z1, 0))) MEMBER(E(S(y1), 0), Cons(E(z1, 0), Cons(E(y3, S(y4)), Cons(E(0, y5), y6)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), True), z1, 0, S(y1), 0), E(S(y1), 0), Cons(E(z1, 0), Cons(E(y3, S(y4)), Cons(E(0, y5), y6)))), EQEDGE(E(S(y1), 0), E(z1, 0))) MEMBER(E(z0, 0), Cons(E(z1, 0), Cons(E(y3, S(y4)), Nil))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), True), z1, 0, z0, 0), E(z0, 0), Cons(E(z1, 0), Cons(E(y3, S(y4)), Nil))), EQEDGE(E(z0, 0), E(z1, 0))) MEMBER(E(S(y1), 0), Cons(E(z1, 0), Cons(E(y3, S(y4)), Nil))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), True), z1, 0, S(y1), 0), E(S(y1), 0), Cons(E(z1, 0), Cons(E(y3, S(y4)), Nil))), EQEDGE(E(S(y1), 0), E(z1, 0))) MEMBER(E(S(S(y1)), 0), Cons(E(z1, 0), Cons(E(y3, S(y4)), Cons(E(S(S(y5)), y6), y7)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z1), True), z1, 0, S(S(y1)), 0), E(S(S(y1)), 0), Cons(E(z1, 0), Cons(E(y3, S(y4)), Cons(E(S(S(y5)), y6), y7)))), EQEDGE(E(S(S(y1)), 0), E(z1, 0))) MEMBER(E(0, 0), Cons(E(z1, 0), Cons(E(S(y2), S(y3)), y4))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), True), z1, 0, 0, 0), E(0, 0), Cons(E(z1, 0), Cons(E(S(y2), S(y3)), y4))), EQEDGE(E(0, 0), E(z1, 0))) MEMBER(E(S(y1), 0), Cons(E(z1, 0), Cons(E(0, S(y3)), y4))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), True), z1, 0, S(y1), 0), E(S(y1), 0), Cons(E(z1, 0), Cons(E(0, S(y3)), y4))), EQEDGE(E(S(y1), 0), E(z1, 0))) MEMBER(E(0, 0), Cons(E(z1, 0), Cons(E(0, S(y2)), y3))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), True), z1, 0, 0, 0), E(0, 0), Cons(E(z1, 0), Cons(E(0, S(y2)), y3))), EQEDGE(E(0, 0), E(z1, 0))) MEMBER(E(0, 0), Cons(E(z1, 0), Cons(E(y2, S(y3)), Cons(E(S(y4), y5), y6)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), True), z1, 0, 0, 0), E(0, 0), Cons(E(z1, 0), Cons(E(y2, S(y3)), Cons(E(S(y4), y5), y6)))), EQEDGE(E(0, 0), E(z1, 0))) MEMBER(E(0, 0), Cons(E(z1, 0), Cons(E(y2, S(y3)), Cons(E(0, y4), y5)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), True), z1, 0, 0, 0), E(0, 0), Cons(E(z1, 0), Cons(E(y2, S(y3)), Cons(E(0, y4), y5)))), EQEDGE(E(0, 0), E(z1, 0))) MEMBER(E(0, 0), Cons(E(z1, 0), Cons(E(y2, S(y3)), Nil))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), True), z1, 0, 0, 0), E(0, 0), Cons(E(z1, 0), Cons(E(y2, S(y3)), Nil))), EQEDGE(E(0, 0), E(z1, 0))) ---------------------------------------- (132) Obligation: Complexity Dependency Tuples Problem Rules: reach(z0, z1, z2) -> reach[Ite](member(E(z0, z1), z2), z0, z1, z2) reach[Ite](False, z0, z1, z2) -> via(z0, z1, z2, z2) reach[Ite](True, z0, z1, z2) -> Cons(E(z0, z1), Nil) member(z0, Cons(z1, z2)) -> member[Ite](eqEdge(z0, z1), z0, Cons(z1, z2)) member(z0, Nil) -> False member[Ite](False, z0, Cons(z1, z2)) -> member(z0, z2) member[Ite](True, z0, z1) -> True eqEdge(E(z0, z1), E(z2, z3)) -> eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1) eqEdge[Ite](False, z0, z1, z2, z3) -> False eqEdge[Ite](True, z0, z1, z2, z3) -> True and(False, False) -> False and(True, False) -> False and(False, True) -> False and(True, True) -> True !EQ(S(z0), S(z1)) -> !EQ(z0, z1) !EQ(0, S(z0)) -> False !EQ(S(z0), 0) -> False !EQ(0, 0) -> True via(z0, z1, Cons(E(z2, z3), z4), z5) -> via[Ite](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5) via(z0, z1, Nil, z2) -> Nil via[Ite](True, z0, z1, Cons(E(z2, z3), z4), z5) -> via[Let](z0, z1, Cons(E(z2, z3), z4), z5, reach(z3, z1, z5)) via[Ite](False, z0, z1, Cons(z2, z3), z4) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Nil) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Cons(z5, z6)) -> Cons(z2, Cons(z5, z6)) Tuples: VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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))) MEMBER[ITE](False, E(S(x0), x1), Cons(E(S(x2), x3), x4)) -> c12(MEMBER(E(S(x0), x1), x4)) MEMBER[ITE](False, E(0, x0), Cons(E(S(x1), x2), x3)) -> c12(MEMBER(E(0, x0), x3)) MEMBER[ITE](False, E(S(x0), x1), Cons(E(0, x2), x3)) -> c12(MEMBER(E(S(x0), x1), x3)) MEMBER[ITE](False, E(0, x0), Cons(E(0, x1), x2)) -> c12(MEMBER(E(0, x0), x2)) REACH[ITE](False, x0, x1, Nil) -> c14(VIA(x0, x1, Nil, Nil)) REACH[ITE](False, x0, x1, Cons(E(x2, x3), x4)) -> c14(VIA(x0, x1, Cons(E(x2, x3), x4), Cons(E(x2, x3), x4))) REACH(x0, x1, Nil) -> c1(REACH[ITE](False, x0, x1, Nil)) REACH(x0, x1, Nil) -> c1(MEMBER(E(x0, x1), Nil)) VIA(0, x0, Nil, x4) -> c22 VIA(S(x0), x1, Nil, x4) -> c22 VIA(S(S(x0)), x1, Nil, x5) -> c22 VIA(S(0), x0, Nil, x4) -> c22 VIA(x0, x1, Nil, Nil) -> c22 !EQ'(S(S(y0)), S(S(y1))) -> c(!EQ'(S(y0), S(y1))) VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5)) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5)) MEMBER(E(x0, x1), Nil) -> c24 MEMBER(E(x0, S(x1)), Nil) -> c24 MEMBER(E(x0, 0), Nil) -> c24 MEMBER(E(S(x0), x1), Nil) -> c24 MEMBER(E(0, x0), Nil) -> c24 VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), Cons(z5, z6)) -> c8(VIA[LET](0, x0, Cons(E(0, x1), x2), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x1, x0), z5), E(x1, x0), Cons(z5, z6)), x1, x0, Cons(z5, z6))), REACH(x1, x0, Cons(z5, z6))) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(z5, z6)) -> c8(VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x3, x1), z5), E(x3, x1), Cons(z5, z6)), x3, x1, Cons(z5, z6))), REACH(x3, x1, Cons(z5, z6))) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), Cons(z5, z6)) -> c8(VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x1, x0), z5), E(x1, x0), Cons(z5, z6)), x1, x0, Cons(z5, z6))), REACH(x1, x0, Cons(z5, z6))) VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), x3) -> c8(REACH(x1, x0, x3)) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), x5) -> c8(REACH(x3, x1, x5)) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), x3) -> c8(REACH(x1, x0, x3)) VIA[LET](0, x0, Cons(E(0, x1), x2), Cons(x3, x4), Nil) -> c10(VIA(0, x0, x2, Cons(x3, x4))) VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(x5, x6), Nil) -> c10(VIA(S(S(x0)), x1, x4, Cons(x5, x6))) VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Cons(x3, x4), Nil) -> c10(VIA(S(0), x0, x2, Cons(x3, x4))) VIA(0, x0, Nil, Cons(z2, z3)) -> c22 VIA(S(x0), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(S(x0)), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(0), x0, Nil, Cons(z2, z3)) -> c22 VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), Nil) -> c8(VIA[LET](0, x0, Cons(E(0, x1), x2), Nil, Nil), REACH(x1, x0, Nil)) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Nil) -> c8(VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Nil, Nil), REACH(x3, x1, Nil)) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), Nil) -> c8(VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Nil, Nil), REACH(x1, x0, Nil)) EQEDGE(E(S(S(y0)), z1), E(S(S(y1)), z3)) -> c25(!EQ'(S(S(y0)), S(S(y1)))) EQEDGE(E(z0, S(S(y0))), E(z2, S(S(y1)))) -> c26(!EQ'(S(S(y0)), S(S(y1)))) VIA[LET](0, x0, Cons(E(0, x1), x2), Nil, Nil) -> c10(VIA(0, x0, x2, Nil)) VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Nil, Nil) -> c10(VIA(S(S(x0)), x1, x4, Nil)) VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Nil, Nil) -> c10(VIA(S(0), x0, x2, Nil)) REACH(z0, S(y1), Cons(E(y2, S(y3)), y4)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, S(y3)), y4))) REACH(z0, 0, Cons(E(y1, S(y2)), y3)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, S(y2)), y3))) REACH(z0, S(y1), Cons(E(y2, 0), y3)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, 0), y3))) REACH(z0, 0, Cons(E(y1, 0), y2)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, 0), y2))) REACH(S(y0), z1, Cons(E(S(y2), y3), y4)) -> c29(MEMBER(E(S(y0), z1), Cons(E(S(y2), y3), y4))) REACH(0, z1, Cons(E(S(y1), y2), y3)) -> c29(MEMBER(E(0, z1), Cons(E(S(y1), y2), y3))) REACH(S(y0), z1, Cons(E(0, y2), y3)) -> c29(MEMBER(E(S(y0), z1), Cons(E(0, y2), y3))) REACH(0, z1, Cons(E(0, y1), y2)) -> c29(MEMBER(E(0, z1), Cons(E(0, y1), y2))) REACH(z0, z1, Cons(E(y2, y3), y4)) -> c29(MEMBER(E(z0, z1), Cons(E(y2, y3), y4))) REACH(z0, z1, Nil) -> c29(MEMBER(E(z0, z1), Nil)) REACH(z0, S(y1), Nil) -> c29(MEMBER(E(z0, S(y1)), Nil)) REACH(z0, 0, Nil) -> c29(MEMBER(E(z0, 0), Nil)) REACH(S(y0), z1, Nil) -> c29(MEMBER(E(S(y0), z1), Nil)) REACH(0, z1, Nil) -> c29(MEMBER(E(0, z1), Nil)) VIA(S(S(y0)), z1, Cons(E(S(S(y1)), z3), z4), z5) -> c21(!EQ'(S(S(y0)), S(S(y1)))) MEMBER(E(S(S(y0)), z1), Cons(E(S(S(y2)), z3), z4)) -> c23(EQEDGE(E(S(S(y0)), z1), E(S(S(y2)), z3))) MEMBER(E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)) -> c23(EQEDGE(E(z0, S(S(y1))), E(z2, S(S(y3))))) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(S(y1), y2), y3)), z4) -> c9(VIA(0, z0, Cons(E(S(y1), y2), y3), z4)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(0, y1), y2)), z4) -> c9(VIA(0, z0, Cons(E(0, y1), y2), z4)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), z4) -> c9(VIA(0, z0, Nil, z4)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Nil) -> c9(VIA(0, z0, Nil, Nil)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Cons(y1, y2)) -> c9(VIA(0, z0, Nil, Cons(y1, y2))) VIA(0, z0, Cons(E(S(z1), z2), Cons(E(S(y3), y4), y5)), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(S(y3), y4), y5)), z4)) VIA(0, z0, Cons(E(S(z1), z2), Cons(E(0, y3), y4)), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(0, y3), y4)), z4)) VIA(0, z0, Cons(E(S(z1), z2), Nil), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), z4)) VIA(0, z0, Cons(E(S(z1), z2), Nil), Nil) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Nil)) VIA(0, z0, Cons(E(S(z1), z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Cons(y3, y4))) VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Cons(E(0, y2), y3)), z4) -> c9(VIA(S(z0), z1, Cons(E(0, y2), y3), z4)) VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4) -> c9(VIA(S(S(y0)), z1, Cons(E(S(S(y2)), y3), y4), z4)) VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), z4) -> c9(VIA(S(z0), z1, Nil, z4)) VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), z4) -> c9(VIA(S(S(y0)), z1, Nil, z4)) VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), z4) -> c9(VIA(S(0), z1, Nil, z4)) VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Nil) -> c9(VIA(S(z0), z1, Nil, Nil)) VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(S(y1)), y2), y3)), z4) -> c9(VIA(S(0), z1, Cons(E(S(S(y1)), y2), y3), z4)) VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4) -> c9(VIA(S(S(y0)), z1, Cons(E(S(0), y2), y3), z4)) VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(0), y1), y2)), z4) -> c9(VIA(S(0), z1, Cons(E(S(0), y1), y2), z4)) VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Cons(y2, y3)) -> c9(VIA(S(z0), z1, Nil, Cons(y2, y3))) VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y2, y3)) -> c9(VIA(S(S(y0)), z1, Nil, Cons(y2, y3))) VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), Cons(y1, y2)) -> c9(VIA(S(0), z1, Nil, Cons(y1, y2))) VIA(S(z0), z1, Cons(E(0, z2), Cons(E(0, y3), y4)), z4) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Cons(E(0, y3), y4)), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y3)), y4), y5)), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y3)), y4), y5)), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), z4)) VIA(S(0), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), Nil) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Nil)) VIA(S(0), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y3), y4)), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y3), y4)), z4)) VIA(S(0), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Cons(y3, y4))) VIA(S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y3, y4))) VIA(S(0), z1, Cons(E(0, z2), Nil), Cons(y2, y3)) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), Cons(y2, y3))) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(S(S(y2)), y3), y4)), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(S(S(y2)), y3), y4), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Nil), z5) -> c9(VIA(S(S(z0)), z1, Nil, z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Nil), Nil) -> c9(VIA(S(S(z0)), z1, Nil, Nil)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(S(0), y2), y3)), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(S(0), y2), y3), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Nil), Cons(y2, y3)) -> c9(VIA(S(S(z0)), z1, Nil, Cons(y2, y3))) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Cons(E(0, y3), y4))), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(0, y3), y4)), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Cons(E(S(S(y3)), y4), y5))), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(S(S(y3)), y4), y5)), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Nil)), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Nil)), Nil) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), Nil)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Cons(E(S(0), y3), y4))), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(S(0), y3), y4)), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Nil)), Cons(y3, y4)) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), Cons(y3, y4))) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Nil), z4) -> c9(VIA(S(0), z0, Nil, z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Nil), Nil) -> c9(VIA(S(0), z0, Nil, Nil)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(S(S(y1)), y2), y3)), z4) -> c9(VIA(S(0), z0, Cons(E(S(S(y1)), y2), y3), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(S(0), y1), y2)), z4) -> c9(VIA(S(0), z0, Cons(E(S(0), y1), y2), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Nil), Cons(y2, y3)) -> c9(VIA(S(0), z0, Nil, Cons(y2, y3))) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y2), Cons(E(0, y3), y4))), z4) -> c9(VIA(S(0), z0, Cons(E(0, y2), Cons(E(0, y3), y4)), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y2), Nil)), z4) -> c9(VIA(S(0), z0, Cons(E(0, y2), Nil), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y2), Nil)), Nil) -> c9(VIA(S(0), z0, Cons(E(0, y2), Nil), Nil)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y1), Cons(E(S(S(y2)), y3), y4))), z4) -> c9(VIA(S(0), z0, Cons(E(0, y1), Cons(E(S(S(y2)), y3), y4)), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y1), Cons(E(S(0), y2), y3))), z4) -> c9(VIA(S(0), z0, Cons(E(0, y1), Cons(E(S(0), y2), y3)), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y2), Nil)), Cons(y3, y4)) -> c9(VIA(S(0), z0, Cons(E(0, y2), Nil), Cons(y3, y4))) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(S(S(y2)), y3), y4)), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(S(S(y2)), y3), y4), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Nil), z4) -> c9(VIA(S(S(z0)), z1, Nil, z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Nil), Nil) -> c9(VIA(S(S(z0)), z1, Nil, Nil)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(S(0), y2), y3)), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(S(0), y2), y3), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Nil), Cons(y2, y3)) -> c9(VIA(S(S(z0)), z1, Nil, Cons(y2, y3))) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Cons(E(0, y3), y4))), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(0, y3), y4)), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Cons(E(S(S(y3)), y4), y5))), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(S(S(y3)), y4), y5)), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Nil)), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Nil)), Nil) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), Nil)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Cons(E(S(0), y3), y4))), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(S(0), y3), y4)), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Nil)), Cons(y3, y4)) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), Cons(y3, y4))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y2, S(y3)), y4))) -> c12(MEMBER(E(z0, S(z1)), Cons(E(y2, S(y3)), y4))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y2, 0), y3))) -> c12(MEMBER(E(z0, S(z1)), Cons(E(y2, 0), y3))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y2), y3), y4))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(S(y2), y3), y4))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y1), y2), y3))) -> c12(MEMBER(E(0, S(z1)), Cons(E(S(y1), y2), y3))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y2), y3))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(0, y2), y3))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y1), y2))) -> c12(MEMBER(E(0, S(z1)), Cons(E(0, y1), y2))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, S(z3)), Nil)) -> c12(MEMBER(E(z0, S(z1)), Nil)) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, S(z3)), Nil)) -> c12(MEMBER(E(S(y0), S(z1)), Nil)) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, S(z3)), Nil)) -> c12(MEMBER(E(0, S(z1)), Nil)) MEMBER[ITE](False, E(S(S(y0)), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(S(y2)), y3), y4))) -> c12(MEMBER(E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), y3), y4))) MEMBER[ITE](False, E(z0, S(S(y1))), Cons(E(z2, S(z3)), Cons(E(y2, S(S(y3))), y4))) -> c12(MEMBER(E(z0, S(S(y1))), Cons(E(y2, S(S(y3))), y4))) MEMBER(E(S(y1), S(z1)), Cons(E(0, S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), 0), !EQ(z1, z3)), 0, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(0, S(z3)), z4)), EQEDGE(E(S(y1), S(z1)), E(0, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(0, S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, 0), !EQ(z1, z3)), 0, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(0, S(z3)), z4)), EQEDGE(E(0, S(z1)), E(0, S(z3)))) MEMBER(E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y0)), S(S(y2))), !EQ(z1, z3)), S(S(y2)), S(z3), S(S(y0)), S(z1)), E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), S(z3)), z4)), EQEDGE(E(S(S(y0)), S(z1)), E(S(S(y2)), S(z3)))) MEMBER(E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(S(y1), S(y3))), z2, S(S(y3)), z0, S(S(y1))), E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)), EQEDGE(E(z0, S(S(y1))), E(z2, S(S(y3))))) MEMBER(E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, S(y6)), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, S(z3), z0, S(z1)), E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, S(y6)), y7))), EQEDGE(E(z0, S(z1)), E(z2, S(z3)))) MEMBER(E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, 0), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, S(z3), z0, S(z1)), E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, 0), y6))), EQEDGE(E(z0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y5), y6), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), !EQ(z1, z3)), z2, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y5), y6), y7))), EQEDGE(E(S(y1), S(z1)), E(z2, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y4), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), !EQ(z1, z3)), z2, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y4), y5), y6))), EQEDGE(E(0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), !EQ(z1, z3)), z2, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y5), y6))), EQEDGE(E(S(y1), S(z1)), E(z2, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), !EQ(z1, z3)), z2, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y4), y5))), EQEDGE(E(0, S(z1)), E(z2, S(z3)))) MEMBER(E(z0, S(z1)), Cons(E(z2, S(z3)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, S(z3), z0, S(z1)), E(z0, S(z1)), Cons(E(z2, S(z3)), Nil)), EQEDGE(E(z0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, S(z3)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), !EQ(z1, z3)), z2, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, S(z3)), Nil)), EQEDGE(E(S(y1), S(z1)), E(z2, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(z2, S(z3)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), !EQ(z1, z3)), z2, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(z2, S(z3)), Nil)), EQEDGE(E(0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(S(y1)), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(S(y5)), y6), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z2), !EQ(z1, z3)), z2, S(z3), S(S(y1)), S(z1)), E(S(S(y1)), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(S(y5)), y6), y7))), EQEDGE(E(S(S(y1)), S(z1)), E(z2, S(z3)))) MEMBER(E(z0, S(S(y2))), Cons(E(z2, S(z3)), Cons(E(y5, S(S(y6))), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(S(y2), z3)), z2, S(z3), z0, S(S(y2))), E(z0, S(S(y2))), Cons(E(z2, S(z3)), Cons(E(y5, S(S(y6))), y7))), EQEDGE(E(z0, S(S(y2))), E(z2, S(z3)))) MEMBER[ITE](False, E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y1, S(y2)), y3))) -> c12(MEMBER(E(z0, 0), Cons(E(y1, S(y2)), y3))) MEMBER[ITE](False, E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y1, 0), y2))) -> c12(MEMBER(E(z0, 0), Cons(E(y1, 0), y2))) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, S(z2)), Cons(E(S(y2), y3), y4))) -> c12(MEMBER(E(S(y0), 0), Cons(E(S(y2), y3), y4))) MEMBER[ITE](False, E(0, 0), Cons(E(z1, S(z2)), Cons(E(S(y1), y2), y3))) -> c12(MEMBER(E(0, 0), Cons(E(S(y1), y2), y3))) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, S(z2)), Cons(E(0, y2), y3))) -> c12(MEMBER(E(S(y0), 0), Cons(E(0, y2), y3))) MEMBER[ITE](False, E(0, 0), Cons(E(z1, S(z2)), Cons(E(0, y1), y2))) -> c12(MEMBER(E(0, 0), Cons(E(0, y1), y2))) MEMBER[ITE](False, E(z0, 0), Cons(E(z1, S(z2)), Nil)) -> c12(MEMBER(E(z0, 0), Nil)) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, S(z2)), Nil)) -> c12(MEMBER(E(S(y0), 0), Nil)) MEMBER[ITE](False, E(0, 0), Cons(E(z1, S(z2)), Nil)) -> c12(MEMBER(E(0, 0), Nil)) MEMBER[ITE](False, E(S(S(y0)), 0), Cons(E(z1, S(z2)), Cons(E(S(S(y2)), y3), y4))) -> c12(MEMBER(E(S(S(y0)), 0), Cons(E(S(S(y2)), y3), y4))) MEMBER(E(S(y1), 0), Cons(E(S(y3), S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), S(y3)), False), S(y3), S(z2), S(y1), 0), E(S(y1), 0), Cons(E(S(y3), S(z2)), z3)), EQEDGE(E(S(y1), 0), E(S(y3), S(z2)))) MEMBER(E(S(S(y0)), 0), Cons(E(S(S(y2)), S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y0)), S(S(y2))), False), S(S(y2)), S(z2), S(S(y0)), 0), E(S(S(y0)), 0), Cons(E(S(S(y2)), S(z2)), z3)), EQEDGE(E(S(S(y0)), 0), E(S(S(y2)), S(z2)))) MEMBER(E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, S(y5)), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), False), z1, S(z2), z0, 0), E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, S(y5)), y6))), EQEDGE(E(z0, 0), E(z1, S(z2)))) MEMBER(E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, 0), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), False), z1, S(z2), z0, 0), E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, 0), y5))), EQEDGE(E(z0, 0), E(z1, S(z2)))) MEMBER(E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(S(y4), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), False), z1, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(S(y4), y5), y6))), EQEDGE(E(S(y1), 0), E(z1, S(z2)))) MEMBER(E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(0, y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), False), z1, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(0, y4), y5))), EQEDGE(E(S(y1), 0), E(z1, S(z2)))) MEMBER(E(z0, 0), Cons(E(z1, S(z2)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), False), z1, S(z2), z0, 0), E(z0, 0), Cons(E(z1, S(z2)), Nil)), EQEDGE(E(z0, 0), E(z1, S(z2)))) MEMBER(E(S(y1), 0), Cons(E(z1, S(z2)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), False), z1, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(z1, S(z2)), Nil)), EQEDGE(E(S(y1), 0), E(z1, S(z2)))) MEMBER(E(S(S(y1)), 0), Cons(E(z1, S(z2)), Cons(E(S(S(y4)), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z1), False), z1, S(z2), S(S(y1)), 0), E(S(S(y1)), 0), Cons(E(z1, S(z2)), Cons(E(S(S(y4)), y5), y6))), EQEDGE(E(S(S(y1)), 0), E(z1, S(z2)))) MEMBER(E(0, 0), Cons(E(S(y2), S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, S(y2)), False), S(y2), S(z2), 0, 0), E(0, 0), Cons(E(S(y2), S(z2)), z3))) MEMBER(E(S(y1), 0), Cons(E(0, S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), 0), False), 0, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(0, S(z2)), z3))) MEMBER(E(0, 0), Cons(E(0, S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, 0), False), 0, S(z2), 0, 0), E(0, 0), Cons(E(0, S(z2)), z3))) MEMBER(E(0, 0), Cons(E(z1, S(z2)), Cons(E(S(y3), y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), False), z1, S(z2), 0, 0), E(0, 0), Cons(E(z1, S(z2)), Cons(E(S(y3), y4), y5)))) MEMBER(E(0, 0), Cons(E(z1, S(z2)), Cons(E(0, y3), y4))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), False), z1, S(z2), 0, 0), E(0, 0), Cons(E(z1, S(z2)), Cons(E(0, y3), y4)))) MEMBER(E(0, 0), Cons(E(z1, S(z2)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), False), z1, S(z2), 0, 0), E(0, 0), Cons(E(z1, S(z2)), Nil))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y2, 0), y3))) -> c12(MEMBER(E(z0, S(z1)), Cons(E(y2, 0), y3))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, 0), Cons(E(S(y2), y3), y4))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(S(y2), y3), y4))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, 0), Cons(E(S(y1), y2), y3))) -> c12(MEMBER(E(0, S(z1)), Cons(E(S(y1), y2), y3))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, 0), Cons(E(0, y2), y3))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(0, y2), y3))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, 0), Cons(E(0, y1), y2))) -> c12(MEMBER(E(0, S(z1)), Cons(E(0, y1), y2))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, 0), Nil)) -> c12(MEMBER(E(z0, S(z1)), Nil)) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, 0), Nil)) -> c12(MEMBER(E(S(y0), S(z1)), Nil)) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, 0), Nil)) -> c12(MEMBER(E(0, S(z1)), Nil)) MEMBER[ITE](False, E(S(S(y0)), S(z1)), Cons(E(z2, 0), Cons(E(S(S(y2)), y3), y4))) -> c12(MEMBER(E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), y3), y4))) MEMBER[ITE](False, E(z0, S(S(y1))), Cons(E(z2, 0), Cons(E(y2, S(S(y3))), y4))) -> c12(MEMBER(E(z0, S(S(y1))), Cons(E(y2, S(S(y3))), y4))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, 0), Cons(E(S(y2), S(y3)), y4))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(S(y2), S(y3)), y4))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, 0), Cons(E(S(y1), S(y2)), y3))) -> c12(MEMBER(E(0, S(z1)), Cons(E(S(y1), S(y2)), y3))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, 0), Cons(E(0, S(y2)), y3))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(0, S(y2)), y3))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, 0), Cons(E(0, S(y1)), y2))) -> c12(MEMBER(E(0, S(z1)), Cons(E(0, S(y1)), y2))) MEMBER[ITE](False, E(S(S(y0)), S(z1)), Cons(E(z2, 0), Cons(E(S(S(y2)), S(y3)), y4))) -> c12(MEMBER(E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), S(y3)), y4))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y2, S(y3)), Cons(E(y4, S(y5)), y6)))) -> c12(MEMBER(E(z0, S(z1)), Cons(E(y2, S(y3)), Cons(E(y4, S(y5)), y6)))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y2, S(y3)), Cons(E(y4, 0), y5)))) -> c12(MEMBER(E(z0, S(z1)), Cons(E(y2, S(y3)), Cons(E(y4, 0), y5)))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, 0), Cons(E(y2, S(y3)), Cons(E(S(y4), y5), y6)))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(y2, S(y3)), Cons(E(S(y4), y5), y6)))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, 0), Cons(E(y1, S(y2)), Cons(E(S(y3), y4), y5)))) -> c12(MEMBER(E(0, S(z1)), Cons(E(y1, S(y2)), Cons(E(S(y3), y4), y5)))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, 0), Cons(E(y2, S(y3)), Cons(E(0, y4), y5)))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(y2, S(y3)), Cons(E(0, y4), y5)))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, 0), Cons(E(y1, S(y2)), Cons(E(0, y3), y4)))) -> c12(MEMBER(E(0, S(z1)), Cons(E(y1, S(y2)), Cons(E(0, y3), y4)))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y2, S(y3)), Nil))) -> c12(MEMBER(E(z0, S(z1)), Cons(E(y2, S(y3)), Nil))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, 0), Cons(E(y2, S(y3)), Nil))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(y2, S(y3)), Nil))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, 0), Cons(E(y1, S(y2)), Nil))) -> c12(MEMBER(E(0, S(z1)), Cons(E(y1, S(y2)), Nil))) MEMBER[ITE](False, E(S(S(y0)), S(z1)), Cons(E(z2, 0), Cons(E(y2, S(y3)), Cons(E(S(S(y4)), y5), y6)))) -> c12(MEMBER(E(S(S(y0)), S(z1)), Cons(E(y2, S(y3)), Cons(E(S(S(y4)), y5), y6)))) MEMBER[ITE](False, E(z0, S(S(y1))), Cons(E(z2, 0), Cons(E(y2, S(y3)), Cons(E(y4, S(S(y5))), y6)))) -> c12(MEMBER(E(z0, S(S(y1))), Cons(E(y2, S(y3)), Cons(E(y4, S(S(y5))), y6)))) MEMBER(E(S(y1), S(z1)), Cons(E(S(y3), 0), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), S(y3)), False), S(y3), 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(S(y3), 0), z3)), EQEDGE(E(S(y1), S(z1)), E(S(y3), 0))) MEMBER(E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), 0), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y0)), S(S(y2))), False), S(S(y2)), 0, S(S(y0)), S(z1)), E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), 0), z3)), EQEDGE(E(S(S(y0)), S(z1)), E(S(S(y2)), 0))) MEMBER(E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, 0), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(z1)), E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, 0), y5))), EQEDGE(E(z0, S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(S(y4), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(S(y4), y5), y6))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(0, y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(0, y4), y5))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(z0, S(z1)), Cons(E(z2, 0), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(z1)), E(z0, S(z1)), Cons(E(z2, 0), Nil)), EQEDGE(E(z0, S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Nil)), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(S(S(y4)), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z2), False), z2, 0, S(S(y1)), S(z1)), E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(S(S(y4)), y5), y6))), EQEDGE(E(S(S(y1)), S(z1)), E(z2, 0))) MEMBER(E(z0, S(S(y2))), Cons(E(z2, 0), Cons(E(y4, S(S(y5))), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(S(y2))), E(z0, S(S(y2))), Cons(E(z2, 0), Cons(E(y4, S(S(y5))), y6))), EQEDGE(E(z0, S(S(y2))), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(S(y4), S(y5)), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(S(y4), S(y5)), y6))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(0, S(y4)), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(0, S(y4)), y5))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(S(S(y4)), S(y5)), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z2), False), z2, 0, S(S(y1)), S(z1)), E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(S(S(y4)), S(y5)), y6))), EQEDGE(E(S(S(y1)), S(z1)), E(z2, 0))) MEMBER(E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, S(y7)), y8)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(z1)), E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, S(y7)), y8)))), EQEDGE(E(z0, S(z1)), E(z2, 0))) MEMBER(E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, 0), y7)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(z1)), E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, 0), y7)))), EQEDGE(E(z0, S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(S(y6), y7), y8)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(S(y6), y7), y8)))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(0, y6), y7)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(0, y6), y7)))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Nil))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(z1)), E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Nil))), EQEDGE(E(z0, S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Nil))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Nil))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(S(S(y6)), y7), y8)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z2), False), z2, 0, S(S(y1)), S(z1)), E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(S(S(y6)), y7), y8)))), EQEDGE(E(S(S(y1)), S(z1)), E(z2, 0))) MEMBER(E(z0, S(S(y2))), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, S(S(y7))), y8)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(S(y2))), E(z0, S(S(y2))), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, S(S(y7))), y8)))), EQEDGE(E(z0, S(S(y2))), E(z2, 0))) MEMBER(E(0, S(z1)), Cons(E(S(y2), 0), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, S(y2)), False), S(y2), 0, 0, S(z1)), E(0, S(z1)), Cons(E(S(y2), 0), z3))) MEMBER(E(S(y1), S(z1)), Cons(E(0, 0), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), 0), False), 0, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(0, 0), z3))) MEMBER(E(0, S(z1)), Cons(E(0, 0), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, 0), False), 0, 0, 0, S(z1)), E(0, S(z1)), Cons(E(0, 0), z3))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(S(y3), y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(S(y3), y4), y5)))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(0, y3), y4))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(0, y3), y4)))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Nil))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(S(y3), S(y4)), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(S(y3), S(y4)), y5)))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(0, S(y3)), y4))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(0, S(y3)), y4)))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Cons(E(S(y5), y6), y7)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Cons(E(S(y5), y6), y7))))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Cons(E(0, y5), y6)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Cons(E(0, y5), y6))))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Nil))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Nil)))) MEMBER[ITE](False, E(z0, 0), Cons(E(z1, 0), Cons(E(y1, 0), y2))) -> c12(MEMBER(E(z0, 0), Cons(E(y1, 0), y2))) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, 0), Cons(E(S(y2), y3), y4))) -> c12(MEMBER(E(S(y0), 0), Cons(E(S(y2), y3), y4))) MEMBER[ITE](False, E(0, 0), Cons(E(z1, 0), Cons(E(S(y1), y2), y3))) -> c12(MEMBER(E(0, 0), Cons(E(S(y1), y2), y3))) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, 0), Cons(E(0, y2), y3))) -> c12(MEMBER(E(S(y0), 0), Cons(E(0, y2), y3))) MEMBER[ITE](False, E(0, 0), Cons(E(z1, 0), Cons(E(0, y1), y2))) -> c12(MEMBER(E(0, 0), Cons(E(0, y1), y2))) MEMBER[ITE](False, E(z0, 0), Cons(E(z1, 0), Nil)) -> c12(MEMBER(E(z0, 0), Nil)) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, 0), Nil)) -> c12(MEMBER(E(S(y0), 0), Nil)) MEMBER[ITE](False, E(0, 0), Cons(E(z1, 0), Nil)) -> c12(MEMBER(E(0, 0), Nil)) MEMBER[ITE](False, E(S(S(y0)), 0), Cons(E(z1, 0), Cons(E(S(S(y2)), y3), y4))) -> c12(MEMBER(E(S(S(y0)), 0), Cons(E(S(S(y2)), y3), y4))) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, 0), Cons(E(S(y1), S(y2)), y3))) -> c12(MEMBER(E(S(y0), 0), Cons(E(S(y1), S(y2)), y3))) MEMBER[ITE](False, E(S(S(y0)), 0), Cons(E(z1, 0), Cons(E(S(S(y1)), S(y2)), y3))) -> c12(MEMBER(E(S(S(y0)), 0), Cons(E(S(S(y1)), S(y2)), y3))) MEMBER[ITE](False, E(z0, 0), Cons(E(z1, 0), Cons(E(y1, S(y2)), Cons(E(y3, S(y4)), y5)))) -> c12(MEMBER(E(z0, 0), Cons(E(y1, S(y2)), Cons(E(y3, S(y4)), y5)))) MEMBER[ITE](False, E(z0, 0), Cons(E(z1, 0), Cons(E(y1, S(y2)), Cons(E(y3, 0), y4)))) -> c12(MEMBER(E(z0, 0), Cons(E(y1, S(y2)), Cons(E(y3, 0), y4)))) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, 0), Cons(E(y1, S(y2)), Cons(E(S(y3), y4), y5)))) -> c12(MEMBER(E(S(y0), 0), Cons(E(y1, S(y2)), Cons(E(S(y3), y4), y5)))) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, 0), Cons(E(y1, S(y2)), Cons(E(0, y3), y4)))) -> c12(MEMBER(E(S(y0), 0), Cons(E(y1, S(y2)), Cons(E(0, y3), y4)))) MEMBER[ITE](False, E(z0, 0), Cons(E(z1, 0), Cons(E(y1, S(y2)), Nil))) -> c12(MEMBER(E(z0, 0), Cons(E(y1, S(y2)), Nil))) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, 0), Cons(E(y1, S(y2)), Nil))) -> c12(MEMBER(E(S(y0), 0), Cons(E(y1, S(y2)), Nil))) MEMBER[ITE](False, E(S(S(y0)), 0), Cons(E(z1, 0), Cons(E(y1, S(y2)), Cons(E(S(S(y3)), y4), y5)))) -> c12(MEMBER(E(S(S(y0)), 0), Cons(E(y1, S(y2)), Cons(E(S(S(y3)), y4), y5)))) MEMBER[ITE](False, E(0, 0), Cons(E(z1, 0), Cons(E(S(y0), S(y1)), y2))) -> c12(MEMBER(E(0, 0), Cons(E(S(y0), S(y1)), y2))) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, 0), Cons(E(0, S(y1)), y2))) -> c12(MEMBER(E(S(y0), 0), Cons(E(0, S(y1)), y2))) MEMBER[ITE](False, E(0, 0), Cons(E(z1, 0), Cons(E(0, S(y0)), y1))) -> c12(MEMBER(E(0, 0), Cons(E(0, S(y0)), y1))) MEMBER[ITE](False, E(0, 0), Cons(E(z1, 0), Cons(E(y0, S(y1)), Cons(E(S(y2), y3), y4)))) -> c12(MEMBER(E(0, 0), Cons(E(y0, S(y1)), Cons(E(S(y2), y3), y4)))) MEMBER[ITE](False, E(0, 0), Cons(E(z1, 0), Cons(E(y0, S(y1)), Cons(E(0, y2), y3)))) -> c12(MEMBER(E(0, 0), Cons(E(y0, S(y1)), Cons(E(0, y2), y3)))) MEMBER[ITE](False, E(0, 0), Cons(E(z1, 0), Cons(E(y0, S(y1)), Nil))) -> c12(MEMBER(E(0, 0), Cons(E(y0, S(y1)), Nil))) MEMBER(E(S(z0), S(z1)), Cons(E(S(z2), S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), S(z2), S(z3), S(z0), S(z1)), E(S(z0), S(z1)), Cons(E(S(z2), S(z3)), z4)), EQEDGE(E(S(z0), S(z1)), E(S(z2), S(z3)))) MEMBER(E(0, S(z0)), Cons(E(S(z1), S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(z0, z2)), S(z1), S(z2), 0, S(z0)), E(0, S(z0)), Cons(E(S(z1), S(z2)), z3)), EQEDGE(E(0, S(z0)), E(S(z1), S(z2)))) MEMBER(E(S(y1), 0), Cons(E(S(y3), 0), z2)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), S(y3)), True), S(y3), 0, S(y1), 0), E(S(y1), 0), Cons(E(S(y3), 0), z2)), EQEDGE(E(S(y1), 0), E(S(y3), 0))) MEMBER(E(0, 0), Cons(E(S(y2), 0), z2)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, S(y2)), True), S(y2), 0, 0, 0), E(0, 0), Cons(E(S(y2), 0), z2)), EQEDGE(E(0, 0), E(S(y2), 0))) MEMBER(E(S(y1), 0), Cons(E(0, 0), z2)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), 0), True), 0, 0, S(y1), 0), E(S(y1), 0), Cons(E(0, 0), z2)), EQEDGE(E(S(y1), 0), E(0, 0))) MEMBER(E(0, 0), Cons(E(0, 0), z2)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, 0), True), 0, 0, 0, 0), E(0, 0), Cons(E(0, 0), z2)), EQEDGE(E(0, 0), E(0, 0))) MEMBER(E(S(S(y0)), 0), Cons(E(S(S(y2)), 0), z2)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y0)), S(S(y2))), True), S(S(y2)), 0, S(S(y0)), 0), E(S(S(y0)), 0), Cons(E(S(S(y2)), 0), z2)), EQEDGE(E(S(S(y0)), 0), E(S(S(y2)), 0))) MEMBER(E(z0, 0), Cons(E(z1, 0), Cons(E(y3, 0), y4))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), True), z1, 0, z0, 0), E(z0, 0), Cons(E(z1, 0), Cons(E(y3, 0), y4))), EQEDGE(E(z0, 0), E(z1, 0))) MEMBER(E(S(y1), 0), Cons(E(z1, 0), Cons(E(S(y3), y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), True), z1, 0, S(y1), 0), E(S(y1), 0), Cons(E(z1, 0), Cons(E(S(y3), y4), y5))), EQEDGE(E(S(y1), 0), E(z1, 0))) MEMBER(E(0, 0), Cons(E(z1, 0), Cons(E(S(y2), y3), y4))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), True), z1, 0, 0, 0), E(0, 0), Cons(E(z1, 0), Cons(E(S(y2), y3), y4))), EQEDGE(E(0, 0), E(z1, 0))) MEMBER(E(S(y1), 0), Cons(E(z1, 0), Cons(E(0, y3), y4))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), True), z1, 0, S(y1), 0), E(S(y1), 0), Cons(E(z1, 0), Cons(E(0, y3), y4))), EQEDGE(E(S(y1), 0), E(z1, 0))) MEMBER(E(0, 0), Cons(E(z1, 0), Cons(E(0, y2), y3))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), True), z1, 0, 0, 0), E(0, 0), Cons(E(z1, 0), Cons(E(0, y2), y3))), EQEDGE(E(0, 0), E(z1, 0))) MEMBER(E(z0, 0), Cons(E(z1, 0), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), True), z1, 0, z0, 0), E(z0, 0), Cons(E(z1, 0), Nil)), EQEDGE(E(z0, 0), E(z1, 0))) MEMBER(E(S(y1), 0), Cons(E(z1, 0), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), True), z1, 0, S(y1), 0), E(S(y1), 0), Cons(E(z1, 0), Nil)), EQEDGE(E(S(y1), 0), E(z1, 0))) MEMBER(E(0, 0), Cons(E(z1, 0), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), True), z1, 0, 0, 0), E(0, 0), Cons(E(z1, 0), Nil)), EQEDGE(E(0, 0), E(z1, 0))) MEMBER(E(S(S(y1)), 0), Cons(E(z1, 0), Cons(E(S(S(y3)), y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z1), True), z1, 0, S(S(y1)), 0), E(S(S(y1)), 0), Cons(E(z1, 0), Cons(E(S(S(y3)), y4), y5))), EQEDGE(E(S(S(y1)), 0), E(z1, 0))) MEMBER(E(S(y1), 0), Cons(E(z1, 0), Cons(E(S(y3), S(y4)), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), True), z1, 0, S(y1), 0), E(S(y1), 0), Cons(E(z1, 0), Cons(E(S(y3), S(y4)), y5))), EQEDGE(E(S(y1), 0), E(z1, 0))) MEMBER(E(S(S(y1)), 0), Cons(E(z1, 0), Cons(E(S(S(y3)), S(y4)), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z1), True), z1, 0, S(S(y1)), 0), E(S(S(y1)), 0), Cons(E(z1, 0), Cons(E(S(S(y3)), S(y4)), y5))), EQEDGE(E(S(S(y1)), 0), E(z1, 0))) MEMBER(E(z0, 0), Cons(E(z1, 0), Cons(E(y3, S(y4)), Cons(E(y5, S(y6)), y7)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), True), z1, 0, z0, 0), E(z0, 0), Cons(E(z1, 0), Cons(E(y3, S(y4)), Cons(E(y5, S(y6)), y7)))), EQEDGE(E(z0, 0), E(z1, 0))) MEMBER(E(z0, 0), Cons(E(z1, 0), Cons(E(y3, S(y4)), Cons(E(y5, 0), y6)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), True), z1, 0, z0, 0), E(z0, 0), Cons(E(z1, 0), Cons(E(y3, S(y4)), Cons(E(y5, 0), y6)))), EQEDGE(E(z0, 0), E(z1, 0))) MEMBER(E(S(y1), 0), Cons(E(z1, 0), Cons(E(y3, S(y4)), Cons(E(S(y5), y6), y7)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), True), z1, 0, S(y1), 0), E(S(y1), 0), Cons(E(z1, 0), Cons(E(y3, S(y4)), Cons(E(S(y5), y6), y7)))), EQEDGE(E(S(y1), 0), E(z1, 0))) MEMBER(E(S(y1), 0), Cons(E(z1, 0), Cons(E(y3, S(y4)), Cons(E(0, y5), y6)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), True), z1, 0, S(y1), 0), E(S(y1), 0), Cons(E(z1, 0), Cons(E(y3, S(y4)), Cons(E(0, y5), y6)))), EQEDGE(E(S(y1), 0), E(z1, 0))) MEMBER(E(z0, 0), Cons(E(z1, 0), Cons(E(y3, S(y4)), Nil))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), True), z1, 0, z0, 0), E(z0, 0), Cons(E(z1, 0), Cons(E(y3, S(y4)), Nil))), EQEDGE(E(z0, 0), E(z1, 0))) MEMBER(E(S(y1), 0), Cons(E(z1, 0), Cons(E(y3, S(y4)), Nil))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), True), z1, 0, S(y1), 0), E(S(y1), 0), Cons(E(z1, 0), Cons(E(y3, S(y4)), Nil))), EQEDGE(E(S(y1), 0), E(z1, 0))) MEMBER(E(S(S(y1)), 0), Cons(E(z1, 0), Cons(E(y3, S(y4)), Cons(E(S(S(y5)), y6), y7)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z1), True), z1, 0, S(S(y1)), 0), E(S(S(y1)), 0), Cons(E(z1, 0), Cons(E(y3, S(y4)), Cons(E(S(S(y5)), y6), y7)))), EQEDGE(E(S(S(y1)), 0), E(z1, 0))) MEMBER(E(0, 0), Cons(E(z1, 0), Cons(E(S(y2), S(y3)), y4))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), True), z1, 0, 0, 0), E(0, 0), Cons(E(z1, 0), Cons(E(S(y2), S(y3)), y4))), EQEDGE(E(0, 0), E(z1, 0))) MEMBER(E(S(y1), 0), Cons(E(z1, 0), Cons(E(0, S(y3)), y4))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), True), z1, 0, S(y1), 0), E(S(y1), 0), Cons(E(z1, 0), Cons(E(0, S(y3)), y4))), EQEDGE(E(S(y1), 0), E(z1, 0))) MEMBER(E(0, 0), Cons(E(z1, 0), Cons(E(0, S(y2)), y3))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), True), z1, 0, 0, 0), E(0, 0), Cons(E(z1, 0), Cons(E(0, S(y2)), y3))), EQEDGE(E(0, 0), E(z1, 0))) MEMBER(E(0, 0), Cons(E(z1, 0), Cons(E(y2, S(y3)), Cons(E(S(y4), y5), y6)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), True), z1, 0, 0, 0), E(0, 0), Cons(E(z1, 0), Cons(E(y2, S(y3)), Cons(E(S(y4), y5), y6)))), EQEDGE(E(0, 0), E(z1, 0))) MEMBER(E(0, 0), Cons(E(z1, 0), Cons(E(y2, S(y3)), Cons(E(0, y4), y5)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), True), z1, 0, 0, 0), E(0, 0), Cons(E(z1, 0), Cons(E(y2, S(y3)), Cons(E(0, y4), y5)))), EQEDGE(E(0, 0), E(z1, 0))) MEMBER(E(0, 0), Cons(E(z1, 0), Cons(E(y2, S(y3)), Nil))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), True), z1, 0, 0, 0), E(0, 0), Cons(E(z1, 0), Cons(E(y2, S(y3)), Nil))), EQEDGE(E(0, 0), E(z1, 0))) S tuples: VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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))) REACH(x0, x1, Nil) -> c1(REACH[ITE](False, x0, x1, Nil)) REACH(x0, x1, Nil) -> c1(MEMBER(E(x0, x1), Nil)) VIA(0, x0, Nil, x4) -> c22 VIA(S(x0), x1, Nil, x4) -> c22 VIA(S(S(x0)), x1, Nil, x5) -> c22 VIA(S(0), x0, Nil, x4) -> c22 VIA(x0, x1, Nil, Nil) -> c22 VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5)) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5)) MEMBER(E(x0, x1), Nil) -> c24 MEMBER(E(x0, S(x1)), Nil) -> c24 MEMBER(E(x0, 0), Nil) -> c24 MEMBER(E(S(x0), x1), Nil) -> c24 MEMBER(E(0, x0), Nil) -> c24 VIA(0, x0, Nil, Cons(z2, z3)) -> c22 VIA(S(x0), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(S(x0)), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(0), x0, Nil, Cons(z2, z3)) -> c22 EQEDGE(E(S(S(y0)), z1), E(S(S(y1)), z3)) -> c25(!EQ'(S(S(y0)), S(S(y1)))) EQEDGE(E(z0, S(S(y0))), E(z2, S(S(y1)))) -> c26(!EQ'(S(S(y0)), S(S(y1)))) REACH(z0, S(y1), Cons(E(y2, S(y3)), y4)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, S(y3)), y4))) REACH(z0, 0, Cons(E(y1, S(y2)), y3)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, S(y2)), y3))) REACH(z0, S(y1), Cons(E(y2, 0), y3)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, 0), y3))) REACH(z0, 0, Cons(E(y1, 0), y2)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, 0), y2))) REACH(S(y0), z1, Cons(E(S(y2), y3), y4)) -> c29(MEMBER(E(S(y0), z1), Cons(E(S(y2), y3), y4))) REACH(0, z1, Cons(E(S(y1), y2), y3)) -> c29(MEMBER(E(0, z1), Cons(E(S(y1), y2), y3))) REACH(S(y0), z1, Cons(E(0, y2), y3)) -> c29(MEMBER(E(S(y0), z1), Cons(E(0, y2), y3))) REACH(0, z1, Cons(E(0, y1), y2)) -> c29(MEMBER(E(0, z1), Cons(E(0, y1), y2))) REACH(z0, z1, Cons(E(y2, y3), y4)) -> c29(MEMBER(E(z0, z1), Cons(E(y2, y3), y4))) REACH(z0, z1, Nil) -> c29(MEMBER(E(z0, z1), Nil)) REACH(z0, S(y1), Nil) -> c29(MEMBER(E(z0, S(y1)), Nil)) REACH(z0, 0, Nil) -> c29(MEMBER(E(z0, 0), Nil)) REACH(S(y0), z1, Nil) -> c29(MEMBER(E(S(y0), z1), Nil)) REACH(0, z1, Nil) -> c29(MEMBER(E(0, z1), Nil)) VIA(S(S(y0)), z1, Cons(E(S(S(y1)), z3), z4), z5) -> c21(!EQ'(S(S(y0)), S(S(y1)))) MEMBER(E(S(S(y0)), z1), Cons(E(S(S(y2)), z3), z4)) -> c23(EQEDGE(E(S(S(y0)), z1), E(S(S(y2)), z3))) MEMBER(E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)) -> c23(EQEDGE(E(z0, S(S(y1))), E(z2, S(S(y3))))) VIA(0, z0, Cons(E(S(z1), z2), Cons(E(S(y3), y4), y5)), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(S(y3), y4), y5)), z4)) VIA(0, z0, Cons(E(S(z1), z2), Cons(E(0, y3), y4)), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(0, y3), y4)), z4)) VIA(0, z0, Cons(E(S(z1), z2), Nil), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), z4)) VIA(0, z0, Cons(E(S(z1), z2), Nil), Nil) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Nil)) VIA(0, z0, Cons(E(S(z1), z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Cons(y3, y4))) VIA(S(z0), z1, Cons(E(0, z2), Cons(E(0, y3), y4)), z4) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Cons(E(0, y3), y4)), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y3)), y4), y5)), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y3)), y4), y5)), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), z4)) VIA(S(0), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), Nil) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Nil)) VIA(S(0), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y3), y4)), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y3), y4)), z4)) VIA(S(0), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Cons(y3, y4))) VIA(S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y3, y4))) VIA(S(0), z1, Cons(E(0, z2), Nil), Cons(y2, y3)) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), Cons(y2, y3))) MEMBER(E(S(y1), S(z1)), Cons(E(0, S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), 0), !EQ(z1, z3)), 0, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(0, S(z3)), z4)), EQEDGE(E(S(y1), S(z1)), E(0, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(0, S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, 0), !EQ(z1, z3)), 0, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(0, S(z3)), z4)), EQEDGE(E(0, S(z1)), E(0, S(z3)))) MEMBER(E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y0)), S(S(y2))), !EQ(z1, z3)), S(S(y2)), S(z3), S(S(y0)), S(z1)), E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), S(z3)), z4)), EQEDGE(E(S(S(y0)), S(z1)), E(S(S(y2)), S(z3)))) MEMBER(E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(S(y1), S(y3))), z2, S(S(y3)), z0, S(S(y1))), E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)), EQEDGE(E(z0, S(S(y1))), E(z2, S(S(y3))))) MEMBER(E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, S(y6)), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, S(z3), z0, S(z1)), E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, S(y6)), y7))), EQEDGE(E(z0, S(z1)), E(z2, S(z3)))) MEMBER(E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, 0), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, S(z3), z0, S(z1)), E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, 0), y6))), EQEDGE(E(z0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y5), y6), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), !EQ(z1, z3)), z2, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y5), y6), y7))), EQEDGE(E(S(y1), S(z1)), E(z2, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y4), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), !EQ(z1, z3)), z2, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y4), y5), y6))), EQEDGE(E(0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), !EQ(z1, z3)), z2, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y5), y6))), EQEDGE(E(S(y1), S(z1)), E(z2, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), !EQ(z1, z3)), z2, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y4), y5))), EQEDGE(E(0, S(z1)), E(z2, S(z3)))) MEMBER(E(z0, S(z1)), Cons(E(z2, S(z3)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, S(z3), z0, S(z1)), E(z0, S(z1)), Cons(E(z2, S(z3)), Nil)), EQEDGE(E(z0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, S(z3)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), !EQ(z1, z3)), z2, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, S(z3)), Nil)), EQEDGE(E(S(y1), S(z1)), E(z2, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(z2, S(z3)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), !EQ(z1, z3)), z2, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(z2, S(z3)), Nil)), EQEDGE(E(0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(S(y1)), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(S(y5)), y6), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z2), !EQ(z1, z3)), z2, S(z3), S(S(y1)), S(z1)), E(S(S(y1)), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(S(y5)), y6), y7))), EQEDGE(E(S(S(y1)), S(z1)), E(z2, S(z3)))) MEMBER(E(z0, S(S(y2))), Cons(E(z2, S(z3)), Cons(E(y5, S(S(y6))), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(S(y2), z3)), z2, S(z3), z0, S(S(y2))), E(z0, S(S(y2))), Cons(E(z2, S(z3)), Cons(E(y5, S(S(y6))), y7))), EQEDGE(E(z0, S(S(y2))), E(z2, S(z3)))) MEMBER(E(S(y1), 0), Cons(E(S(y3), S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), S(y3)), False), S(y3), S(z2), S(y1), 0), E(S(y1), 0), Cons(E(S(y3), S(z2)), z3)), EQEDGE(E(S(y1), 0), E(S(y3), S(z2)))) MEMBER(E(S(S(y0)), 0), Cons(E(S(S(y2)), S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y0)), S(S(y2))), False), S(S(y2)), S(z2), S(S(y0)), 0), E(S(S(y0)), 0), Cons(E(S(S(y2)), S(z2)), z3)), EQEDGE(E(S(S(y0)), 0), E(S(S(y2)), S(z2)))) MEMBER(E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, S(y5)), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), False), z1, S(z2), z0, 0), E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, S(y5)), y6))), EQEDGE(E(z0, 0), E(z1, S(z2)))) MEMBER(E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, 0), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), False), z1, S(z2), z0, 0), E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, 0), y5))), EQEDGE(E(z0, 0), E(z1, S(z2)))) MEMBER(E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(S(y4), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), False), z1, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(S(y4), y5), y6))), EQEDGE(E(S(y1), 0), E(z1, S(z2)))) MEMBER(E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(0, y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), False), z1, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(0, y4), y5))), EQEDGE(E(S(y1), 0), E(z1, S(z2)))) MEMBER(E(z0, 0), Cons(E(z1, S(z2)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), False), z1, S(z2), z0, 0), E(z0, 0), Cons(E(z1, S(z2)), Nil)), EQEDGE(E(z0, 0), E(z1, S(z2)))) MEMBER(E(S(y1), 0), Cons(E(z1, S(z2)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), False), z1, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(z1, S(z2)), Nil)), EQEDGE(E(S(y1), 0), E(z1, S(z2)))) MEMBER(E(S(S(y1)), 0), Cons(E(z1, S(z2)), Cons(E(S(S(y4)), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z1), False), z1, S(z2), S(S(y1)), 0), E(S(S(y1)), 0), Cons(E(z1, S(z2)), Cons(E(S(S(y4)), y5), y6))), EQEDGE(E(S(S(y1)), 0), E(z1, S(z2)))) MEMBER(E(0, 0), Cons(E(S(y2), S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, S(y2)), False), S(y2), S(z2), 0, 0), E(0, 0), Cons(E(S(y2), S(z2)), z3))) MEMBER(E(S(y1), 0), Cons(E(0, S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), 0), False), 0, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(0, S(z2)), z3))) MEMBER(E(0, 0), Cons(E(0, S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, 0), False), 0, S(z2), 0, 0), E(0, 0), Cons(E(0, S(z2)), z3))) MEMBER(E(0, 0), Cons(E(z1, S(z2)), Cons(E(S(y3), y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), False), z1, S(z2), 0, 0), E(0, 0), Cons(E(z1, S(z2)), Cons(E(S(y3), y4), y5)))) MEMBER(E(0, 0), Cons(E(z1, S(z2)), Cons(E(0, y3), y4))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), False), z1, S(z2), 0, 0), E(0, 0), Cons(E(z1, S(z2)), Cons(E(0, y3), y4)))) MEMBER(E(0, 0), Cons(E(z1, S(z2)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), False), z1, S(z2), 0, 0), E(0, 0), Cons(E(z1, S(z2)), Nil))) MEMBER(E(S(y1), S(z1)), Cons(E(S(y3), 0), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), S(y3)), False), S(y3), 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(S(y3), 0), z3)), EQEDGE(E(S(y1), S(z1)), E(S(y3), 0))) MEMBER(E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), 0), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y0)), S(S(y2))), False), S(S(y2)), 0, S(S(y0)), S(z1)), E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), 0), z3)), EQEDGE(E(S(S(y0)), S(z1)), E(S(S(y2)), 0))) MEMBER(E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, 0), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(z1)), E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, 0), y5))), EQEDGE(E(z0, S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(S(y4), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(S(y4), y5), y6))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(0, y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(0, y4), y5))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(z0, S(z1)), Cons(E(z2, 0), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(z1)), E(z0, S(z1)), Cons(E(z2, 0), Nil)), EQEDGE(E(z0, S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Nil)), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(S(S(y4)), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z2), False), z2, 0, S(S(y1)), S(z1)), E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(S(S(y4)), y5), y6))), EQEDGE(E(S(S(y1)), S(z1)), E(z2, 0))) MEMBER(E(z0, S(S(y2))), Cons(E(z2, 0), Cons(E(y4, S(S(y5))), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(S(y2))), E(z0, S(S(y2))), Cons(E(z2, 0), Cons(E(y4, S(S(y5))), y6))), EQEDGE(E(z0, S(S(y2))), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(S(y4), S(y5)), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(S(y4), S(y5)), y6))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(0, S(y4)), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(0, S(y4)), y5))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(S(S(y4)), S(y5)), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z2), False), z2, 0, S(S(y1)), S(z1)), E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(S(S(y4)), S(y5)), y6))), EQEDGE(E(S(S(y1)), S(z1)), E(z2, 0))) MEMBER(E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, S(y7)), y8)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(z1)), E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, S(y7)), y8)))), EQEDGE(E(z0, S(z1)), E(z2, 0))) MEMBER(E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, 0), y7)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(z1)), E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, 0), y7)))), EQEDGE(E(z0, S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(S(y6), y7), y8)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(S(y6), y7), y8)))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(0, y6), y7)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(0, y6), y7)))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Nil))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(z1)), E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Nil))), EQEDGE(E(z0, S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Nil))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Nil))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(S(S(y6)), y7), y8)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z2), False), z2, 0, S(S(y1)), S(z1)), E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(S(S(y6)), y7), y8)))), EQEDGE(E(S(S(y1)), S(z1)), E(z2, 0))) MEMBER(E(z0, S(S(y2))), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, S(S(y7))), y8)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(S(y2))), E(z0, S(S(y2))), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, S(S(y7))), y8)))), EQEDGE(E(z0, S(S(y2))), E(z2, 0))) MEMBER(E(0, S(z1)), Cons(E(S(y2), 0), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, S(y2)), False), S(y2), 0, 0, S(z1)), E(0, S(z1)), Cons(E(S(y2), 0), z3))) MEMBER(E(S(y1), S(z1)), Cons(E(0, 0), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), 0), False), 0, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(0, 0), z3))) MEMBER(E(0, S(z1)), Cons(E(0, 0), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, 0), False), 0, 0, 0, S(z1)), E(0, S(z1)), Cons(E(0, 0), z3))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(S(y3), y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(S(y3), y4), y5)))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(0, y3), y4))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(0, y3), y4)))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Nil))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(S(y3), S(y4)), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(S(y3), S(y4)), y5)))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(0, S(y3)), y4))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(0, S(y3)), y4)))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Cons(E(S(y5), y6), y7)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Cons(E(S(y5), y6), y7))))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Cons(E(0, y5), y6)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Cons(E(0, y5), y6))))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Nil))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Nil)))) MEMBER(E(S(z0), S(z1)), Cons(E(S(z2), S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), S(z2), S(z3), S(z0), S(z1)), E(S(z0), S(z1)), Cons(E(S(z2), S(z3)), z4)), EQEDGE(E(S(z0), S(z1)), E(S(z2), S(z3)))) MEMBER(E(0, S(z0)), Cons(E(S(z1), S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(z0, z2)), S(z1), S(z2), 0, S(z0)), E(0, S(z0)), Cons(E(S(z1), S(z2)), z3)), EQEDGE(E(0, S(z0)), E(S(z1), S(z2)))) MEMBER(E(S(y1), 0), Cons(E(S(y3), 0), z2)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), S(y3)), True), S(y3), 0, S(y1), 0), E(S(y1), 0), Cons(E(S(y3), 0), z2)), EQEDGE(E(S(y1), 0), E(S(y3), 0))) MEMBER(E(0, 0), Cons(E(S(y2), 0), z2)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, S(y2)), True), S(y2), 0, 0, 0), E(0, 0), Cons(E(S(y2), 0), z2)), EQEDGE(E(0, 0), E(S(y2), 0))) MEMBER(E(S(y1), 0), Cons(E(0, 0), z2)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), 0), True), 0, 0, S(y1), 0), E(S(y1), 0), Cons(E(0, 0), z2)), EQEDGE(E(S(y1), 0), E(0, 0))) MEMBER(E(0, 0), Cons(E(0, 0), z2)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, 0), True), 0, 0, 0, 0), E(0, 0), Cons(E(0, 0), z2)), EQEDGE(E(0, 0), E(0, 0))) MEMBER(E(S(S(y0)), 0), Cons(E(S(S(y2)), 0), z2)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y0)), S(S(y2))), True), S(S(y2)), 0, S(S(y0)), 0), E(S(S(y0)), 0), Cons(E(S(S(y2)), 0), z2)), EQEDGE(E(S(S(y0)), 0), E(S(S(y2)), 0))) MEMBER(E(z0, 0), Cons(E(z1, 0), Cons(E(y3, 0), y4))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), True), z1, 0, z0, 0), E(z0, 0), Cons(E(z1, 0), Cons(E(y3, 0), y4))), EQEDGE(E(z0, 0), E(z1, 0))) MEMBER(E(S(y1), 0), Cons(E(z1, 0), Cons(E(S(y3), y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), True), z1, 0, S(y1), 0), E(S(y1), 0), Cons(E(z1, 0), Cons(E(S(y3), y4), y5))), EQEDGE(E(S(y1), 0), E(z1, 0))) MEMBER(E(0, 0), Cons(E(z1, 0), Cons(E(S(y2), y3), y4))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), True), z1, 0, 0, 0), E(0, 0), Cons(E(z1, 0), Cons(E(S(y2), y3), y4))), EQEDGE(E(0, 0), E(z1, 0))) MEMBER(E(S(y1), 0), Cons(E(z1, 0), Cons(E(0, y3), y4))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), True), z1, 0, S(y1), 0), E(S(y1), 0), Cons(E(z1, 0), Cons(E(0, y3), y4))), EQEDGE(E(S(y1), 0), E(z1, 0))) MEMBER(E(0, 0), Cons(E(z1, 0), Cons(E(0, y2), y3))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), True), z1, 0, 0, 0), E(0, 0), Cons(E(z1, 0), Cons(E(0, y2), y3))), EQEDGE(E(0, 0), E(z1, 0))) MEMBER(E(z0, 0), Cons(E(z1, 0), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), True), z1, 0, z0, 0), E(z0, 0), Cons(E(z1, 0), Nil)), EQEDGE(E(z0, 0), E(z1, 0))) MEMBER(E(S(y1), 0), Cons(E(z1, 0), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), True), z1, 0, S(y1), 0), E(S(y1), 0), Cons(E(z1, 0), Nil)), EQEDGE(E(S(y1), 0), E(z1, 0))) MEMBER(E(0, 0), Cons(E(z1, 0), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), True), z1, 0, 0, 0), E(0, 0), Cons(E(z1, 0), Nil)), EQEDGE(E(0, 0), E(z1, 0))) MEMBER(E(S(S(y1)), 0), Cons(E(z1, 0), Cons(E(S(S(y3)), y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z1), True), z1, 0, S(S(y1)), 0), E(S(S(y1)), 0), Cons(E(z1, 0), Cons(E(S(S(y3)), y4), y5))), EQEDGE(E(S(S(y1)), 0), E(z1, 0))) MEMBER(E(S(y1), 0), Cons(E(z1, 0), Cons(E(S(y3), S(y4)), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), True), z1, 0, S(y1), 0), E(S(y1), 0), Cons(E(z1, 0), Cons(E(S(y3), S(y4)), y5))), EQEDGE(E(S(y1), 0), E(z1, 0))) MEMBER(E(S(S(y1)), 0), Cons(E(z1, 0), Cons(E(S(S(y3)), S(y4)), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z1), True), z1, 0, S(S(y1)), 0), E(S(S(y1)), 0), Cons(E(z1, 0), Cons(E(S(S(y3)), S(y4)), y5))), EQEDGE(E(S(S(y1)), 0), E(z1, 0))) MEMBER(E(z0, 0), Cons(E(z1, 0), Cons(E(y3, S(y4)), Cons(E(y5, S(y6)), y7)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), True), z1, 0, z0, 0), E(z0, 0), Cons(E(z1, 0), Cons(E(y3, S(y4)), Cons(E(y5, S(y6)), y7)))), EQEDGE(E(z0, 0), E(z1, 0))) MEMBER(E(z0, 0), Cons(E(z1, 0), Cons(E(y3, S(y4)), Cons(E(y5, 0), y6)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), True), z1, 0, z0, 0), E(z0, 0), Cons(E(z1, 0), Cons(E(y3, S(y4)), Cons(E(y5, 0), y6)))), EQEDGE(E(z0, 0), E(z1, 0))) MEMBER(E(S(y1), 0), Cons(E(z1, 0), Cons(E(y3, S(y4)), Cons(E(S(y5), y6), y7)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), True), z1, 0, S(y1), 0), E(S(y1), 0), Cons(E(z1, 0), Cons(E(y3, S(y4)), Cons(E(S(y5), y6), y7)))), EQEDGE(E(S(y1), 0), E(z1, 0))) MEMBER(E(S(y1), 0), Cons(E(z1, 0), Cons(E(y3, S(y4)), Cons(E(0, y5), y6)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), True), z1, 0, S(y1), 0), E(S(y1), 0), Cons(E(z1, 0), Cons(E(y3, S(y4)), Cons(E(0, y5), y6)))), EQEDGE(E(S(y1), 0), E(z1, 0))) MEMBER(E(z0, 0), Cons(E(z1, 0), Cons(E(y3, S(y4)), Nil))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), True), z1, 0, z0, 0), E(z0, 0), Cons(E(z1, 0), Cons(E(y3, S(y4)), Nil))), EQEDGE(E(z0, 0), E(z1, 0))) MEMBER(E(S(y1), 0), Cons(E(z1, 0), Cons(E(y3, S(y4)), Nil))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), True), z1, 0, S(y1), 0), E(S(y1), 0), Cons(E(z1, 0), Cons(E(y3, S(y4)), Nil))), EQEDGE(E(S(y1), 0), E(z1, 0))) MEMBER(E(S(S(y1)), 0), Cons(E(z1, 0), Cons(E(y3, S(y4)), Cons(E(S(S(y5)), y6), y7)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z1), True), z1, 0, S(S(y1)), 0), E(S(S(y1)), 0), Cons(E(z1, 0), Cons(E(y3, S(y4)), Cons(E(S(S(y5)), y6), y7)))), EQEDGE(E(S(S(y1)), 0), E(z1, 0))) MEMBER(E(0, 0), Cons(E(z1, 0), Cons(E(S(y2), S(y3)), y4))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), True), z1, 0, 0, 0), E(0, 0), Cons(E(z1, 0), Cons(E(S(y2), S(y3)), y4))), EQEDGE(E(0, 0), E(z1, 0))) MEMBER(E(S(y1), 0), Cons(E(z1, 0), Cons(E(0, S(y3)), y4))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), True), z1, 0, S(y1), 0), E(S(y1), 0), Cons(E(z1, 0), Cons(E(0, S(y3)), y4))), EQEDGE(E(S(y1), 0), E(z1, 0))) MEMBER(E(0, 0), Cons(E(z1, 0), Cons(E(0, S(y2)), y3))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), True), z1, 0, 0, 0), E(0, 0), Cons(E(z1, 0), Cons(E(0, S(y2)), y3))), EQEDGE(E(0, 0), E(z1, 0))) MEMBER(E(0, 0), Cons(E(z1, 0), Cons(E(y2, S(y3)), Cons(E(S(y4), y5), y6)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), True), z1, 0, 0, 0), E(0, 0), Cons(E(z1, 0), Cons(E(y2, S(y3)), Cons(E(S(y4), y5), y6)))), EQEDGE(E(0, 0), E(z1, 0))) MEMBER(E(0, 0), Cons(E(z1, 0), Cons(E(y2, S(y3)), Cons(E(0, y4), y5)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), True), z1, 0, 0, 0), E(0, 0), Cons(E(z1, 0), Cons(E(y2, S(y3)), Cons(E(0, y4), y5)))), EQEDGE(E(0, 0), E(z1, 0))) MEMBER(E(0, 0), Cons(E(z1, 0), Cons(E(y2, S(y3)), Nil))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), True), z1, 0, 0, 0), E(0, 0), Cons(E(z1, 0), Cons(E(y2, S(y3)), Nil))), EQEDGE(E(0, 0), E(z1, 0))) K tuples:none Defined Rule Symbols: reach_3, reach[Ite]_4, member_2, member[Ite]_3, eqEdge_2, eqEdge[Ite]_5, and_2, !EQ_2, via_4, via[Ite]_5, via[Let]_5 Defined Pair Symbols: VIA_4, MEMBER_2, REACH_3, MEMBER[ITE]_3, REACH[ITE]_4, !EQ'_2, VIA[ITE]_5, VIA[LET]_5, EQEDGE_2 Compound Symbols: c21_1, c21_2, c23_2, c29_2, c12_1, c14_1, c1_1, c22, c_1, c24, c8_2, c8_1, c10_1, c25_1, c26_1, c29_1, c23_1, c9_1 ---------------------------------------- (133) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 11 trailing tuple parts ---------------------------------------- (134) Obligation: Complexity Dependency Tuples Problem Rules: reach(z0, z1, z2) -> reach[Ite](member(E(z0, z1), z2), z0, z1, z2) reach[Ite](False, z0, z1, z2) -> via(z0, z1, z2, z2) reach[Ite](True, z0, z1, z2) -> Cons(E(z0, z1), Nil) member(z0, Cons(z1, z2)) -> member[Ite](eqEdge(z0, z1), z0, Cons(z1, z2)) member(z0, Nil) -> False member[Ite](False, z0, Cons(z1, z2)) -> member(z0, z2) member[Ite](True, z0, z1) -> True eqEdge(E(z0, z1), E(z2, z3)) -> eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, z3, z0, z1) eqEdge[Ite](False, z0, z1, z2, z3) -> False eqEdge[Ite](True, z0, z1, z2, z3) -> True and(False, False) -> False and(True, False) -> False and(False, True) -> False and(True, True) -> True !EQ(S(z0), S(z1)) -> !EQ(z0, z1) !EQ(0, S(z0)) -> False !EQ(S(z0), 0) -> False !EQ(0, 0) -> True via(z0, z1, Cons(E(z2, z3), z4), z5) -> via[Ite](!EQ(z0, z2), z0, z1, Cons(E(z2, z3), z4), z5) via(z0, z1, Nil, z2) -> Nil via[Ite](True, z0, z1, Cons(E(z2, z3), z4), z5) -> via[Let](z0, z1, Cons(E(z2, z3), z4), z5, reach(z3, z1, z5)) via[Ite](False, z0, z1, Cons(z2, z3), z4) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Nil) -> via(z0, z1, z3, z4) via[Let](z0, z1, Cons(z2, z3), z4, Cons(z5, z6)) -> Cons(z2, Cons(z5, z6)) Tuples: VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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))) MEMBER[ITE](False, E(S(x0), x1), Cons(E(S(x2), x3), x4)) -> c12(MEMBER(E(S(x0), x1), x4)) MEMBER[ITE](False, E(0, x0), Cons(E(S(x1), x2), x3)) -> c12(MEMBER(E(0, x0), x3)) MEMBER[ITE](False, E(S(x0), x1), Cons(E(0, x2), x3)) -> c12(MEMBER(E(S(x0), x1), x3)) MEMBER[ITE](False, E(0, x0), Cons(E(0, x1), x2)) -> c12(MEMBER(E(0, x0), x2)) REACH[ITE](False, x0, x1, Nil) -> c14(VIA(x0, x1, Nil, Nil)) REACH[ITE](False, x0, x1, Cons(E(x2, x3), x4)) -> c14(VIA(x0, x1, Cons(E(x2, x3), x4), Cons(E(x2, x3), x4))) REACH(x0, x1, Nil) -> c1(REACH[ITE](False, x0, x1, Nil)) REACH(x0, x1, Nil) -> c1(MEMBER(E(x0, x1), Nil)) VIA(0, x0, Nil, x4) -> c22 VIA(S(x0), x1, Nil, x4) -> c22 VIA(S(S(x0)), x1, Nil, x5) -> c22 VIA(S(0), x0, Nil, x4) -> c22 VIA(x0, x1, Nil, Nil) -> c22 !EQ'(S(S(y0)), S(S(y1))) -> c(!EQ'(S(y0), S(y1))) VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5)) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5)) MEMBER(E(x0, x1), Nil) -> c24 MEMBER(E(x0, S(x1)), Nil) -> c24 MEMBER(E(x0, 0), Nil) -> c24 MEMBER(E(S(x0), x1), Nil) -> c24 MEMBER(E(0, x0), Nil) -> c24 VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), Cons(z5, z6)) -> c8(VIA[LET](0, x0, Cons(E(0, x1), x2), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x1, x0), z5), E(x1, x0), Cons(z5, z6)), x1, x0, Cons(z5, z6))), REACH(x1, x0, Cons(z5, z6))) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(z5, z6)) -> c8(VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x3, x1), z5), E(x3, x1), Cons(z5, z6)), x3, x1, Cons(z5, z6))), REACH(x3, x1, Cons(z5, z6))) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), Cons(z5, z6)) -> c8(VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Cons(z5, z6), reach[Ite](member[Ite](eqEdge(E(x1, x0), z5), E(x1, x0), Cons(z5, z6)), x1, x0, Cons(z5, z6))), REACH(x1, x0, Cons(z5, z6))) VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), x3) -> c8(REACH(x1, x0, x3)) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), x5) -> c8(REACH(x3, x1, x5)) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), x3) -> c8(REACH(x1, x0, x3)) VIA[LET](0, x0, Cons(E(0, x1), x2), Cons(x3, x4), Nil) -> c10(VIA(0, x0, x2, Cons(x3, x4))) VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Cons(x5, x6), Nil) -> c10(VIA(S(S(x0)), x1, x4, Cons(x5, x6))) VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Cons(x3, x4), Nil) -> c10(VIA(S(0), x0, x2, Cons(x3, x4))) VIA(0, x0, Nil, Cons(z2, z3)) -> c22 VIA(S(x0), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(S(x0)), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(0), x0, Nil, Cons(z2, z3)) -> c22 VIA[ITE](True, 0, x0, Cons(E(0, x1), x2), Nil) -> c8(VIA[LET](0, x0, Cons(E(0, x1), x2), Nil, Nil), REACH(x1, x0, Nil)) VIA[ITE](True, S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Nil) -> c8(VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Nil, Nil), REACH(x3, x1, Nil)) VIA[ITE](True, S(0), x0, Cons(E(S(0), x1), x2), Nil) -> c8(VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Nil, Nil), REACH(x1, x0, Nil)) EQEDGE(E(S(S(y0)), z1), E(S(S(y1)), z3)) -> c25(!EQ'(S(S(y0)), S(S(y1)))) EQEDGE(E(z0, S(S(y0))), E(z2, S(S(y1)))) -> c26(!EQ'(S(S(y0)), S(S(y1)))) VIA[LET](0, x0, Cons(E(0, x1), x2), Nil, Nil) -> c10(VIA(0, x0, x2, Nil)) VIA[LET](S(S(x0)), x1, Cons(E(S(S(x2)), x3), x4), Nil, Nil) -> c10(VIA(S(S(x0)), x1, x4, Nil)) VIA[LET](S(0), x0, Cons(E(S(0), x1), x2), Nil, Nil) -> c10(VIA(S(0), x0, x2, Nil)) REACH(z0, S(y1), Cons(E(y2, S(y3)), y4)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, S(y3)), y4))) REACH(z0, 0, Cons(E(y1, S(y2)), y3)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, S(y2)), y3))) REACH(z0, S(y1), Cons(E(y2, 0), y3)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, 0), y3))) REACH(z0, 0, Cons(E(y1, 0), y2)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, 0), y2))) REACH(S(y0), z1, Cons(E(S(y2), y3), y4)) -> c29(MEMBER(E(S(y0), z1), Cons(E(S(y2), y3), y4))) REACH(0, z1, Cons(E(S(y1), y2), y3)) -> c29(MEMBER(E(0, z1), Cons(E(S(y1), y2), y3))) REACH(S(y0), z1, Cons(E(0, y2), y3)) -> c29(MEMBER(E(S(y0), z1), Cons(E(0, y2), y3))) REACH(0, z1, Cons(E(0, y1), y2)) -> c29(MEMBER(E(0, z1), Cons(E(0, y1), y2))) REACH(z0, z1, Cons(E(y2, y3), y4)) -> c29(MEMBER(E(z0, z1), Cons(E(y2, y3), y4))) REACH(z0, z1, Nil) -> c29(MEMBER(E(z0, z1), Nil)) REACH(z0, S(y1), Nil) -> c29(MEMBER(E(z0, S(y1)), Nil)) REACH(z0, 0, Nil) -> c29(MEMBER(E(z0, 0), Nil)) REACH(S(y0), z1, Nil) -> c29(MEMBER(E(S(y0), z1), Nil)) REACH(0, z1, Nil) -> c29(MEMBER(E(0, z1), Nil)) VIA(S(S(y0)), z1, Cons(E(S(S(y1)), z3), z4), z5) -> c21(!EQ'(S(S(y0)), S(S(y1)))) MEMBER(E(S(S(y0)), z1), Cons(E(S(S(y2)), z3), z4)) -> c23(EQEDGE(E(S(S(y0)), z1), E(S(S(y2)), z3))) MEMBER(E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)) -> c23(EQEDGE(E(z0, S(S(y1))), E(z2, S(S(y3))))) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(S(y1), y2), y3)), z4) -> c9(VIA(0, z0, Cons(E(S(y1), y2), y3), z4)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(0, y1), y2)), z4) -> c9(VIA(0, z0, Cons(E(0, y1), y2), z4)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), z4) -> c9(VIA(0, z0, Nil, z4)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Nil) -> c9(VIA(0, z0, Nil, Nil)) VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Cons(y1, y2)) -> c9(VIA(0, z0, Nil, Cons(y1, y2))) VIA(0, z0, Cons(E(S(z1), z2), Cons(E(S(y3), y4), y5)), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(S(y3), y4), y5)), z4)) VIA(0, z0, Cons(E(S(z1), z2), Cons(E(0, y3), y4)), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(0, y3), y4)), z4)) VIA(0, z0, Cons(E(S(z1), z2), Nil), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), z4)) VIA(0, z0, Cons(E(S(z1), z2), Nil), Nil) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Nil)) VIA(0, z0, Cons(E(S(z1), z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Cons(y3, y4))) VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Cons(E(0, y2), y3)), z4) -> c9(VIA(S(z0), z1, Cons(E(0, y2), y3), z4)) VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4) -> c9(VIA(S(S(y0)), z1, Cons(E(S(S(y2)), y3), y4), z4)) VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), z4) -> c9(VIA(S(z0), z1, Nil, z4)) VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), z4) -> c9(VIA(S(S(y0)), z1, Nil, z4)) VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), z4) -> c9(VIA(S(0), z1, Nil, z4)) VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Nil) -> c9(VIA(S(z0), z1, Nil, Nil)) VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(S(y1)), y2), y3)), z4) -> c9(VIA(S(0), z1, Cons(E(S(S(y1)), y2), y3), z4)) VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4) -> c9(VIA(S(S(y0)), z1, Cons(E(S(0), y2), y3), z4)) VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(0), y1), y2)), z4) -> c9(VIA(S(0), z1, Cons(E(S(0), y1), y2), z4)) VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Cons(y2, y3)) -> c9(VIA(S(z0), z1, Nil, Cons(y2, y3))) VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y2, y3)) -> c9(VIA(S(S(y0)), z1, Nil, Cons(y2, y3))) VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), Cons(y1, y2)) -> c9(VIA(S(0), z1, Nil, Cons(y1, y2))) VIA(S(z0), z1, Cons(E(0, z2), Cons(E(0, y3), y4)), z4) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Cons(E(0, y3), y4)), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y3)), y4), y5)), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y3)), y4), y5)), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), z4)) VIA(S(0), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), Nil) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Nil)) VIA(S(0), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y3), y4)), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y3), y4)), z4)) VIA(S(0), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Cons(y3, y4))) VIA(S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y3, y4))) VIA(S(0), z1, Cons(E(0, z2), Nil), Cons(y2, y3)) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), Cons(y2, y3))) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(S(S(y2)), y3), y4)), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(S(S(y2)), y3), y4), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Nil), z5) -> c9(VIA(S(S(z0)), z1, Nil, z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Nil), Nil) -> c9(VIA(S(S(z0)), z1, Nil, Nil)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(S(0), y2), y3)), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(S(0), y2), y3), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Nil), Cons(y2, y3)) -> c9(VIA(S(S(z0)), z1, Nil, Cons(y2, y3))) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Cons(E(0, y3), y4))), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(0, y3), y4)), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Cons(E(S(S(y3)), y4), y5))), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(S(S(y3)), y4), y5)), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Nil)), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Nil)), Nil) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), Nil)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Cons(E(S(0), y3), y4))), z5) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(S(0), y3), y4)), z5)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(S(z2)), z3), Cons(E(0, y2), Nil)), Cons(y3, y4)) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), Cons(y3, y4))) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Nil), z4) -> c9(VIA(S(0), z0, Nil, z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Nil), Nil) -> c9(VIA(S(0), z0, Nil, Nil)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(S(S(y1)), y2), y3)), z4) -> c9(VIA(S(0), z0, Cons(E(S(S(y1)), y2), y3), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(S(0), y1), y2)), z4) -> c9(VIA(S(0), z0, Cons(E(S(0), y1), y2), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Nil), Cons(y2, y3)) -> c9(VIA(S(0), z0, Nil, Cons(y2, y3))) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y2), Cons(E(0, y3), y4))), z4) -> c9(VIA(S(0), z0, Cons(E(0, y2), Cons(E(0, y3), y4)), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y2), Nil)), z4) -> c9(VIA(S(0), z0, Cons(E(0, y2), Nil), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y2), Nil)), Nil) -> c9(VIA(S(0), z0, Cons(E(0, y2), Nil), Nil)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y1), Cons(E(S(S(y2)), y3), y4))), z4) -> c9(VIA(S(0), z0, Cons(E(0, y1), Cons(E(S(S(y2)), y3), y4)), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y1), Cons(E(S(0), y2), y3))), z4) -> c9(VIA(S(0), z0, Cons(E(0, y1), Cons(E(S(0), y2), y3)), z4)) VIA[ITE](False, S(0), z0, Cons(E(S(S(z1)), z2), Cons(E(0, y2), Nil)), Cons(y3, y4)) -> c9(VIA(S(0), z0, Cons(E(0, y2), Nil), Cons(y3, y4))) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(S(S(y2)), y3), y4)), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(S(S(y2)), y3), y4), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Nil), z4) -> c9(VIA(S(S(z0)), z1, Nil, z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Nil), Nil) -> c9(VIA(S(S(z0)), z1, Nil, Nil)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(S(0), y2), y3)), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(S(0), y2), y3), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Nil), Cons(y2, y3)) -> c9(VIA(S(S(z0)), z1, Nil, Cons(y2, y3))) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Cons(E(0, y3), y4))), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(0, y3), y4)), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Cons(E(S(S(y3)), y4), y5))), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(S(S(y3)), y4), y5)), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Nil)), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Nil)), Nil) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), Nil)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Cons(E(S(0), y3), y4))), z4) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Cons(E(S(0), y3), y4)), z4)) VIA[ITE](False, S(S(z0)), z1, Cons(E(S(0), z2), Cons(E(0, y2), Nil)), Cons(y3, y4)) -> c9(VIA(S(S(z0)), z1, Cons(E(0, y2), Nil), Cons(y3, y4))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y2, S(y3)), y4))) -> c12(MEMBER(E(z0, S(z1)), Cons(E(y2, S(y3)), y4))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y2, 0), y3))) -> c12(MEMBER(E(z0, S(z1)), Cons(E(y2, 0), y3))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y2), y3), y4))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(S(y2), y3), y4))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y1), y2), y3))) -> c12(MEMBER(E(0, S(z1)), Cons(E(S(y1), y2), y3))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y2), y3))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(0, y2), y3))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y1), y2))) -> c12(MEMBER(E(0, S(z1)), Cons(E(0, y1), y2))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, S(z3)), Nil)) -> c12(MEMBER(E(z0, S(z1)), Nil)) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, S(z3)), Nil)) -> c12(MEMBER(E(S(y0), S(z1)), Nil)) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, S(z3)), Nil)) -> c12(MEMBER(E(0, S(z1)), Nil)) MEMBER[ITE](False, E(S(S(y0)), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(S(y2)), y3), y4))) -> c12(MEMBER(E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), y3), y4))) MEMBER[ITE](False, E(z0, S(S(y1))), Cons(E(z2, S(z3)), Cons(E(y2, S(S(y3))), y4))) -> c12(MEMBER(E(z0, S(S(y1))), Cons(E(y2, S(S(y3))), y4))) MEMBER(E(S(y1), S(z1)), Cons(E(0, S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), 0), !EQ(z1, z3)), 0, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(0, S(z3)), z4)), EQEDGE(E(S(y1), S(z1)), E(0, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(0, S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, 0), !EQ(z1, z3)), 0, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(0, S(z3)), z4)), EQEDGE(E(0, S(z1)), E(0, S(z3)))) MEMBER(E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y0)), S(S(y2))), !EQ(z1, z3)), S(S(y2)), S(z3), S(S(y0)), S(z1)), E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), S(z3)), z4)), EQEDGE(E(S(S(y0)), S(z1)), E(S(S(y2)), S(z3)))) MEMBER(E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(S(y1), S(y3))), z2, S(S(y3)), z0, S(S(y1))), E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)), EQEDGE(E(z0, S(S(y1))), E(z2, S(S(y3))))) MEMBER(E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, S(y6)), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, S(z3), z0, S(z1)), E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, S(y6)), y7))), EQEDGE(E(z0, S(z1)), E(z2, S(z3)))) MEMBER(E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, 0), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, S(z3), z0, S(z1)), E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, 0), y6))), EQEDGE(E(z0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y5), y6), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), !EQ(z1, z3)), z2, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y5), y6), y7))), EQEDGE(E(S(y1), S(z1)), E(z2, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y4), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), !EQ(z1, z3)), z2, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y4), y5), y6))), EQEDGE(E(0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), !EQ(z1, z3)), z2, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y5), y6))), EQEDGE(E(S(y1), S(z1)), E(z2, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), !EQ(z1, z3)), z2, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y4), y5))), EQEDGE(E(0, S(z1)), E(z2, S(z3)))) MEMBER(E(z0, S(z1)), Cons(E(z2, S(z3)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, S(z3), z0, S(z1)), E(z0, S(z1)), Cons(E(z2, S(z3)), Nil)), EQEDGE(E(z0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, S(z3)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), !EQ(z1, z3)), z2, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, S(z3)), Nil)), EQEDGE(E(S(y1), S(z1)), E(z2, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(z2, S(z3)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), !EQ(z1, z3)), z2, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(z2, S(z3)), Nil)), EQEDGE(E(0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(S(y1)), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(S(y5)), y6), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z2), !EQ(z1, z3)), z2, S(z3), S(S(y1)), S(z1)), E(S(S(y1)), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(S(y5)), y6), y7))), EQEDGE(E(S(S(y1)), S(z1)), E(z2, S(z3)))) MEMBER(E(z0, S(S(y2))), Cons(E(z2, S(z3)), Cons(E(y5, S(S(y6))), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(S(y2), z3)), z2, S(z3), z0, S(S(y2))), E(z0, S(S(y2))), Cons(E(z2, S(z3)), Cons(E(y5, S(S(y6))), y7))), EQEDGE(E(z0, S(S(y2))), E(z2, S(z3)))) MEMBER[ITE](False, E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y1, S(y2)), y3))) -> c12(MEMBER(E(z0, 0), Cons(E(y1, S(y2)), y3))) MEMBER[ITE](False, E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y1, 0), y2))) -> c12(MEMBER(E(z0, 0), Cons(E(y1, 0), y2))) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, S(z2)), Cons(E(S(y2), y3), y4))) -> c12(MEMBER(E(S(y0), 0), Cons(E(S(y2), y3), y4))) MEMBER[ITE](False, E(0, 0), Cons(E(z1, S(z2)), Cons(E(S(y1), y2), y3))) -> c12(MEMBER(E(0, 0), Cons(E(S(y1), y2), y3))) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, S(z2)), Cons(E(0, y2), y3))) -> c12(MEMBER(E(S(y0), 0), Cons(E(0, y2), y3))) MEMBER[ITE](False, E(0, 0), Cons(E(z1, S(z2)), Cons(E(0, y1), y2))) -> c12(MEMBER(E(0, 0), Cons(E(0, y1), y2))) MEMBER[ITE](False, E(z0, 0), Cons(E(z1, S(z2)), Nil)) -> c12(MEMBER(E(z0, 0), Nil)) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, S(z2)), Nil)) -> c12(MEMBER(E(S(y0), 0), Nil)) MEMBER[ITE](False, E(0, 0), Cons(E(z1, S(z2)), Nil)) -> c12(MEMBER(E(0, 0), Nil)) MEMBER[ITE](False, E(S(S(y0)), 0), Cons(E(z1, S(z2)), Cons(E(S(S(y2)), y3), y4))) -> c12(MEMBER(E(S(S(y0)), 0), Cons(E(S(S(y2)), y3), y4))) MEMBER(E(S(y1), 0), Cons(E(S(y3), S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), S(y3)), False), S(y3), S(z2), S(y1), 0), E(S(y1), 0), Cons(E(S(y3), S(z2)), z3)), EQEDGE(E(S(y1), 0), E(S(y3), S(z2)))) MEMBER(E(S(S(y0)), 0), Cons(E(S(S(y2)), S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y0)), S(S(y2))), False), S(S(y2)), S(z2), S(S(y0)), 0), E(S(S(y0)), 0), Cons(E(S(S(y2)), S(z2)), z3)), EQEDGE(E(S(S(y0)), 0), E(S(S(y2)), S(z2)))) MEMBER(E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, S(y5)), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), False), z1, S(z2), z0, 0), E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, S(y5)), y6))), EQEDGE(E(z0, 0), E(z1, S(z2)))) MEMBER(E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, 0), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), False), z1, S(z2), z0, 0), E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, 0), y5))), EQEDGE(E(z0, 0), E(z1, S(z2)))) MEMBER(E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(S(y4), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), False), z1, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(S(y4), y5), y6))), EQEDGE(E(S(y1), 0), E(z1, S(z2)))) MEMBER(E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(0, y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), False), z1, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(0, y4), y5))), EQEDGE(E(S(y1), 0), E(z1, S(z2)))) MEMBER(E(z0, 0), Cons(E(z1, S(z2)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), False), z1, S(z2), z0, 0), E(z0, 0), Cons(E(z1, S(z2)), Nil)), EQEDGE(E(z0, 0), E(z1, S(z2)))) MEMBER(E(S(y1), 0), Cons(E(z1, S(z2)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), False), z1, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(z1, S(z2)), Nil)), EQEDGE(E(S(y1), 0), E(z1, S(z2)))) MEMBER(E(S(S(y1)), 0), Cons(E(z1, S(z2)), Cons(E(S(S(y4)), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z1), False), z1, S(z2), S(S(y1)), 0), E(S(S(y1)), 0), Cons(E(z1, S(z2)), Cons(E(S(S(y4)), y5), y6))), EQEDGE(E(S(S(y1)), 0), E(z1, S(z2)))) MEMBER(E(0, 0), Cons(E(S(y2), S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, S(y2)), False), S(y2), S(z2), 0, 0), E(0, 0), Cons(E(S(y2), S(z2)), z3))) MEMBER(E(S(y1), 0), Cons(E(0, S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), 0), False), 0, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(0, S(z2)), z3))) MEMBER(E(0, 0), Cons(E(0, S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, 0), False), 0, S(z2), 0, 0), E(0, 0), Cons(E(0, S(z2)), z3))) MEMBER(E(0, 0), Cons(E(z1, S(z2)), Cons(E(S(y3), y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), False), z1, S(z2), 0, 0), E(0, 0), Cons(E(z1, S(z2)), Cons(E(S(y3), y4), y5)))) MEMBER(E(0, 0), Cons(E(z1, S(z2)), Cons(E(0, y3), y4))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), False), z1, S(z2), 0, 0), E(0, 0), Cons(E(z1, S(z2)), Cons(E(0, y3), y4)))) MEMBER(E(0, 0), Cons(E(z1, S(z2)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), False), z1, S(z2), 0, 0), E(0, 0), Cons(E(z1, S(z2)), Nil))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y2, 0), y3))) -> c12(MEMBER(E(z0, S(z1)), Cons(E(y2, 0), y3))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, 0), Cons(E(S(y2), y3), y4))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(S(y2), y3), y4))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, 0), Cons(E(S(y1), y2), y3))) -> c12(MEMBER(E(0, S(z1)), Cons(E(S(y1), y2), y3))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, 0), Cons(E(0, y2), y3))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(0, y2), y3))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, 0), Cons(E(0, y1), y2))) -> c12(MEMBER(E(0, S(z1)), Cons(E(0, y1), y2))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, 0), Nil)) -> c12(MEMBER(E(z0, S(z1)), Nil)) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, 0), Nil)) -> c12(MEMBER(E(S(y0), S(z1)), Nil)) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, 0), Nil)) -> c12(MEMBER(E(0, S(z1)), Nil)) MEMBER[ITE](False, E(S(S(y0)), S(z1)), Cons(E(z2, 0), Cons(E(S(S(y2)), y3), y4))) -> c12(MEMBER(E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), y3), y4))) MEMBER[ITE](False, E(z0, S(S(y1))), Cons(E(z2, 0), Cons(E(y2, S(S(y3))), y4))) -> c12(MEMBER(E(z0, S(S(y1))), Cons(E(y2, S(S(y3))), y4))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, 0), Cons(E(S(y2), S(y3)), y4))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(S(y2), S(y3)), y4))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, 0), Cons(E(S(y1), S(y2)), y3))) -> c12(MEMBER(E(0, S(z1)), Cons(E(S(y1), S(y2)), y3))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, 0), Cons(E(0, S(y2)), y3))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(0, S(y2)), y3))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, 0), Cons(E(0, S(y1)), y2))) -> c12(MEMBER(E(0, S(z1)), Cons(E(0, S(y1)), y2))) MEMBER[ITE](False, E(S(S(y0)), S(z1)), Cons(E(z2, 0), Cons(E(S(S(y2)), S(y3)), y4))) -> c12(MEMBER(E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), S(y3)), y4))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y2, S(y3)), Cons(E(y4, S(y5)), y6)))) -> c12(MEMBER(E(z0, S(z1)), Cons(E(y2, S(y3)), Cons(E(y4, S(y5)), y6)))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y2, S(y3)), Cons(E(y4, 0), y5)))) -> c12(MEMBER(E(z0, S(z1)), Cons(E(y2, S(y3)), Cons(E(y4, 0), y5)))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, 0), Cons(E(y2, S(y3)), Cons(E(S(y4), y5), y6)))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(y2, S(y3)), Cons(E(S(y4), y5), y6)))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, 0), Cons(E(y1, S(y2)), Cons(E(S(y3), y4), y5)))) -> c12(MEMBER(E(0, S(z1)), Cons(E(y1, S(y2)), Cons(E(S(y3), y4), y5)))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, 0), Cons(E(y2, S(y3)), Cons(E(0, y4), y5)))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(y2, S(y3)), Cons(E(0, y4), y5)))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, 0), Cons(E(y1, S(y2)), Cons(E(0, y3), y4)))) -> c12(MEMBER(E(0, S(z1)), Cons(E(y1, S(y2)), Cons(E(0, y3), y4)))) MEMBER[ITE](False, E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y2, S(y3)), Nil))) -> c12(MEMBER(E(z0, S(z1)), Cons(E(y2, S(y3)), Nil))) MEMBER[ITE](False, E(S(y0), S(z1)), Cons(E(z2, 0), Cons(E(y2, S(y3)), Nil))) -> c12(MEMBER(E(S(y0), S(z1)), Cons(E(y2, S(y3)), Nil))) MEMBER[ITE](False, E(0, S(z1)), Cons(E(z2, 0), Cons(E(y1, S(y2)), Nil))) -> c12(MEMBER(E(0, S(z1)), Cons(E(y1, S(y2)), Nil))) MEMBER[ITE](False, E(S(S(y0)), S(z1)), Cons(E(z2, 0), Cons(E(y2, S(y3)), Cons(E(S(S(y4)), y5), y6)))) -> c12(MEMBER(E(S(S(y0)), S(z1)), Cons(E(y2, S(y3)), Cons(E(S(S(y4)), y5), y6)))) MEMBER[ITE](False, E(z0, S(S(y1))), Cons(E(z2, 0), Cons(E(y2, S(y3)), Cons(E(y4, S(S(y5))), y6)))) -> c12(MEMBER(E(z0, S(S(y1))), Cons(E(y2, S(y3)), Cons(E(y4, S(S(y5))), y6)))) MEMBER(E(S(y1), S(z1)), Cons(E(S(y3), 0), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), S(y3)), False), S(y3), 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(S(y3), 0), z3)), EQEDGE(E(S(y1), S(z1)), E(S(y3), 0))) MEMBER(E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), 0), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y0)), S(S(y2))), False), S(S(y2)), 0, S(S(y0)), S(z1)), E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), 0), z3)), EQEDGE(E(S(S(y0)), S(z1)), E(S(S(y2)), 0))) MEMBER(E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, 0), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(z1)), E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, 0), y5))), EQEDGE(E(z0, S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(S(y4), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(S(y4), y5), y6))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(0, y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(0, y4), y5))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(z0, S(z1)), Cons(E(z2, 0), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(z1)), E(z0, S(z1)), Cons(E(z2, 0), Nil)), EQEDGE(E(z0, S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Nil)), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(S(S(y4)), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z2), False), z2, 0, S(S(y1)), S(z1)), E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(S(S(y4)), y5), y6))), EQEDGE(E(S(S(y1)), S(z1)), E(z2, 0))) MEMBER(E(z0, S(S(y2))), Cons(E(z2, 0), Cons(E(y4, S(S(y5))), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(S(y2))), E(z0, S(S(y2))), Cons(E(z2, 0), Cons(E(y4, S(S(y5))), y6))), EQEDGE(E(z0, S(S(y2))), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(S(y4), S(y5)), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(S(y4), S(y5)), y6))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(0, S(y4)), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(0, S(y4)), y5))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(S(S(y4)), S(y5)), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z2), False), z2, 0, S(S(y1)), S(z1)), E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(S(S(y4)), S(y5)), y6))), EQEDGE(E(S(S(y1)), S(z1)), E(z2, 0))) MEMBER(E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, S(y7)), y8)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(z1)), E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, S(y7)), y8)))), EQEDGE(E(z0, S(z1)), E(z2, 0))) MEMBER(E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, 0), y7)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(z1)), E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, 0), y7)))), EQEDGE(E(z0, S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(S(y6), y7), y8)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(S(y6), y7), y8)))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(0, y6), y7)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(0, y6), y7)))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Nil))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(z1)), E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Nil))), EQEDGE(E(z0, S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Nil))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Nil))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(S(S(y6)), y7), y8)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z2), False), z2, 0, S(S(y1)), S(z1)), E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(S(S(y6)), y7), y8)))), EQEDGE(E(S(S(y1)), S(z1)), E(z2, 0))) MEMBER(E(z0, S(S(y2))), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, S(S(y7))), y8)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(S(y2))), E(z0, S(S(y2))), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, S(S(y7))), y8)))), EQEDGE(E(z0, S(S(y2))), E(z2, 0))) MEMBER(E(0, S(z1)), Cons(E(S(y2), 0), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, S(y2)), False), S(y2), 0, 0, S(z1)), E(0, S(z1)), Cons(E(S(y2), 0), z3))) MEMBER(E(S(y1), S(z1)), Cons(E(0, 0), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), 0), False), 0, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(0, 0), z3))) MEMBER(E(0, S(z1)), Cons(E(0, 0), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, 0), False), 0, 0, 0, S(z1)), E(0, S(z1)), Cons(E(0, 0), z3))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(S(y3), y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(S(y3), y4), y5)))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(0, y3), y4))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(0, y3), y4)))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Nil))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(S(y3), S(y4)), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(S(y3), S(y4)), y5)))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(0, S(y3)), y4))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(0, S(y3)), y4)))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Cons(E(S(y5), y6), y7)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Cons(E(S(y5), y6), y7))))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Cons(E(0, y5), y6)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Cons(E(0, y5), y6))))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Nil))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Nil)))) MEMBER[ITE](False, E(z0, 0), Cons(E(z1, 0), Cons(E(y1, 0), y2))) -> c12(MEMBER(E(z0, 0), Cons(E(y1, 0), y2))) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, 0), Cons(E(S(y2), y3), y4))) -> c12(MEMBER(E(S(y0), 0), Cons(E(S(y2), y3), y4))) MEMBER[ITE](False, E(0, 0), Cons(E(z1, 0), Cons(E(S(y1), y2), y3))) -> c12(MEMBER(E(0, 0), Cons(E(S(y1), y2), y3))) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, 0), Cons(E(0, y2), y3))) -> c12(MEMBER(E(S(y0), 0), Cons(E(0, y2), y3))) MEMBER[ITE](False, E(0, 0), Cons(E(z1, 0), Cons(E(0, y1), y2))) -> c12(MEMBER(E(0, 0), Cons(E(0, y1), y2))) MEMBER[ITE](False, E(z0, 0), Cons(E(z1, 0), Nil)) -> c12(MEMBER(E(z0, 0), Nil)) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, 0), Nil)) -> c12(MEMBER(E(S(y0), 0), Nil)) MEMBER[ITE](False, E(0, 0), Cons(E(z1, 0), Nil)) -> c12(MEMBER(E(0, 0), Nil)) MEMBER[ITE](False, E(S(S(y0)), 0), Cons(E(z1, 0), Cons(E(S(S(y2)), y3), y4))) -> c12(MEMBER(E(S(S(y0)), 0), Cons(E(S(S(y2)), y3), y4))) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, 0), Cons(E(S(y1), S(y2)), y3))) -> c12(MEMBER(E(S(y0), 0), Cons(E(S(y1), S(y2)), y3))) MEMBER[ITE](False, E(S(S(y0)), 0), Cons(E(z1, 0), Cons(E(S(S(y1)), S(y2)), y3))) -> c12(MEMBER(E(S(S(y0)), 0), Cons(E(S(S(y1)), S(y2)), y3))) MEMBER[ITE](False, E(z0, 0), Cons(E(z1, 0), Cons(E(y1, S(y2)), Cons(E(y3, S(y4)), y5)))) -> c12(MEMBER(E(z0, 0), Cons(E(y1, S(y2)), Cons(E(y3, S(y4)), y5)))) MEMBER[ITE](False, E(z0, 0), Cons(E(z1, 0), Cons(E(y1, S(y2)), Cons(E(y3, 0), y4)))) -> c12(MEMBER(E(z0, 0), Cons(E(y1, S(y2)), Cons(E(y3, 0), y4)))) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, 0), Cons(E(y1, S(y2)), Cons(E(S(y3), y4), y5)))) -> c12(MEMBER(E(S(y0), 0), Cons(E(y1, S(y2)), Cons(E(S(y3), y4), y5)))) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, 0), Cons(E(y1, S(y2)), Cons(E(0, y3), y4)))) -> c12(MEMBER(E(S(y0), 0), Cons(E(y1, S(y2)), Cons(E(0, y3), y4)))) MEMBER[ITE](False, E(z0, 0), Cons(E(z1, 0), Cons(E(y1, S(y2)), Nil))) -> c12(MEMBER(E(z0, 0), Cons(E(y1, S(y2)), Nil))) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, 0), Cons(E(y1, S(y2)), Nil))) -> c12(MEMBER(E(S(y0), 0), Cons(E(y1, S(y2)), Nil))) MEMBER[ITE](False, E(S(S(y0)), 0), Cons(E(z1, 0), Cons(E(y1, S(y2)), Cons(E(S(S(y3)), y4), y5)))) -> c12(MEMBER(E(S(S(y0)), 0), Cons(E(y1, S(y2)), Cons(E(S(S(y3)), y4), y5)))) MEMBER[ITE](False, E(0, 0), Cons(E(z1, 0), Cons(E(S(y0), S(y1)), y2))) -> c12(MEMBER(E(0, 0), Cons(E(S(y0), S(y1)), y2))) MEMBER[ITE](False, E(S(y0), 0), Cons(E(z1, 0), Cons(E(0, S(y1)), y2))) -> c12(MEMBER(E(S(y0), 0), Cons(E(0, S(y1)), y2))) MEMBER[ITE](False, E(0, 0), Cons(E(z1, 0), Cons(E(0, S(y0)), y1))) -> c12(MEMBER(E(0, 0), Cons(E(0, S(y0)), y1))) MEMBER[ITE](False, E(0, 0), Cons(E(z1, 0), Cons(E(y0, S(y1)), Cons(E(S(y2), y3), y4)))) -> c12(MEMBER(E(0, 0), Cons(E(y0, S(y1)), Cons(E(S(y2), y3), y4)))) MEMBER[ITE](False, E(0, 0), Cons(E(z1, 0), Cons(E(y0, S(y1)), Cons(E(0, y2), y3)))) -> c12(MEMBER(E(0, 0), Cons(E(y0, S(y1)), Cons(E(0, y2), y3)))) MEMBER[ITE](False, E(0, 0), Cons(E(z1, 0), Cons(E(y0, S(y1)), Nil))) -> c12(MEMBER(E(0, 0), Cons(E(y0, S(y1)), Nil))) MEMBER(E(S(z0), S(z1)), Cons(E(S(z2), S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), S(z2), S(z3), S(z0), S(z1)), E(S(z0), S(z1)), Cons(E(S(z2), S(z3)), z4)), EQEDGE(E(S(z0), S(z1)), E(S(z2), S(z3)))) MEMBER(E(0, S(z0)), Cons(E(S(z1), S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(z0, z2)), S(z1), S(z2), 0, S(z0)), E(0, S(z0)), Cons(E(S(z1), S(z2)), z3)), EQEDGE(E(0, S(z0)), E(S(z1), S(z2)))) MEMBER(E(S(y1), 0), Cons(E(S(y3), 0), z2)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), S(y3)), True), S(y3), 0, S(y1), 0), E(S(y1), 0), Cons(E(S(y3), 0), z2)), EQEDGE(E(S(y1), 0), E(S(y3), 0))) MEMBER(E(S(S(y0)), 0), Cons(E(S(S(y2)), 0), z2)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y0)), S(S(y2))), True), S(S(y2)), 0, S(S(y0)), 0), E(S(S(y0)), 0), Cons(E(S(S(y2)), 0), z2)), EQEDGE(E(S(S(y0)), 0), E(S(S(y2)), 0))) MEMBER(E(z0, 0), Cons(E(z1, 0), Cons(E(y3, 0), y4))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), True), z1, 0, z0, 0), E(z0, 0), Cons(E(z1, 0), Cons(E(y3, 0), y4))), EQEDGE(E(z0, 0), E(z1, 0))) MEMBER(E(S(y1), 0), Cons(E(z1, 0), Cons(E(S(y3), y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), True), z1, 0, S(y1), 0), E(S(y1), 0), Cons(E(z1, 0), Cons(E(S(y3), y4), y5))), EQEDGE(E(S(y1), 0), E(z1, 0))) MEMBER(E(S(y1), 0), Cons(E(z1, 0), Cons(E(0, y3), y4))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), True), z1, 0, S(y1), 0), E(S(y1), 0), Cons(E(z1, 0), Cons(E(0, y3), y4))), EQEDGE(E(S(y1), 0), E(z1, 0))) MEMBER(E(z0, 0), Cons(E(z1, 0), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), True), z1, 0, z0, 0), E(z0, 0), Cons(E(z1, 0), Nil)), EQEDGE(E(z0, 0), E(z1, 0))) MEMBER(E(S(y1), 0), Cons(E(z1, 0), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), True), z1, 0, S(y1), 0), E(S(y1), 0), Cons(E(z1, 0), Nil)), EQEDGE(E(S(y1), 0), E(z1, 0))) MEMBER(E(S(S(y1)), 0), Cons(E(z1, 0), Cons(E(S(S(y3)), y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z1), True), z1, 0, S(S(y1)), 0), E(S(S(y1)), 0), Cons(E(z1, 0), Cons(E(S(S(y3)), y4), y5))), EQEDGE(E(S(S(y1)), 0), E(z1, 0))) MEMBER(E(S(y1), 0), Cons(E(z1, 0), Cons(E(S(y3), S(y4)), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), True), z1, 0, S(y1), 0), E(S(y1), 0), Cons(E(z1, 0), Cons(E(S(y3), S(y4)), y5))), EQEDGE(E(S(y1), 0), E(z1, 0))) MEMBER(E(S(S(y1)), 0), Cons(E(z1, 0), Cons(E(S(S(y3)), S(y4)), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z1), True), z1, 0, S(S(y1)), 0), E(S(S(y1)), 0), Cons(E(z1, 0), Cons(E(S(S(y3)), S(y4)), y5))), EQEDGE(E(S(S(y1)), 0), E(z1, 0))) MEMBER(E(z0, 0), Cons(E(z1, 0), Cons(E(y3, S(y4)), Cons(E(y5, S(y6)), y7)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), True), z1, 0, z0, 0), E(z0, 0), Cons(E(z1, 0), Cons(E(y3, S(y4)), Cons(E(y5, S(y6)), y7)))), EQEDGE(E(z0, 0), E(z1, 0))) MEMBER(E(z0, 0), Cons(E(z1, 0), Cons(E(y3, S(y4)), Cons(E(y5, 0), y6)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), True), z1, 0, z0, 0), E(z0, 0), Cons(E(z1, 0), Cons(E(y3, S(y4)), Cons(E(y5, 0), y6)))), EQEDGE(E(z0, 0), E(z1, 0))) MEMBER(E(S(y1), 0), Cons(E(z1, 0), Cons(E(y3, S(y4)), Cons(E(S(y5), y6), y7)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), True), z1, 0, S(y1), 0), E(S(y1), 0), Cons(E(z1, 0), Cons(E(y3, S(y4)), Cons(E(S(y5), y6), y7)))), EQEDGE(E(S(y1), 0), E(z1, 0))) MEMBER(E(S(y1), 0), Cons(E(z1, 0), Cons(E(y3, S(y4)), Cons(E(0, y5), y6)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), True), z1, 0, S(y1), 0), E(S(y1), 0), Cons(E(z1, 0), Cons(E(y3, S(y4)), Cons(E(0, y5), y6)))), EQEDGE(E(S(y1), 0), E(z1, 0))) MEMBER(E(z0, 0), Cons(E(z1, 0), Cons(E(y3, S(y4)), Nil))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), True), z1, 0, z0, 0), E(z0, 0), Cons(E(z1, 0), Cons(E(y3, S(y4)), Nil))), EQEDGE(E(z0, 0), E(z1, 0))) MEMBER(E(S(y1), 0), Cons(E(z1, 0), Cons(E(y3, S(y4)), Nil))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), True), z1, 0, S(y1), 0), E(S(y1), 0), Cons(E(z1, 0), Cons(E(y3, S(y4)), Nil))), EQEDGE(E(S(y1), 0), E(z1, 0))) MEMBER(E(S(S(y1)), 0), Cons(E(z1, 0), Cons(E(y3, S(y4)), Cons(E(S(S(y5)), y6), y7)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z1), True), z1, 0, S(S(y1)), 0), E(S(S(y1)), 0), Cons(E(z1, 0), Cons(E(y3, S(y4)), Cons(E(S(S(y5)), y6), y7)))), EQEDGE(E(S(S(y1)), 0), E(z1, 0))) MEMBER(E(S(y1), 0), Cons(E(z1, 0), Cons(E(0, S(y3)), y4))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), True), z1, 0, S(y1), 0), E(S(y1), 0), Cons(E(z1, 0), Cons(E(0, S(y3)), y4))), EQEDGE(E(S(y1), 0), E(z1, 0))) MEMBER(E(0, 0), Cons(E(S(y2), 0), z2)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, S(y2)), True), S(y2), 0, 0, 0), E(0, 0), Cons(E(S(y2), 0), z2))) MEMBER(E(S(y1), 0), Cons(E(0, 0), z2)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), 0), True), 0, 0, S(y1), 0), E(S(y1), 0), Cons(E(0, 0), z2))) MEMBER(E(0, 0), Cons(E(0, 0), z2)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, 0), True), 0, 0, 0, 0), E(0, 0), Cons(E(0, 0), z2))) MEMBER(E(0, 0), Cons(E(z1, 0), Cons(E(S(y2), y3), y4))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), True), z1, 0, 0, 0), E(0, 0), Cons(E(z1, 0), Cons(E(S(y2), y3), y4)))) MEMBER(E(0, 0), Cons(E(z1, 0), Cons(E(0, y2), y3))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), True), z1, 0, 0, 0), E(0, 0), Cons(E(z1, 0), Cons(E(0, y2), y3)))) MEMBER(E(0, 0), Cons(E(z1, 0), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), True), z1, 0, 0, 0), E(0, 0), Cons(E(z1, 0), Nil))) MEMBER(E(0, 0), Cons(E(z1, 0), Cons(E(S(y2), S(y3)), y4))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), True), z1, 0, 0, 0), E(0, 0), Cons(E(z1, 0), Cons(E(S(y2), S(y3)), y4)))) MEMBER(E(0, 0), Cons(E(z1, 0), Cons(E(0, S(y2)), y3))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), True), z1, 0, 0, 0), E(0, 0), Cons(E(z1, 0), Cons(E(0, S(y2)), y3)))) MEMBER(E(0, 0), Cons(E(z1, 0), Cons(E(y2, S(y3)), Cons(E(S(y4), y5), y6)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), True), z1, 0, 0, 0), E(0, 0), Cons(E(z1, 0), Cons(E(y2, S(y3)), Cons(E(S(y4), y5), y6))))) MEMBER(E(0, 0), Cons(E(z1, 0), Cons(E(y2, S(y3)), Cons(E(0, y4), y5)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), True), z1, 0, 0, 0), E(0, 0), Cons(E(z1, 0), Cons(E(y2, S(y3)), Cons(E(0, y4), y5))))) MEMBER(E(0, 0), Cons(E(z1, 0), Cons(E(y2, S(y3)), Nil))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), True), z1, 0, 0, 0), E(0, 0), Cons(E(z1, 0), Cons(E(y2, S(y3)), Nil)))) S tuples: VIA(0, x1, Cons(E(0, x3), x4), x5) -> c21(VIA[ITE](True, 0, x1, Cons(E(0, x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5) -> c21(VIA[ITE](!EQ(z0, z1), S(S(z0)), x1, Cons(E(S(S(z1)), x3), x4), x5), !EQ'(S(S(z0)), S(S(z1)))) MEMBER(E(S(z0), x1), Cons(E(S(z1), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), !EQ(x1, x3)), S(z1), x3, S(z0), x1), E(S(z0), x1), Cons(E(S(z1), x3), x4)), EQEDGE(E(S(z0), x1), E(S(z1), x3))) MEMBER(E(0, x1), Cons(E(S(z0), x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), S(z0), x3, 0, x1), E(0, x1), Cons(E(S(z0), x3), x4)), EQEDGE(E(0, x1), E(S(z0), x3))) MEMBER(E(S(z0), x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(x1, x3)), 0, x3, S(z0), x1), E(S(z0), x1), Cons(E(0, x3), x4)), EQEDGE(E(S(z0), x1), E(0, x3))) MEMBER(E(0, x1), Cons(E(0, x3), x4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(True, !EQ(x1, x3)), 0, x3, 0, x1), E(0, x1), Cons(E(0, x3), x4)), EQEDGE(E(0, x1), E(0, x3))) REACH(z0, z1, Cons(E(z2, z3), x3)) -> c29(REACH[ITE](member[Ite](eqEdge[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))) REACH(x0, x1, Nil) -> c1(REACH[ITE](False, x0, x1, Nil)) REACH(x0, x1, Nil) -> c1(MEMBER(E(x0, x1), Nil)) VIA(0, x0, Nil, x4) -> c22 VIA(S(x0), x1, Nil, x4) -> c22 VIA(S(S(x0)), x1, Nil, x5) -> c22 VIA(S(0), x0, Nil, x4) -> c22 VIA(x0, x1, Nil, Nil) -> c22 VIA(S(0), x1, Cons(E(S(S(z0)), x3), x4), x5) -> c21(VIA[ITE](False, S(0), x1, Cons(E(S(S(z0)), x3), x4), x5)) VIA(S(S(z0)), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](False, S(S(z0)), x1, Cons(E(S(0), x3), x4), x5)) VIA(S(0), x1, Cons(E(S(0), x3), x4), x5) -> c21(VIA[ITE](True, S(0), x1, Cons(E(S(0), x3), x4), x5)) MEMBER(E(x0, x1), Nil) -> c24 MEMBER(E(x0, S(x1)), Nil) -> c24 MEMBER(E(x0, 0), Nil) -> c24 MEMBER(E(S(x0), x1), Nil) -> c24 MEMBER(E(0, x0), Nil) -> c24 VIA(0, x0, Nil, Cons(z2, z3)) -> c22 VIA(S(x0), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(S(x0)), x1, Nil, Cons(z2, z3)) -> c22 VIA(S(0), x0, Nil, Cons(z2, z3)) -> c22 EQEDGE(E(S(S(y0)), z1), E(S(S(y1)), z3)) -> c25(!EQ'(S(S(y0)), S(S(y1)))) EQEDGE(E(z0, S(S(y0))), E(z2, S(S(y1)))) -> c26(!EQ'(S(S(y0)), S(S(y1)))) REACH(z0, S(y1), Cons(E(y2, S(y3)), y4)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, S(y3)), y4))) REACH(z0, 0, Cons(E(y1, S(y2)), y3)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, S(y2)), y3))) REACH(z0, S(y1), Cons(E(y2, 0), y3)) -> c29(MEMBER(E(z0, S(y1)), Cons(E(y2, 0), y3))) REACH(z0, 0, Cons(E(y1, 0), y2)) -> c29(MEMBER(E(z0, 0), Cons(E(y1, 0), y2))) REACH(S(y0), z1, Cons(E(S(y2), y3), y4)) -> c29(MEMBER(E(S(y0), z1), Cons(E(S(y2), y3), y4))) REACH(0, z1, Cons(E(S(y1), y2), y3)) -> c29(MEMBER(E(0, z1), Cons(E(S(y1), y2), y3))) REACH(S(y0), z1, Cons(E(0, y2), y3)) -> c29(MEMBER(E(S(y0), z1), Cons(E(0, y2), y3))) REACH(0, z1, Cons(E(0, y1), y2)) -> c29(MEMBER(E(0, z1), Cons(E(0, y1), y2))) REACH(z0, z1, Cons(E(y2, y3), y4)) -> c29(MEMBER(E(z0, z1), Cons(E(y2, y3), y4))) REACH(z0, z1, Nil) -> c29(MEMBER(E(z0, z1), Nil)) REACH(z0, S(y1), Nil) -> c29(MEMBER(E(z0, S(y1)), Nil)) REACH(z0, 0, Nil) -> c29(MEMBER(E(z0, 0), Nil)) REACH(S(y0), z1, Nil) -> c29(MEMBER(E(S(y0), z1), Nil)) REACH(0, z1, Nil) -> c29(MEMBER(E(0, z1), Nil)) VIA(S(S(y0)), z1, Cons(E(S(S(y1)), z3), z4), z5) -> c21(!EQ'(S(S(y0)), S(S(y1)))) MEMBER(E(S(S(y0)), z1), Cons(E(S(S(y2)), z3), z4)) -> c23(EQEDGE(E(S(S(y0)), z1), E(S(S(y2)), z3))) MEMBER(E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)) -> c23(EQEDGE(E(z0, S(S(y1))), E(z2, S(S(y3))))) VIA(0, z0, Cons(E(S(z1), z2), Cons(E(S(y3), y4), y5)), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(S(y3), y4), y5)), z4)) VIA(0, z0, Cons(E(S(z1), z2), Cons(E(0, y3), y4)), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Cons(E(0, y3), y4)), z4)) VIA(0, z0, Cons(E(S(z1), z2), Nil), z4) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), z4)) VIA(0, z0, Cons(E(S(z1), z2), Nil), Nil) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Nil)) VIA(0, z0, Cons(E(S(z1), z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, 0, z0, Cons(E(S(z1), z2), Nil), Cons(y3, y4))) VIA(S(z0), z1, Cons(E(0, z2), Cons(E(0, y3), y4)), z4) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Cons(E(0, y3), y4)), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y3)), y4), y5)), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(S(y3)), y4), y5)), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), z4)) VIA(S(0), z1, Cons(E(0, z2), Nil), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), Nil) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Nil)) VIA(S(0), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(S(y2)), y3), y4)), z4)) VIA(S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y3), y4)), z4) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Cons(E(S(0), y3), y4)), z4)) VIA(S(0), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Cons(E(S(0), y2), y3)), z4)) VIA(S(z0), z1, Cons(E(0, z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, S(z0), z1, Cons(E(0, z2), Nil), Cons(y3, y4))) VIA(S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y3, y4)) -> c21(VIA[ITE](False, S(S(y0)), z1, Cons(E(0, z2), Nil), Cons(y3, y4))) VIA(S(0), z1, Cons(E(0, z2), Nil), Cons(y2, y3)) -> c21(VIA[ITE](False, S(0), z1, Cons(E(0, z2), Nil), Cons(y2, y3))) MEMBER(E(S(y1), S(z1)), Cons(E(0, S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), 0), !EQ(z1, z3)), 0, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(0, S(z3)), z4)), EQEDGE(E(S(y1), S(z1)), E(0, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(0, S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, 0), !EQ(z1, z3)), 0, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(0, S(z3)), z4)), EQEDGE(E(0, S(z1)), E(0, S(z3)))) MEMBER(E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y0)), S(S(y2))), !EQ(z1, z3)), S(S(y2)), S(z3), S(S(y0)), S(z1)), E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), S(z3)), z4)), EQEDGE(E(S(S(y0)), S(z1)), E(S(S(y2)), S(z3)))) MEMBER(E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(S(y1), S(y3))), z2, S(S(y3)), z0, S(S(y1))), E(z0, S(S(y1))), Cons(E(z2, S(S(y3))), z4)), EQEDGE(E(z0, S(S(y1))), E(z2, S(S(y3))))) MEMBER(E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, S(y6)), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, S(z3), z0, S(z1)), E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, S(y6)), y7))), EQEDGE(E(z0, S(z1)), E(z2, S(z3)))) MEMBER(E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, 0), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, S(z3), z0, S(z1)), E(z0, S(z1)), Cons(E(z2, S(z3)), Cons(E(y5, 0), y6))), EQEDGE(E(z0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y5), y6), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), !EQ(z1, z3)), z2, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y5), y6), y7))), EQEDGE(E(S(y1), S(z1)), E(z2, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y4), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), !EQ(z1, z3)), z2, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(S(y4), y5), y6))), EQEDGE(E(0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), !EQ(z1, z3)), z2, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y5), y6))), EQEDGE(E(S(y1), S(z1)), E(z2, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), !EQ(z1, z3)), z2, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(z2, S(z3)), Cons(E(0, y4), y5))), EQEDGE(E(0, S(z1)), E(z2, S(z3)))) MEMBER(E(z0, S(z1)), Cons(E(z2, S(z3)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), z2, S(z3), z0, S(z1)), E(z0, S(z1)), Cons(E(z2, S(z3)), Nil)), EQEDGE(E(z0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, S(z3)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), !EQ(z1, z3)), z2, S(z3), S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, S(z3)), Nil)), EQEDGE(E(S(y1), S(z1)), E(z2, S(z3)))) MEMBER(E(0, S(z1)), Cons(E(z2, S(z3)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), !EQ(z1, z3)), z2, S(z3), 0, S(z1)), E(0, S(z1)), Cons(E(z2, S(z3)), Nil)), EQEDGE(E(0, S(z1)), E(z2, S(z3)))) MEMBER(E(S(S(y1)), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(S(y5)), y6), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z2), !EQ(z1, z3)), z2, S(z3), S(S(y1)), S(z1)), E(S(S(y1)), S(z1)), Cons(E(z2, S(z3)), Cons(E(S(S(y5)), y6), y7))), EQEDGE(E(S(S(y1)), S(z1)), E(z2, S(z3)))) MEMBER(E(z0, S(S(y2))), Cons(E(z2, S(z3)), Cons(E(y5, S(S(y6))), y7))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(S(y2), z3)), z2, S(z3), z0, S(S(y2))), E(z0, S(S(y2))), Cons(E(z2, S(z3)), Cons(E(y5, S(S(y6))), y7))), EQEDGE(E(z0, S(S(y2))), E(z2, S(z3)))) MEMBER(E(S(y1), 0), Cons(E(S(y3), S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), S(y3)), False), S(y3), S(z2), S(y1), 0), E(S(y1), 0), Cons(E(S(y3), S(z2)), z3)), EQEDGE(E(S(y1), 0), E(S(y3), S(z2)))) MEMBER(E(S(S(y0)), 0), Cons(E(S(S(y2)), S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y0)), S(S(y2))), False), S(S(y2)), S(z2), S(S(y0)), 0), E(S(S(y0)), 0), Cons(E(S(S(y2)), S(z2)), z3)), EQEDGE(E(S(S(y0)), 0), E(S(S(y2)), S(z2)))) MEMBER(E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, S(y5)), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), False), z1, S(z2), z0, 0), E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, S(y5)), y6))), EQEDGE(E(z0, 0), E(z1, S(z2)))) MEMBER(E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, 0), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), False), z1, S(z2), z0, 0), E(z0, 0), Cons(E(z1, S(z2)), Cons(E(y4, 0), y5))), EQEDGE(E(z0, 0), E(z1, S(z2)))) MEMBER(E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(S(y4), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), False), z1, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(S(y4), y5), y6))), EQEDGE(E(S(y1), 0), E(z1, S(z2)))) MEMBER(E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(0, y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), False), z1, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(z1, S(z2)), Cons(E(0, y4), y5))), EQEDGE(E(S(y1), 0), E(z1, S(z2)))) MEMBER(E(z0, 0), Cons(E(z1, S(z2)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), False), z1, S(z2), z0, 0), E(z0, 0), Cons(E(z1, S(z2)), Nil)), EQEDGE(E(z0, 0), E(z1, S(z2)))) MEMBER(E(S(y1), 0), Cons(E(z1, S(z2)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), False), z1, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(z1, S(z2)), Nil)), EQEDGE(E(S(y1), 0), E(z1, S(z2)))) MEMBER(E(S(S(y1)), 0), Cons(E(z1, S(z2)), Cons(E(S(S(y4)), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z1), False), z1, S(z2), S(S(y1)), 0), E(S(S(y1)), 0), Cons(E(z1, S(z2)), Cons(E(S(S(y4)), y5), y6))), EQEDGE(E(S(S(y1)), 0), E(z1, S(z2)))) MEMBER(E(0, 0), Cons(E(S(y2), S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, S(y2)), False), S(y2), S(z2), 0, 0), E(0, 0), Cons(E(S(y2), S(z2)), z3))) MEMBER(E(S(y1), 0), Cons(E(0, S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), 0), False), 0, S(z2), S(y1), 0), E(S(y1), 0), Cons(E(0, S(z2)), z3))) MEMBER(E(0, 0), Cons(E(0, S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, 0), False), 0, S(z2), 0, 0), E(0, 0), Cons(E(0, S(z2)), z3))) MEMBER(E(0, 0), Cons(E(z1, S(z2)), Cons(E(S(y3), y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), False), z1, S(z2), 0, 0), E(0, 0), Cons(E(z1, S(z2)), Cons(E(S(y3), y4), y5)))) MEMBER(E(0, 0), Cons(E(z1, S(z2)), Cons(E(0, y3), y4))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), False), z1, S(z2), 0, 0), E(0, 0), Cons(E(z1, S(z2)), Cons(E(0, y3), y4)))) MEMBER(E(0, 0), Cons(E(z1, S(z2)), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), False), z1, S(z2), 0, 0), E(0, 0), Cons(E(z1, S(z2)), Nil))) MEMBER(E(S(y1), S(z1)), Cons(E(S(y3), 0), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), S(y3)), False), S(y3), 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(S(y3), 0), z3)), EQEDGE(E(S(y1), S(z1)), E(S(y3), 0))) MEMBER(E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), 0), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y0)), S(S(y2))), False), S(S(y2)), 0, S(S(y0)), S(z1)), E(S(S(y0)), S(z1)), Cons(E(S(S(y2)), 0), z3)), EQEDGE(E(S(S(y0)), S(z1)), E(S(S(y2)), 0))) MEMBER(E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, 0), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(z1)), E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, 0), y5))), EQEDGE(E(z0, S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(S(y4), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(S(y4), y5), y6))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(0, y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(0, y4), y5))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(z0, S(z1)), Cons(E(z2, 0), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(z1)), E(z0, S(z1)), Cons(E(z2, 0), Nil)), EQEDGE(E(z0, S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Nil)), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(S(S(y4)), y5), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z2), False), z2, 0, S(S(y1)), S(z1)), E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(S(S(y4)), y5), y6))), EQEDGE(E(S(S(y1)), S(z1)), E(z2, 0))) MEMBER(E(z0, S(S(y2))), Cons(E(z2, 0), Cons(E(y4, S(S(y5))), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(S(y2))), E(z0, S(S(y2))), Cons(E(z2, 0), Cons(E(y4, S(S(y5))), y6))), EQEDGE(E(z0, S(S(y2))), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(S(y4), S(y5)), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(S(y4), S(y5)), y6))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(0, S(y4)), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(0, S(y4)), y5))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(S(S(y4)), S(y5)), y6))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z2), False), z2, 0, S(S(y1)), S(z1)), E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(S(S(y4)), S(y5)), y6))), EQEDGE(E(S(S(y1)), S(z1)), E(z2, 0))) MEMBER(E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, S(y7)), y8)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(z1)), E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, S(y7)), y8)))), EQEDGE(E(z0, S(z1)), E(z2, 0))) MEMBER(E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, 0), y7)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(z1)), E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, 0), y7)))), EQEDGE(E(z0, S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(S(y6), y7), y8)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(S(y6), y7), y8)))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(0, y6), y7)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(0, y6), y7)))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Nil))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(z1)), E(z0, S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Nil))), EQEDGE(E(z0, S(z1)), E(z2, 0))) MEMBER(E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Nil))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z2), False), z2, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Nil))), EQEDGE(E(S(y1), S(z1)), E(z2, 0))) MEMBER(E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(S(S(y6)), y7), y8)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z2), False), z2, 0, S(S(y1)), S(z1)), E(S(S(y1)), S(z1)), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(S(S(y6)), y7), y8)))), EQEDGE(E(S(S(y1)), S(z1)), E(z2, 0))) MEMBER(E(z0, S(S(y2))), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, S(S(y7))), y8)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), False), z2, 0, z0, S(S(y2))), E(z0, S(S(y2))), Cons(E(z2, 0), Cons(E(y4, S(y5)), Cons(E(y6, S(S(y7))), y8)))), EQEDGE(E(z0, S(S(y2))), E(z2, 0))) MEMBER(E(0, S(z1)), Cons(E(S(y2), 0), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, S(y2)), False), S(y2), 0, 0, S(z1)), E(0, S(z1)), Cons(E(S(y2), 0), z3))) MEMBER(E(S(y1), S(z1)), Cons(E(0, 0), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), 0), False), 0, 0, S(y1), S(z1)), E(S(y1), S(z1)), Cons(E(0, 0), z3))) MEMBER(E(0, S(z1)), Cons(E(0, 0), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, 0), False), 0, 0, 0, S(z1)), E(0, S(z1)), Cons(E(0, 0), z3))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(S(y3), y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(S(y3), y4), y5)))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(0, y3), y4))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(0, y3), y4)))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Nil))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(S(y3), S(y4)), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(S(y3), S(y4)), y5)))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(0, S(y3)), y4))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(0, S(y3)), y4)))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Cons(E(S(y5), y6), y7)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Cons(E(S(y5), y6), y7))))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Cons(E(0, y5), y6)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Cons(E(0, y5), y6))))) MEMBER(E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Nil))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z2), False), z2, 0, 0, S(z1)), E(0, S(z1)), Cons(E(z2, 0), Cons(E(y3, S(y4)), Nil)))) MEMBER(E(S(z0), S(z1)), Cons(E(S(z2), S(z3)), z4)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z2), !EQ(z1, z3)), S(z2), S(z3), S(z0), S(z1)), E(S(z0), S(z1)), Cons(E(S(z2), S(z3)), z4)), EQEDGE(E(S(z0), S(z1)), E(S(z2), S(z3)))) MEMBER(E(0, S(z0)), Cons(E(S(z1), S(z2)), z3)) -> c23(MEMBER[ITE](eqEdge[Ite](and(False, !EQ(z0, z2)), S(z1), S(z2), 0, S(z0)), E(0, S(z0)), Cons(E(S(z1), S(z2)), z3)), EQEDGE(E(0, S(z0)), E(S(z1), S(z2)))) MEMBER(E(S(y1), 0), Cons(E(S(y3), 0), z2)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), S(y3)), True), S(y3), 0, S(y1), 0), E(S(y1), 0), Cons(E(S(y3), 0), z2)), EQEDGE(E(S(y1), 0), E(S(y3), 0))) MEMBER(E(S(S(y0)), 0), Cons(E(S(S(y2)), 0), z2)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y0)), S(S(y2))), True), S(S(y2)), 0, S(S(y0)), 0), E(S(S(y0)), 0), Cons(E(S(S(y2)), 0), z2)), EQEDGE(E(S(S(y0)), 0), E(S(S(y2)), 0))) MEMBER(E(z0, 0), Cons(E(z1, 0), Cons(E(y3, 0), y4))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), True), z1, 0, z0, 0), E(z0, 0), Cons(E(z1, 0), Cons(E(y3, 0), y4))), EQEDGE(E(z0, 0), E(z1, 0))) MEMBER(E(S(y1), 0), Cons(E(z1, 0), Cons(E(S(y3), y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), True), z1, 0, S(y1), 0), E(S(y1), 0), Cons(E(z1, 0), Cons(E(S(y3), y4), y5))), EQEDGE(E(S(y1), 0), E(z1, 0))) MEMBER(E(S(y1), 0), Cons(E(z1, 0), Cons(E(0, y3), y4))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), True), z1, 0, S(y1), 0), E(S(y1), 0), Cons(E(z1, 0), Cons(E(0, y3), y4))), EQEDGE(E(S(y1), 0), E(z1, 0))) MEMBER(E(z0, 0), Cons(E(z1, 0), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), True), z1, 0, z0, 0), E(z0, 0), Cons(E(z1, 0), Nil)), EQEDGE(E(z0, 0), E(z1, 0))) MEMBER(E(S(y1), 0), Cons(E(z1, 0), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), True), z1, 0, S(y1), 0), E(S(y1), 0), Cons(E(z1, 0), Nil)), EQEDGE(E(S(y1), 0), E(z1, 0))) MEMBER(E(S(S(y1)), 0), Cons(E(z1, 0), Cons(E(S(S(y3)), y4), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z1), True), z1, 0, S(S(y1)), 0), E(S(S(y1)), 0), Cons(E(z1, 0), Cons(E(S(S(y3)), y4), y5))), EQEDGE(E(S(S(y1)), 0), E(z1, 0))) MEMBER(E(S(y1), 0), Cons(E(z1, 0), Cons(E(S(y3), S(y4)), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), True), z1, 0, S(y1), 0), E(S(y1), 0), Cons(E(z1, 0), Cons(E(S(y3), S(y4)), y5))), EQEDGE(E(S(y1), 0), E(z1, 0))) MEMBER(E(S(S(y1)), 0), Cons(E(z1, 0), Cons(E(S(S(y3)), S(y4)), y5))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z1), True), z1, 0, S(S(y1)), 0), E(S(S(y1)), 0), Cons(E(z1, 0), Cons(E(S(S(y3)), S(y4)), y5))), EQEDGE(E(S(S(y1)), 0), E(z1, 0))) MEMBER(E(z0, 0), Cons(E(z1, 0), Cons(E(y3, S(y4)), Cons(E(y5, S(y6)), y7)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), True), z1, 0, z0, 0), E(z0, 0), Cons(E(z1, 0), Cons(E(y3, S(y4)), Cons(E(y5, S(y6)), y7)))), EQEDGE(E(z0, 0), E(z1, 0))) MEMBER(E(z0, 0), Cons(E(z1, 0), Cons(E(y3, S(y4)), Cons(E(y5, 0), y6)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), True), z1, 0, z0, 0), E(z0, 0), Cons(E(z1, 0), Cons(E(y3, S(y4)), Cons(E(y5, 0), y6)))), EQEDGE(E(z0, 0), E(z1, 0))) MEMBER(E(S(y1), 0), Cons(E(z1, 0), Cons(E(y3, S(y4)), Cons(E(S(y5), y6), y7)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), True), z1, 0, S(y1), 0), E(S(y1), 0), Cons(E(z1, 0), Cons(E(y3, S(y4)), Cons(E(S(y5), y6), y7)))), EQEDGE(E(S(y1), 0), E(z1, 0))) MEMBER(E(S(y1), 0), Cons(E(z1, 0), Cons(E(y3, S(y4)), Cons(E(0, y5), y6)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), True), z1, 0, S(y1), 0), E(S(y1), 0), Cons(E(z1, 0), Cons(E(y3, S(y4)), Cons(E(0, y5), y6)))), EQEDGE(E(S(y1), 0), E(z1, 0))) MEMBER(E(z0, 0), Cons(E(z1, 0), Cons(E(y3, S(y4)), Nil))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(z0, z1), True), z1, 0, z0, 0), E(z0, 0), Cons(E(z1, 0), Cons(E(y3, S(y4)), Nil))), EQEDGE(E(z0, 0), E(z1, 0))) MEMBER(E(S(y1), 0), Cons(E(z1, 0), Cons(E(y3, S(y4)), Nil))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), True), z1, 0, S(y1), 0), E(S(y1), 0), Cons(E(z1, 0), Cons(E(y3, S(y4)), Nil))), EQEDGE(E(S(y1), 0), E(z1, 0))) MEMBER(E(S(S(y1)), 0), Cons(E(z1, 0), Cons(E(y3, S(y4)), Cons(E(S(S(y5)), y6), y7)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(S(y1)), z1), True), z1, 0, S(S(y1)), 0), E(S(S(y1)), 0), Cons(E(z1, 0), Cons(E(y3, S(y4)), Cons(E(S(S(y5)), y6), y7)))), EQEDGE(E(S(S(y1)), 0), E(z1, 0))) MEMBER(E(S(y1), 0), Cons(E(z1, 0), Cons(E(0, S(y3)), y4))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), z1), True), z1, 0, S(y1), 0), E(S(y1), 0), Cons(E(z1, 0), Cons(E(0, S(y3)), y4))), EQEDGE(E(S(y1), 0), E(z1, 0))) MEMBER(E(0, 0), Cons(E(S(y2), 0), z2)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, S(y2)), True), S(y2), 0, 0, 0), E(0, 0), Cons(E(S(y2), 0), z2))) MEMBER(E(S(y1), 0), Cons(E(0, 0), z2)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(S(y1), 0), True), 0, 0, S(y1), 0), E(S(y1), 0), Cons(E(0, 0), z2))) MEMBER(E(0, 0), Cons(E(0, 0), z2)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, 0), True), 0, 0, 0, 0), E(0, 0), Cons(E(0, 0), z2))) MEMBER(E(0, 0), Cons(E(z1, 0), Cons(E(S(y2), y3), y4))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), True), z1, 0, 0, 0), E(0, 0), Cons(E(z1, 0), Cons(E(S(y2), y3), y4)))) MEMBER(E(0, 0), Cons(E(z1, 0), Cons(E(0, y2), y3))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), True), z1, 0, 0, 0), E(0, 0), Cons(E(z1, 0), Cons(E(0, y2), y3)))) MEMBER(E(0, 0), Cons(E(z1, 0), Nil)) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), True), z1, 0, 0, 0), E(0, 0), Cons(E(z1, 0), Nil))) MEMBER(E(0, 0), Cons(E(z1, 0), Cons(E(S(y2), S(y3)), y4))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), True), z1, 0, 0, 0), E(0, 0), Cons(E(z1, 0), Cons(E(S(y2), S(y3)), y4)))) MEMBER(E(0, 0), Cons(E(z1, 0), Cons(E(0, S(y2)), y3))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), True), z1, 0, 0, 0), E(0, 0), Cons(E(z1, 0), Cons(E(0, S(y2)), y3)))) MEMBER(E(0, 0), Cons(E(z1, 0), Cons(E(y2, S(y3)), Cons(E(S(y4), y5), y6)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), True), z1, 0, 0, 0), E(0, 0), Cons(E(z1, 0), Cons(E(y2, S(y3)), Cons(E(S(y4), y5), y6))))) MEMBER(E(0, 0), Cons(E(z1, 0), Cons(E(y2, S(y3)), Cons(E(0, y4), y5)))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), True), z1, 0, 0, 0), E(0, 0), Cons(E(z1, 0), Cons(E(y2, S(y3)), Cons(E(0, y4), y5))))) MEMBER(E(0, 0), Cons(E(z1, 0), Cons(E(y2, S(y3)), Nil))) -> c23(MEMBER[ITE](eqEdge[Ite](and(!EQ(0, z1), True), z1, 0, 0, 0), E(0, 0), Cons(E(z1, 0), Cons(E(y2, S(y3)), Nil)))) K tuples:none Defined Rule Symbols: reach_3, reach[Ite]_4, member_2, member[Ite]_3, eqEdge_2, eqEdge[Ite]_5, and_2, !EQ_2, via_4, via[Ite]_5, via[Let]_5 Defined Pair Symbols: VIA_4, MEMBER_2, REACH_3, MEMBER[ITE]_3, REACH[ITE]_4, !EQ'_2, VIA[ITE]_5, VIA[LET]_5, EQEDGE_2 Compound Symbols: c21_1, c21_2, c23_2, c29_2, c12_1, c14_1, c1_1, c22, c_1, c24, c8_2, c8_1, c10_1, c25_1, c26_1, c29_1, c23_1, c9_1