KILLED proof of input_rr7nf2a6OX.trs # AProVE Commit ID: 5b976082cb74a395683ed8cc7acf94bd611ab29f fuhs 20230524 unpublished The Runtime Complexity (parallel-innermost) of the given CpxTRS could be proven to be BOUNDS(1, INF). (0) CpxTRS (1) RenamingProof [BOTH BOUNDS(ID, ID), 0 ms] (2) CpxTRS (3) RelTrsToTrsProof [UPPER BOUND(ID), 0 ms] (4) CpxTRS (5) CpxTrsToCdtProof [UPPER BOUND(ID), 0 ms] (6) CdtProblem (7) CdtToCpxRelTrsProof [BOTH BOUNDS(ID, ID), 0 ms] (8) CpxRelTRS (9) RenamingProof [BOTH BOUNDS(ID, ID), 0 ms] (10) CpxRelTRS (11) TypeInferenceProof [BOTH BOUNDS(ID, ID), 0 ms] (12) typed CpxTrs (13) OrderProof [LOWER BOUND(ID), 0 ms] (14) typed CpxTrs (15) RewriteLemmaProof [LOWER BOUND(ID), 7787 ms] (16) typed CpxTrs (17) RewriteLemmaProof [LOWER BOUND(ID), 3140 ms] (18) BEST (19) proven lower bound (20) LowerBoundPropagationProof [FINISHED, 0 ms] (21) BOUNDS(n^1, INF) (22) typed CpxTrs (23) RelTrsToWeightedTrsProof [UPPER BOUND(ID), 0 ms] (24) CpxWeightedTrs (25) TypeInferenceProof [BOTH BOUNDS(ID, ID), 0 ms] (26) CpxTypedWeightedTrs (27) CompletionProof [UPPER BOUND(ID), 0 ms] (28) CpxTypedWeightedCompleteTrs (29) NarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (30) CpxTypedWeightedCompleteTrs (31) CpxTypedWeightedTrsToRntsProof [UPPER BOUND(ID), 0 ms] (32) CpxRNTS (33) SimplificationProof [BOTH BOUNDS(ID, ID), 3 ms] (34) CpxRNTS (35) CompletionProof [UPPER BOUND(ID), 0 ms] (36) CpxTypedWeightedCompleteTrs (37) CpxTypedWeightedTrsToRntsProof [UPPER BOUND(ID), 0 ms] (38) CpxRNTS (39) CpxTrsToCdtProof [UPPER BOUND(ID), 0 ms] (40) CdtProblem (41) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (42) CdtProblem (43) CdtToCpxRelTrsProof [BOTH BOUNDS(ID, ID), 0 ms] (44) CpxRelTRS (45) RelTrsToTrsProof [UPPER BOUND(ID), 0 ms] (46) CpxTRS (47) RelTrsToWeightedTrsProof [BOTH BOUNDS(ID, ID), 0 ms] (48) CpxWeightedTrs (49) TypeInferenceProof [BOTH BOUNDS(ID, ID), 0 ms] (50) CpxTypedWeightedTrs (51) CompletionProof [UPPER BOUND(ID), 0 ms] (52) CpxTypedWeightedCompleteTrs (53) NarrowingProof [BOTH BOUNDS(ID, ID), 24 ms] (54) CpxTypedWeightedCompleteTrs (55) CpxTypedWeightedTrsToRntsProof [UPPER BOUND(ID), 0 ms] (56) CpxRNTS (57) SimplificationProof [BOTH BOUNDS(ID, ID), 0 ms] (58) CpxRNTS (59) CompletionProof [UPPER BOUND(ID), 0 ms] (60) CpxTypedWeightedCompleteTrs (61) CpxTypedWeightedTrsToRntsProof [UPPER BOUND(ID), 0 ms] (62) CpxRNTS (63) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (64) CdtProblem (65) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (66) CdtProblem (67) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (68) CdtProblem (69) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (70) CdtProblem (71) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (72) CdtProblem (73) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (74) CdtProblem (75) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 27 ms] (76) CdtProblem (77) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (78) CdtProblem (79) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (80) CdtProblem (81) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (82) CdtProblem (83) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (84) CdtProblem (85) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (86) CdtProblem (87) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (88) CdtProblem (89) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (90) CdtProblem (91) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (92) CdtProblem (93) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (94) CdtProblem (95) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 2 ms] (96) CdtProblem (97) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (98) CdtProblem (99) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (100) CdtProblem (101) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (102) CdtProblem (103) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (104) CdtProblem (105) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 23 ms] (106) CdtProblem (107) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (108) CdtProblem (109) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (110) CdtProblem (111) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 7 ms] (112) CdtProblem (113) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 29 ms] (114) CdtProblem (115) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (116) CdtProblem (117) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 11 ms] (118) CdtProblem (119) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (120) CdtProblem (121) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 4 ms] (122) CdtProblem (123) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (124) CdtProblem (125) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 1 ms] (126) CdtProblem (127) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (128) CdtProblem (129) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (130) CdtProblem (131) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 1 ms] (132) CdtProblem (133) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (134) CdtProblem (135) CdtForwardInstantiationProof [BOTH BOUNDS(ID, ID), 407 ms] (136) CdtProblem (137) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (138) CdtProblem (139) CdtForwardInstantiationProof [BOTH BOUNDS(ID, ID), 141 ms] (140) CdtProblem (141) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (142) CdtProblem (143) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 19 ms] (144) CdtProblem (145) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 17 ms] (146) CdtProblem (147) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 15.6 s] (148) CdtProblem (149) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 16.2 s] (150) CdtProblem (151) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (152) CdtProblem (153) CdtForwardInstantiationProof [BOTH BOUNDS(ID, ID), 284 ms] (154) CdtProblem (155) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (156) CdtProblem (157) CdtForwardInstantiationProof [BOTH BOUNDS(ID, ID), 943 ms] (158) CdtProblem (159) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 52 ms] (160) CdtProblem (161) CdtForwardInstantiationProof [BOTH BOUNDS(ID, ID), 3861 ms] (162) CdtProblem ---------------------------------------- (0) 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: a__first(0, X) -> nil a__first(s(X), cons(Y, Z)) -> cons(mark(Y), first(X, Z)) a__from(X) -> cons(mark(X), from(s(X))) mark(first(X1, X2)) -> a__first(mark(X1), mark(X2)) mark(from(X)) -> a__from(mark(X)) mark(0) -> 0 mark(nil) -> nil mark(s(X)) -> s(mark(X)) mark(cons(X1, X2)) -> cons(mark(X1), X2) a__first(X1, X2) -> first(X1, X2) a__from(X) -> from(X) S is empty. Rewrite Strategy: PARALLEL_INNERMOST ---------------------------------------- (1) RenamingProof (BOTH BOUNDS(ID, ID)) Renamed function symbols to avoid clashes with predefined symbol. ---------------------------------------- (2) 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: a__first(0', X) -> nil a__first(s(X), cons(Y, Z)) -> cons(mark(Y), first(X, Z)) a__from(X) -> cons(mark(X), from(s(X))) mark(first(X1, X2)) -> a__first(mark(X1), mark(X2)) mark(from(X)) -> a__from(mark(X)) mark(0') -> 0' mark(nil) -> nil mark(s(X)) -> s(mark(X)) mark(cons(X1, X2)) -> cons(mark(X1), X2) a__first(X1, X2) -> first(X1, X2) a__from(X) -> from(X) S is empty. Rewrite Strategy: PARALLEL_INNERMOST ---------------------------------------- (3) RelTrsToTrsProof (UPPER BOUND(ID)) transformed relative TRS to TRS ---------------------------------------- (4) 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: a__first(0, X) -> nil a__first(s(X), cons(Y, Z)) -> cons(mark(Y), first(X, Z)) a__from(X) -> cons(mark(X), from(s(X))) mark(first(X1, X2)) -> a__first(mark(X1), mark(X2)) mark(from(X)) -> a__from(mark(X)) mark(0) -> 0 mark(nil) -> nil mark(s(X)) -> s(mark(X)) mark(cons(X1, X2)) -> cons(mark(X1), X2) a__first(X1, X2) -> first(X1, X2) a__from(X) -> from(X) S is empty. Rewrite Strategy: PARALLEL_INNERMOST ---------------------------------------- (5) CpxTrsToCdtProof (UPPER BOUND(ID)) Converted Cpx (relative) TRS with rewrite strategy PARALLEL_INNERMOST to CDT ---------------------------------------- (6) Obligation: Complexity Dependency Tuples Problem Rules: a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(0) -> 0 mark(nil) -> nil mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FIRST(0, z0) -> c A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FIRST(z0, z1) -> c2 A__FROM(z0) -> c3(MARK(z0)) A__FROM(z0) -> c4 MARK(first(z0, z1)) -> c5(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c6(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(0) -> c8 MARK(nil) -> c9 MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) S tuples: A__FIRST(0, z0) -> c A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FIRST(z0, z1) -> c2 A__FROM(z0) -> c3(MARK(z0)) A__FROM(z0) -> c4 MARK(first(z0, z1)) -> c5(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c6(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(0) -> c8 MARK(nil) -> c9 MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) K tuples:none Defined Rule Symbols: a__first_2, a__from_1, mark_1 Defined Pair Symbols: A__FIRST_2, A__FROM_1, MARK_1 Compound Symbols: c, c1_1, c2, c3_1, c4, c5_2, c6_2, c7_2, c8, c9, c10_1, c11_1 ---------------------------------------- (7) CdtToCpxRelTrsProof (BOTH BOUNDS(ID, ID)) Converted S to standard rules, and D \ S as well as R to relative rules. ---------------------------------------- (8) Obligation: The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(n^1, INF). The TRS R consists of the following rules: A__FIRST(0, z0) -> c A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FIRST(z0, z1) -> c2 A__FROM(z0) -> c3(MARK(z0)) A__FROM(z0) -> c4 MARK(first(z0, z1)) -> c5(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c6(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(0) -> c8 MARK(nil) -> c9 MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) The (relative) TRS S consists of the following rules: a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(0) -> 0 mark(nil) -> nil mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) Rewrite Strategy: INNERMOST ---------------------------------------- (9) RenamingProof (BOTH BOUNDS(ID, ID)) Renamed function symbols to avoid clashes with predefined symbol. ---------------------------------------- (10) Obligation: The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(n^1, INF). The TRS R consists of the following rules: A__FIRST(0', z0) -> c A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FIRST(z0, z1) -> c2 A__FROM(z0) -> c3(MARK(z0)) A__FROM(z0) -> c4 MARK(first(z0, z1)) -> c5(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c6(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(0') -> c8 MARK(nil) -> c9 MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) The (relative) TRS S consists of the following rules: a__first(0', z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(0') -> 0' mark(nil) -> nil mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) Rewrite Strategy: INNERMOST ---------------------------------------- (11) TypeInferenceProof (BOTH BOUNDS(ID, ID)) Inferred types. ---------------------------------------- (12) Obligation: Innermost TRS: Rules: A__FIRST(0', z0) -> c A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FIRST(z0, z1) -> c2 A__FROM(z0) -> c3(MARK(z0)) A__FROM(z0) -> c4 MARK(first(z0, z1)) -> c5(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c6(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(0') -> c8 MARK(nil) -> c9 MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) a__first(0', z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(0') -> 0' mark(nil) -> nil mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) Types: A__FIRST :: 0':s:cons:first:from:nil -> 0':s:cons:first:from:nil -> c:c1:c2 0' :: 0':s:cons:first:from:nil c :: c:c1:c2 s :: 0':s:cons:first:from:nil -> 0':s:cons:first:from:nil cons :: 0':s:cons:first:from:nil -> 0':s:cons:first:from:nil -> 0':s:cons:first:from:nil c1 :: c5:c6:c7:c8:c9:c10:c11 -> c:c1:c2 MARK :: 0':s:cons:first:from:nil -> c5:c6:c7:c8:c9:c10:c11 c2 :: c:c1:c2 A__FROM :: 0':s:cons:first:from:nil -> c3:c4 c3 :: c5:c6:c7:c8:c9:c10:c11 -> c3:c4 c4 :: c3:c4 first :: 0':s:cons:first:from:nil -> 0':s:cons:first:from:nil -> 0':s:cons:first:from:nil c5 :: c:c1:c2 -> c5:c6:c7:c8:c9:c10:c11 -> c5:c6:c7:c8:c9:c10:c11 mark :: 0':s:cons:first:from:nil -> 0':s:cons:first:from:nil c6 :: c:c1:c2 -> c5:c6:c7:c8:c9:c10:c11 -> c5:c6:c7:c8:c9:c10:c11 from :: 0':s:cons:first:from:nil -> 0':s:cons:first:from:nil c7 :: c3:c4 -> c5:c6:c7:c8:c9:c10:c11 -> c5:c6:c7:c8:c9:c10:c11 c8 :: c5:c6:c7:c8:c9:c10:c11 nil :: 0':s:cons:first:from:nil c9 :: c5:c6:c7:c8:c9:c10:c11 c10 :: c5:c6:c7:c8:c9:c10:c11 -> c5:c6:c7:c8:c9:c10:c11 c11 :: c5:c6:c7:c8:c9:c10:c11 -> c5:c6:c7:c8:c9:c10:c11 a__first :: 0':s:cons:first:from:nil -> 0':s:cons:first:from:nil -> 0':s:cons:first:from:nil a__from :: 0':s:cons:first:from:nil -> 0':s:cons:first:from:nil hole_c:c1:c21_12 :: c:c1:c2 hole_0':s:cons:first:from:nil2_12 :: 0':s:cons:first:from:nil hole_c5:c6:c7:c8:c9:c10:c113_12 :: c5:c6:c7:c8:c9:c10:c11 hole_c3:c44_12 :: c3:c4 gen_0':s:cons:first:from:nil5_12 :: Nat -> 0':s:cons:first:from:nil gen_c5:c6:c7:c8:c9:c10:c116_12 :: Nat -> c5:c6:c7:c8:c9:c10:c11 ---------------------------------------- (13) OrderProof (LOWER BOUND(ID)) Heuristically decided to analyse the following defined symbols: MARK, A__FROM, mark, a__from They will be analysed ascendingly in the following order: MARK = A__FROM mark < MARK mark = a__from ---------------------------------------- (14) Obligation: Innermost TRS: Rules: A__FIRST(0', z0) -> c A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FIRST(z0, z1) -> c2 A__FROM(z0) -> c3(MARK(z0)) A__FROM(z0) -> c4 MARK(first(z0, z1)) -> c5(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c6(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(0') -> c8 MARK(nil) -> c9 MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) a__first(0', z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(0') -> 0' mark(nil) -> nil mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) Types: A__FIRST :: 0':s:cons:first:from:nil -> 0':s:cons:first:from:nil -> c:c1:c2 0' :: 0':s:cons:first:from:nil c :: c:c1:c2 s :: 0':s:cons:first:from:nil -> 0':s:cons:first:from:nil cons :: 0':s:cons:first:from:nil -> 0':s:cons:first:from:nil -> 0':s:cons:first:from:nil c1 :: c5:c6:c7:c8:c9:c10:c11 -> c:c1:c2 MARK :: 0':s:cons:first:from:nil -> c5:c6:c7:c8:c9:c10:c11 c2 :: c:c1:c2 A__FROM :: 0':s:cons:first:from:nil -> c3:c4 c3 :: c5:c6:c7:c8:c9:c10:c11 -> c3:c4 c4 :: c3:c4 first :: 0':s:cons:first:from:nil -> 0':s:cons:first:from:nil -> 0':s:cons:first:from:nil c5 :: c:c1:c2 -> c5:c6:c7:c8:c9:c10:c11 -> c5:c6:c7:c8:c9:c10:c11 mark :: 0':s:cons:first:from:nil -> 0':s:cons:first:from:nil c6 :: c:c1:c2 -> c5:c6:c7:c8:c9:c10:c11 -> c5:c6:c7:c8:c9:c10:c11 from :: 0':s:cons:first:from:nil -> 0':s:cons:first:from:nil c7 :: c3:c4 -> c5:c6:c7:c8:c9:c10:c11 -> c5:c6:c7:c8:c9:c10:c11 c8 :: c5:c6:c7:c8:c9:c10:c11 nil :: 0':s:cons:first:from:nil c9 :: c5:c6:c7:c8:c9:c10:c11 c10 :: c5:c6:c7:c8:c9:c10:c11 -> c5:c6:c7:c8:c9:c10:c11 c11 :: c5:c6:c7:c8:c9:c10:c11 -> c5:c6:c7:c8:c9:c10:c11 a__first :: 0':s:cons:first:from:nil -> 0':s:cons:first:from:nil -> 0':s:cons:first:from:nil a__from :: 0':s:cons:first:from:nil -> 0':s:cons:first:from:nil hole_c:c1:c21_12 :: c:c1:c2 hole_0':s:cons:first:from:nil2_12 :: 0':s:cons:first:from:nil hole_c5:c6:c7:c8:c9:c10:c113_12 :: c5:c6:c7:c8:c9:c10:c11 hole_c3:c44_12 :: c3:c4 gen_0':s:cons:first:from:nil5_12 :: Nat -> 0':s:cons:first:from:nil gen_c5:c6:c7:c8:c9:c10:c116_12 :: Nat -> c5:c6:c7:c8:c9:c10:c11 Generator Equations: gen_0':s:cons:first:from:nil5_12(0) <=> 0' gen_0':s:cons:first:from:nil5_12(+(x, 1)) <=> s(gen_0':s:cons:first:from:nil5_12(x)) gen_c5:c6:c7:c8:c9:c10:c116_12(0) <=> c8 gen_c5:c6:c7:c8:c9:c10:c116_12(+(x, 1)) <=> c5(c, gen_c5:c6:c7:c8:c9:c10:c116_12(x)) The following defined symbols remain to be analysed: a__from, MARK, A__FROM, mark They will be analysed ascendingly in the following order: MARK = A__FROM mark < MARK mark = a__from ---------------------------------------- (15) RewriteLemmaProof (LOWER BOUND(ID)) Proved the following rewrite lemma: mark(gen_0':s:cons:first:from:nil5_12(n12763_12)) -> gen_0':s:cons:first:from:nil5_12(n12763_12), rt in Omega(0) Induction Base: mark(gen_0':s:cons:first:from:nil5_12(0)) ->_R^Omega(0) 0' Induction Step: mark(gen_0':s:cons:first:from:nil5_12(+(n12763_12, 1))) ->_R^Omega(0) s(mark(gen_0':s:cons:first:from:nil5_12(n12763_12))) ->_IH s(gen_0':s:cons:first:from:nil5_12(c12764_12)) We have rt in Omega(1) and sz in O(n). Thus, we have irc_R in Omega(n^0). ---------------------------------------- (16) Obligation: Innermost TRS: Rules: A__FIRST(0', z0) -> c A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FIRST(z0, z1) -> c2 A__FROM(z0) -> c3(MARK(z0)) A__FROM(z0) -> c4 MARK(first(z0, z1)) -> c5(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c6(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(0') -> c8 MARK(nil) -> c9 MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) a__first(0', z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(0') -> 0' mark(nil) -> nil mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) Types: A__FIRST :: 0':s:cons:first:from:nil -> 0':s:cons:first:from:nil -> c:c1:c2 0' :: 0':s:cons:first:from:nil c :: c:c1:c2 s :: 0':s:cons:first:from:nil -> 0':s:cons:first:from:nil cons :: 0':s:cons:first:from:nil -> 0':s:cons:first:from:nil -> 0':s:cons:first:from:nil c1 :: c5:c6:c7:c8:c9:c10:c11 -> c:c1:c2 MARK :: 0':s:cons:first:from:nil -> c5:c6:c7:c8:c9:c10:c11 c2 :: c:c1:c2 A__FROM :: 0':s:cons:first:from:nil -> c3:c4 c3 :: c5:c6:c7:c8:c9:c10:c11 -> c3:c4 c4 :: c3:c4 first :: 0':s:cons:first:from:nil -> 0':s:cons:first:from:nil -> 0':s:cons:first:from:nil c5 :: c:c1:c2 -> c5:c6:c7:c8:c9:c10:c11 -> c5:c6:c7:c8:c9:c10:c11 mark :: 0':s:cons:first:from:nil -> 0':s:cons:first:from:nil c6 :: c:c1:c2 -> c5:c6:c7:c8:c9:c10:c11 -> c5:c6:c7:c8:c9:c10:c11 from :: 0':s:cons:first:from:nil -> 0':s:cons:first:from:nil c7 :: c3:c4 -> c5:c6:c7:c8:c9:c10:c11 -> c5:c6:c7:c8:c9:c10:c11 c8 :: c5:c6:c7:c8:c9:c10:c11 nil :: 0':s:cons:first:from:nil c9 :: c5:c6:c7:c8:c9:c10:c11 c10 :: c5:c6:c7:c8:c9:c10:c11 -> c5:c6:c7:c8:c9:c10:c11 c11 :: c5:c6:c7:c8:c9:c10:c11 -> c5:c6:c7:c8:c9:c10:c11 a__first :: 0':s:cons:first:from:nil -> 0':s:cons:first:from:nil -> 0':s:cons:first:from:nil a__from :: 0':s:cons:first:from:nil -> 0':s:cons:first:from:nil hole_c:c1:c21_12 :: c:c1:c2 hole_0':s:cons:first:from:nil2_12 :: 0':s:cons:first:from:nil hole_c5:c6:c7:c8:c9:c10:c113_12 :: c5:c6:c7:c8:c9:c10:c11 hole_c3:c44_12 :: c3:c4 gen_0':s:cons:first:from:nil5_12 :: Nat -> 0':s:cons:first:from:nil gen_c5:c6:c7:c8:c9:c10:c116_12 :: Nat -> c5:c6:c7:c8:c9:c10:c11 Lemmas: mark(gen_0':s:cons:first:from:nil5_12(n12763_12)) -> gen_0':s:cons:first:from:nil5_12(n12763_12), rt in Omega(0) Generator Equations: gen_0':s:cons:first:from:nil5_12(0) <=> 0' gen_0':s:cons:first:from:nil5_12(+(x, 1)) <=> s(gen_0':s:cons:first:from:nil5_12(x)) gen_c5:c6:c7:c8:c9:c10:c116_12(0) <=> c8 gen_c5:c6:c7:c8:c9:c10:c116_12(+(x, 1)) <=> c5(c, gen_c5:c6:c7:c8:c9:c10:c116_12(x)) The following defined symbols remain to be analysed: a__from, MARK, A__FROM They will be analysed ascendingly in the following order: MARK = A__FROM mark < MARK mark = a__from ---------------------------------------- (17) RewriteLemmaProof (LOWER BOUND(ID)) Proved the following rewrite lemma: MARK(gen_0':s:cons:first:from:nil5_12(+(1, n31753_12))) -> *7_12, rt in Omega(n31753_12) Induction Base: MARK(gen_0':s:cons:first:from:nil5_12(+(1, 0))) Induction Step: MARK(gen_0':s:cons:first:from:nil5_12(+(1, +(n31753_12, 1)))) ->_R^Omega(1) c10(MARK(gen_0':s:cons:first:from:nil5_12(+(1, n31753_12)))) ->_IH c10(*7_12) We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). ---------------------------------------- (18) Complex Obligation (BEST) ---------------------------------------- (19) Obligation: Proved the lower bound n^1 for the following obligation: Innermost TRS: Rules: A__FIRST(0', z0) -> c A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FIRST(z0, z1) -> c2 A__FROM(z0) -> c3(MARK(z0)) A__FROM(z0) -> c4 MARK(first(z0, z1)) -> c5(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c6(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(0') -> c8 MARK(nil) -> c9 MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) a__first(0', z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(0') -> 0' mark(nil) -> nil mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) Types: A__FIRST :: 0':s:cons:first:from:nil -> 0':s:cons:first:from:nil -> c:c1:c2 0' :: 0':s:cons:first:from:nil c :: c:c1:c2 s :: 0':s:cons:first:from:nil -> 0':s:cons:first:from:nil cons :: 0':s:cons:first:from:nil -> 0':s:cons:first:from:nil -> 0':s:cons:first:from:nil c1 :: c5:c6:c7:c8:c9:c10:c11 -> c:c1:c2 MARK :: 0':s:cons:first:from:nil -> c5:c6:c7:c8:c9:c10:c11 c2 :: c:c1:c2 A__FROM :: 0':s:cons:first:from:nil -> c3:c4 c3 :: c5:c6:c7:c8:c9:c10:c11 -> c3:c4 c4 :: c3:c4 first :: 0':s:cons:first:from:nil -> 0':s:cons:first:from:nil -> 0':s:cons:first:from:nil c5 :: c:c1:c2 -> c5:c6:c7:c8:c9:c10:c11 -> c5:c6:c7:c8:c9:c10:c11 mark :: 0':s:cons:first:from:nil -> 0':s:cons:first:from:nil c6 :: c:c1:c2 -> c5:c6:c7:c8:c9:c10:c11 -> c5:c6:c7:c8:c9:c10:c11 from :: 0':s:cons:first:from:nil -> 0':s:cons:first:from:nil c7 :: c3:c4 -> c5:c6:c7:c8:c9:c10:c11 -> c5:c6:c7:c8:c9:c10:c11 c8 :: c5:c6:c7:c8:c9:c10:c11 nil :: 0':s:cons:first:from:nil c9 :: c5:c6:c7:c8:c9:c10:c11 c10 :: c5:c6:c7:c8:c9:c10:c11 -> c5:c6:c7:c8:c9:c10:c11 c11 :: c5:c6:c7:c8:c9:c10:c11 -> c5:c6:c7:c8:c9:c10:c11 a__first :: 0':s:cons:first:from:nil -> 0':s:cons:first:from:nil -> 0':s:cons:first:from:nil a__from :: 0':s:cons:first:from:nil -> 0':s:cons:first:from:nil hole_c:c1:c21_12 :: c:c1:c2 hole_0':s:cons:first:from:nil2_12 :: 0':s:cons:first:from:nil hole_c5:c6:c7:c8:c9:c10:c113_12 :: c5:c6:c7:c8:c9:c10:c11 hole_c3:c44_12 :: c3:c4 gen_0':s:cons:first:from:nil5_12 :: Nat -> 0':s:cons:first:from:nil gen_c5:c6:c7:c8:c9:c10:c116_12 :: Nat -> c5:c6:c7:c8:c9:c10:c11 Lemmas: mark(gen_0':s:cons:first:from:nil5_12(n12763_12)) -> gen_0':s:cons:first:from:nil5_12(n12763_12), rt in Omega(0) Generator Equations: gen_0':s:cons:first:from:nil5_12(0) <=> 0' gen_0':s:cons:first:from:nil5_12(+(x, 1)) <=> s(gen_0':s:cons:first:from:nil5_12(x)) gen_c5:c6:c7:c8:c9:c10:c116_12(0) <=> c8 gen_c5:c6:c7:c8:c9:c10:c116_12(+(x, 1)) <=> c5(c, gen_c5:c6:c7:c8:c9:c10:c116_12(x)) The following defined symbols remain to be analysed: MARK They will be analysed ascendingly in the following order: MARK = A__FROM ---------------------------------------- (20) LowerBoundPropagationProof (FINISHED) Propagated lower bound. ---------------------------------------- (21) BOUNDS(n^1, INF) ---------------------------------------- (22) Obligation: Innermost TRS: Rules: A__FIRST(0', z0) -> c A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FIRST(z0, z1) -> c2 A__FROM(z0) -> c3(MARK(z0)) A__FROM(z0) -> c4 MARK(first(z0, z1)) -> c5(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c6(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(0') -> c8 MARK(nil) -> c9 MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) a__first(0', z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(0') -> 0' mark(nil) -> nil mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) Types: A__FIRST :: 0':s:cons:first:from:nil -> 0':s:cons:first:from:nil -> c:c1:c2 0' :: 0':s:cons:first:from:nil c :: c:c1:c2 s :: 0':s:cons:first:from:nil -> 0':s:cons:first:from:nil cons :: 0':s:cons:first:from:nil -> 0':s:cons:first:from:nil -> 0':s:cons:first:from:nil c1 :: c5:c6:c7:c8:c9:c10:c11 -> c:c1:c2 MARK :: 0':s:cons:first:from:nil -> c5:c6:c7:c8:c9:c10:c11 c2 :: c:c1:c2 A__FROM :: 0':s:cons:first:from:nil -> c3:c4 c3 :: c5:c6:c7:c8:c9:c10:c11 -> c3:c4 c4 :: c3:c4 first :: 0':s:cons:first:from:nil -> 0':s:cons:first:from:nil -> 0':s:cons:first:from:nil c5 :: c:c1:c2 -> c5:c6:c7:c8:c9:c10:c11 -> c5:c6:c7:c8:c9:c10:c11 mark :: 0':s:cons:first:from:nil -> 0':s:cons:first:from:nil c6 :: c:c1:c2 -> c5:c6:c7:c8:c9:c10:c11 -> c5:c6:c7:c8:c9:c10:c11 from :: 0':s:cons:first:from:nil -> 0':s:cons:first:from:nil c7 :: c3:c4 -> c5:c6:c7:c8:c9:c10:c11 -> c5:c6:c7:c8:c9:c10:c11 c8 :: c5:c6:c7:c8:c9:c10:c11 nil :: 0':s:cons:first:from:nil c9 :: c5:c6:c7:c8:c9:c10:c11 c10 :: c5:c6:c7:c8:c9:c10:c11 -> c5:c6:c7:c8:c9:c10:c11 c11 :: c5:c6:c7:c8:c9:c10:c11 -> c5:c6:c7:c8:c9:c10:c11 a__first :: 0':s:cons:first:from:nil -> 0':s:cons:first:from:nil -> 0':s:cons:first:from:nil a__from :: 0':s:cons:first:from:nil -> 0':s:cons:first:from:nil hole_c:c1:c21_12 :: c:c1:c2 hole_0':s:cons:first:from:nil2_12 :: 0':s:cons:first:from:nil hole_c5:c6:c7:c8:c9:c10:c113_12 :: c5:c6:c7:c8:c9:c10:c11 hole_c3:c44_12 :: c3:c4 gen_0':s:cons:first:from:nil5_12 :: Nat -> 0':s:cons:first:from:nil gen_c5:c6:c7:c8:c9:c10:c116_12 :: Nat -> c5:c6:c7:c8:c9:c10:c11 Lemmas: mark(gen_0':s:cons:first:from:nil5_12(n12763_12)) -> gen_0':s:cons:first:from:nil5_12(n12763_12), rt in Omega(0) MARK(gen_0':s:cons:first:from:nil5_12(+(1, n31753_12))) -> *7_12, rt in Omega(n31753_12) Generator Equations: gen_0':s:cons:first:from:nil5_12(0) <=> 0' gen_0':s:cons:first:from:nil5_12(+(x, 1)) <=> s(gen_0':s:cons:first:from:nil5_12(x)) gen_c5:c6:c7:c8:c9:c10:c116_12(0) <=> c8 gen_c5:c6:c7:c8:c9:c10:c116_12(+(x, 1)) <=> c5(c, gen_c5:c6:c7:c8:c9:c10:c116_12(x)) The following defined symbols remain to be analysed: A__FROM They will be analysed ascendingly in the following order: MARK = A__FROM ---------------------------------------- (23) RelTrsToWeightedTrsProof (UPPER BOUND(ID)) Transformed relative TRS to weighted TRS ---------------------------------------- (24) 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: a__first(0, X) -> nil [1] a__first(s(X), cons(Y, Z)) -> cons(mark(Y), first(X, Z)) [1] a__from(X) -> cons(mark(X), from(s(X))) [1] mark(first(X1, X2)) -> a__first(mark(X1), mark(X2)) [1] mark(from(X)) -> a__from(mark(X)) [1] mark(0) -> 0 [1] mark(nil) -> nil [1] mark(s(X)) -> s(mark(X)) [1] mark(cons(X1, X2)) -> cons(mark(X1), X2) [1] a__first(X1, X2) -> first(X1, X2) [1] a__from(X) -> from(X) [1] Rewrite Strategy: INNERMOST ---------------------------------------- (25) TypeInferenceProof (BOTH BOUNDS(ID, ID)) Infered types. ---------------------------------------- (26) Obligation: Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules: a__first(0, X) -> nil [1] a__first(s(X), cons(Y, Z)) -> cons(mark(Y), first(X, Z)) [1] a__from(X) -> cons(mark(X), from(s(X))) [1] mark(first(X1, X2)) -> a__first(mark(X1), mark(X2)) [1] mark(from(X)) -> a__from(mark(X)) [1] mark(0) -> 0 [1] mark(nil) -> nil [1] mark(s(X)) -> s(mark(X)) [1] mark(cons(X1, X2)) -> cons(mark(X1), X2) [1] a__first(X1, X2) -> first(X1, X2) [1] a__from(X) -> from(X) [1] The TRS has the following type information: a__first :: 0:nil:s:cons:first:from -> 0:nil:s:cons:first:from -> 0:nil:s:cons:first:from 0 :: 0:nil:s:cons:first:from nil :: 0:nil:s:cons:first:from s :: 0:nil:s:cons:first:from -> 0:nil:s:cons:first:from cons :: 0:nil:s:cons:first:from -> 0:nil:s:cons:first:from -> 0:nil:s:cons:first:from mark :: 0:nil:s:cons:first:from -> 0:nil:s:cons:first:from first :: 0:nil:s:cons:first:from -> 0:nil:s:cons:first:from -> 0:nil:s:cons:first:from a__from :: 0:nil:s:cons:first:from -> 0:nil:s:cons:first:from from :: 0:nil:s:cons:first:from -> 0:nil:s:cons:first:from Rewrite Strategy: INNERMOST ---------------------------------------- (27) 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: none (c) The following functions are completely defined: mark_1 a__from_1 a__first_2 Due to the following rules being added: none And the following fresh constants: none ---------------------------------------- (28) 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: a__first(0, X) -> nil [1] a__first(s(X), cons(Y, Z)) -> cons(mark(Y), first(X, Z)) [1] a__from(X) -> cons(mark(X), from(s(X))) [1] mark(first(X1, X2)) -> a__first(mark(X1), mark(X2)) [1] mark(from(X)) -> a__from(mark(X)) [1] mark(0) -> 0 [1] mark(nil) -> nil [1] mark(s(X)) -> s(mark(X)) [1] mark(cons(X1, X2)) -> cons(mark(X1), X2) [1] a__first(X1, X2) -> first(X1, X2) [1] a__from(X) -> from(X) [1] The TRS has the following type information: a__first :: 0:nil:s:cons:first:from -> 0:nil:s:cons:first:from -> 0:nil:s:cons:first:from 0 :: 0:nil:s:cons:first:from nil :: 0:nil:s:cons:first:from s :: 0:nil:s:cons:first:from -> 0:nil:s:cons:first:from cons :: 0:nil:s:cons:first:from -> 0:nil:s:cons:first:from -> 0:nil:s:cons:first:from mark :: 0:nil:s:cons:first:from -> 0:nil:s:cons:first:from first :: 0:nil:s:cons:first:from -> 0:nil:s:cons:first:from -> 0:nil:s:cons:first:from a__from :: 0:nil:s:cons:first:from -> 0:nil:s:cons:first:from from :: 0:nil:s:cons:first:from -> 0:nil:s:cons:first:from Rewrite Strategy: INNERMOST ---------------------------------------- (29) NarrowingProof (BOTH BOUNDS(ID, ID)) Narrowed the inner basic terms of all right-hand sides by a single narrowing step. ---------------------------------------- (30) 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: a__first(0, X) -> nil [1] a__first(s(X), cons(Y, Z)) -> cons(mark(Y), first(X, Z)) [1] a__from(X) -> cons(mark(X), from(s(X))) [1] mark(first(X1, X2)) -> a__first(mark(X1), mark(X2)) [1] mark(from(first(X113, X213))) -> a__from(a__first(mark(X113), mark(X213))) [2] mark(from(from(X33))) -> a__from(a__from(mark(X33))) [2] mark(from(0)) -> a__from(0) [2] mark(from(nil)) -> a__from(nil) [2] mark(from(s(X34))) -> a__from(s(mark(X34))) [2] mark(from(cons(X114, X214))) -> a__from(cons(mark(X114), X214)) [2] mark(0) -> 0 [1] mark(nil) -> nil [1] mark(s(X)) -> s(mark(X)) [1] mark(cons(X1, X2)) -> cons(mark(X1), X2) [1] a__first(X1, X2) -> first(X1, X2) [1] a__from(X) -> from(X) [1] The TRS has the following type information: a__first :: 0:nil:s:cons:first:from -> 0:nil:s:cons:first:from -> 0:nil:s:cons:first:from 0 :: 0:nil:s:cons:first:from nil :: 0:nil:s:cons:first:from s :: 0:nil:s:cons:first:from -> 0:nil:s:cons:first:from cons :: 0:nil:s:cons:first:from -> 0:nil:s:cons:first:from -> 0:nil:s:cons:first:from mark :: 0:nil:s:cons:first:from -> 0:nil:s:cons:first:from first :: 0:nil:s:cons:first:from -> 0:nil:s:cons:first:from -> 0:nil:s:cons:first:from a__from :: 0:nil:s:cons:first:from -> 0:nil:s:cons:first:from from :: 0:nil:s:cons:first:from -> 0:nil:s:cons:first:from Rewrite Strategy: INNERMOST ---------------------------------------- (31) 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 => 1 ---------------------------------------- (32) Obligation: Complexity RNTS consisting of the following rules: a__first(z, z') -{ 1 }-> 1 :|: z' = X, X >= 0, z = 0 a__first(z, z') -{ 1 }-> 1 + X1 + X2 :|: X1 >= 0, X2 >= 0, z = X1, z' = X2 a__first(z, z') -{ 1 }-> 1 + mark(Y) + (1 + X + Z) :|: Z >= 0, z = 1 + X, Y >= 0, X >= 0, z' = 1 + Y + Z a__from(z) -{ 1 }-> 1 + X :|: X >= 0, z = X a__from(z) -{ 1 }-> 1 + mark(X) + (1 + (1 + X)) :|: X >= 0, z = X mark(z) -{ 2 }-> a__from(a__from(mark(X33))) :|: X33 >= 0, z = 1 + (1 + X33) mark(z) -{ 2 }-> a__from(a__first(mark(X113), mark(X213))) :|: X113 >= 0, X213 >= 0, z = 1 + (1 + X113 + X213) mark(z) -{ 2 }-> a__from(1) :|: z = 1 + 1 mark(z) -{ 2 }-> a__from(0) :|: z = 1 + 0 mark(z) -{ 2 }-> a__from(1 + mark(X34)) :|: z = 1 + (1 + X34), X34 >= 0 mark(z) -{ 2 }-> a__from(1 + mark(X114) + X214) :|: X114 >= 0, X214 >= 0, z = 1 + (1 + X114 + X214) mark(z) -{ 1 }-> a__first(mark(X1), mark(X2)) :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 mark(z) -{ 1 }-> 1 :|: z = 1 mark(z) -{ 1 }-> 0 :|: z = 0 mark(z) -{ 1 }-> 1 + mark(X) :|: z = 1 + X, X >= 0 mark(z) -{ 1 }-> 1 + mark(X1) + X2 :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 ---------------------------------------- (33) SimplificationProof (BOTH BOUNDS(ID, ID)) Simplified the RNTS by moving equalities from the constraints into the right-hand sides. ---------------------------------------- (34) Obligation: Complexity RNTS consisting of the following rules: a__first(z, z') -{ 1 }-> 1 :|: z' >= 0, z = 0 a__first(z, z') -{ 1 }-> 1 + z + z' :|: z >= 0, z' >= 0 a__first(z, z') -{ 1 }-> 1 + mark(Y) + (1 + (z - 1) + Z) :|: Z >= 0, Y >= 0, z - 1 >= 0, z' = 1 + Y + Z a__from(z) -{ 1 }-> 1 + z :|: z >= 0 a__from(z) -{ 1 }-> 1 + mark(z) + (1 + (1 + z)) :|: z >= 0 mark(z) -{ 2 }-> a__from(a__from(mark(z - 2))) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__from(a__first(mark(X113), mark(X213))) :|: X113 >= 0, X213 >= 0, z = 1 + (1 + X113 + X213) mark(z) -{ 2 }-> a__from(1) :|: z = 1 + 1 mark(z) -{ 2 }-> a__from(0) :|: z = 1 + 0 mark(z) -{ 2 }-> a__from(1 + mark(z - 2)) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__from(1 + mark(X114) + X214) :|: X114 >= 0, X214 >= 0, z = 1 + (1 + X114 + X214) mark(z) -{ 1 }-> a__first(mark(X1), mark(X2)) :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 mark(z) -{ 1 }-> 1 :|: z = 1 mark(z) -{ 1 }-> 0 :|: z = 0 mark(z) -{ 1 }-> 1 + mark(z - 1) :|: z - 1 >= 0 mark(z) -{ 1 }-> 1 + mark(X1) + X2 :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 ---------------------------------------- (35) 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: none And the following fresh constants: none ---------------------------------------- (36) 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: a__first(0, X) -> nil [1] a__first(s(X), cons(Y, Z)) -> cons(mark(Y), first(X, Z)) [1] a__from(X) -> cons(mark(X), from(s(X))) [1] mark(first(X1, X2)) -> a__first(mark(X1), mark(X2)) [1] mark(from(X)) -> a__from(mark(X)) [1] mark(0) -> 0 [1] mark(nil) -> nil [1] mark(s(X)) -> s(mark(X)) [1] mark(cons(X1, X2)) -> cons(mark(X1), X2) [1] a__first(X1, X2) -> first(X1, X2) [1] a__from(X) -> from(X) [1] The TRS has the following type information: a__first :: 0:nil:s:cons:first:from -> 0:nil:s:cons:first:from -> 0:nil:s:cons:first:from 0 :: 0:nil:s:cons:first:from nil :: 0:nil:s:cons:first:from s :: 0:nil:s:cons:first:from -> 0:nil:s:cons:first:from cons :: 0:nil:s:cons:first:from -> 0:nil:s:cons:first:from -> 0:nil:s:cons:first:from mark :: 0:nil:s:cons:first:from -> 0:nil:s:cons:first:from first :: 0:nil:s:cons:first:from -> 0:nil:s:cons:first:from -> 0:nil:s:cons:first:from a__from :: 0:nil:s:cons:first:from -> 0:nil:s:cons:first:from from :: 0:nil:s:cons:first:from -> 0:nil:s:cons:first:from Rewrite Strategy: INNERMOST ---------------------------------------- (37) 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 => 1 ---------------------------------------- (38) Obligation: Complexity RNTS consisting of the following rules: a__first(z, z') -{ 1 }-> 1 :|: z' = X, X >= 0, z = 0 a__first(z, z') -{ 1 }-> 1 + X1 + X2 :|: X1 >= 0, X2 >= 0, z = X1, z' = X2 a__first(z, z') -{ 1 }-> 1 + mark(Y) + (1 + X + Z) :|: Z >= 0, z = 1 + X, Y >= 0, X >= 0, z' = 1 + Y + Z a__from(z) -{ 1 }-> 1 + X :|: X >= 0, z = X a__from(z) -{ 1 }-> 1 + mark(X) + (1 + (1 + X)) :|: X >= 0, z = X mark(z) -{ 1 }-> a__from(mark(X)) :|: z = 1 + X, X >= 0 mark(z) -{ 1 }-> a__first(mark(X1), mark(X2)) :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 mark(z) -{ 1 }-> 1 :|: z = 1 mark(z) -{ 1 }-> 0 :|: z = 0 mark(z) -{ 1 }-> 1 + mark(X) :|: z = 1 + X, X >= 0 mark(z) -{ 1 }-> 1 + mark(X1) + X2 :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 Only complete derivations are relevant for the runtime complexity. ---------------------------------------- (39) CpxTrsToCdtProof (UPPER BOUND(ID)) Converted Cpx (relative) TRS with rewrite strategy PARALLEL_INNERMOST to CDT ---------------------------------------- (40) Obligation: Complexity Dependency Tuples Problem Rules: a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(0) -> 0 mark(nil) -> nil mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FIRST(0, z0) -> c A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FIRST(z0, z1) -> c2 A__FROM(z0) -> c3(MARK(z0)) A__FROM(z0) -> c4 MARK(first(z0, z1)) -> c5(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c6(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(0) -> c8 MARK(nil) -> c9 MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) S tuples: A__FIRST(0, z0) -> c A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FIRST(z0, z1) -> c2 A__FROM(z0) -> c3(MARK(z0)) A__FROM(z0) -> c4 MARK(first(z0, z1)) -> c5(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c6(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(0) -> c8 MARK(nil) -> c9 MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) K tuples:none Defined Rule Symbols: a__first_2, a__from_1, mark_1 Defined Pair Symbols: A__FIRST_2, A__FROM_1, MARK_1 Compound Symbols: c, c1_1, c2, c3_1, c4, c5_2, c6_2, c7_2, c8, c9, c10_1, c11_1 ---------------------------------------- (41) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 5 trailing nodes: A__FROM(z0) -> c4 MARK(nil) -> c9 A__FIRST(0, z0) -> c MARK(0) -> c8 A__FIRST(z0, z1) -> c2 ---------------------------------------- (42) Obligation: Complexity Dependency Tuples Problem Rules: a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(0) -> 0 mark(nil) -> nil mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) MARK(first(z0, z1)) -> c5(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c6(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) S tuples: A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) MARK(first(z0, z1)) -> c5(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c6(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) K tuples:none Defined Rule Symbols: a__first_2, a__from_1, mark_1 Defined Pair Symbols: A__FIRST_2, A__FROM_1, MARK_1 Compound Symbols: c1_1, c3_1, c5_2, c6_2, c7_2, c10_1, c11_1 ---------------------------------------- (43) CdtToCpxRelTrsProof (BOTH BOUNDS(ID, ID)) Converted S to standard rules, and D \ S as well as R to relative rules. ---------------------------------------- (44) Obligation: The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) MARK(first(z0, z1)) -> c5(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c6(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) The (relative) TRS S consists of the following rules: a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(0) -> 0 mark(nil) -> nil mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) Rewrite Strategy: INNERMOST ---------------------------------------- (45) RelTrsToTrsProof (UPPER BOUND(ID)) transformed relative TRS to TRS ---------------------------------------- (46) Obligation: The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) MARK(first(z0, z1)) -> c5(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c6(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(0) -> 0 mark(nil) -> nil mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) S is empty. Rewrite Strategy: INNERMOST ---------------------------------------- (47) RelTrsToWeightedTrsProof (BOTH BOUNDS(ID, ID)) Transformed relative TRS to weighted TRS ---------------------------------------- (48) 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: A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) [1] A__FROM(z0) -> c3(MARK(z0)) [1] MARK(first(z0, z1)) -> c5(A__FIRST(mark(z0), mark(z1)), MARK(z0)) [1] MARK(first(z0, z1)) -> c6(A__FIRST(mark(z0), mark(z1)), MARK(z1)) [1] MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) [1] MARK(s(z0)) -> c10(MARK(z0)) [1] MARK(cons(z0, z1)) -> c11(MARK(z0)) [1] a__first(0, z0) -> nil [0] a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) [0] a__first(z0, z1) -> first(z0, z1) [0] a__from(z0) -> cons(mark(z0), from(s(z0))) [0] a__from(z0) -> from(z0) [0] mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) [0] mark(from(z0)) -> a__from(mark(z0)) [0] mark(0) -> 0 [0] mark(nil) -> nil [0] mark(s(z0)) -> s(mark(z0)) [0] mark(cons(z0, z1)) -> cons(mark(z0), z1) [0] Rewrite Strategy: INNERMOST ---------------------------------------- (49) TypeInferenceProof (BOTH BOUNDS(ID, ID)) Infered types. ---------------------------------------- (50) Obligation: Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules: A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) [1] A__FROM(z0) -> c3(MARK(z0)) [1] MARK(first(z0, z1)) -> c5(A__FIRST(mark(z0), mark(z1)), MARK(z0)) [1] MARK(first(z0, z1)) -> c6(A__FIRST(mark(z0), mark(z1)), MARK(z1)) [1] MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) [1] MARK(s(z0)) -> c10(MARK(z0)) [1] MARK(cons(z0, z1)) -> c11(MARK(z0)) [1] a__first(0, z0) -> nil [0] a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) [0] a__first(z0, z1) -> first(z0, z1) [0] a__from(z0) -> cons(mark(z0), from(s(z0))) [0] a__from(z0) -> from(z0) [0] mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) [0] mark(from(z0)) -> a__from(mark(z0)) [0] mark(0) -> 0 [0] mark(nil) -> nil [0] mark(s(z0)) -> s(mark(z0)) [0] mark(cons(z0, z1)) -> cons(mark(z0), z1) [0] The TRS has the following type information: A__FIRST :: s:cons:first:from:0:nil -> s:cons:first:from:0:nil -> c1 s :: s:cons:first:from:0:nil -> s:cons:first:from:0:nil cons :: s:cons:first:from:0:nil -> s:cons:first:from:0:nil -> s:cons:first:from:0:nil c1 :: c5:c6:c7:c10:c11 -> c1 MARK :: s:cons:first:from:0:nil -> c5:c6:c7:c10:c11 A__FROM :: s:cons:first:from:0:nil -> c3 c3 :: c5:c6:c7:c10:c11 -> c3 first :: s:cons:first:from:0:nil -> s:cons:first:from:0:nil -> s:cons:first:from:0:nil c5 :: c1 -> c5:c6:c7:c10:c11 -> c5:c6:c7:c10:c11 mark :: s:cons:first:from:0:nil -> s:cons:first:from:0:nil c6 :: c1 -> c5:c6:c7:c10:c11 -> c5:c6:c7:c10:c11 from :: s:cons:first:from:0:nil -> s:cons:first:from:0:nil c7 :: c3 -> c5:c6:c7:c10:c11 -> c5:c6:c7:c10:c11 c10 :: c5:c6:c7:c10:c11 -> c5:c6:c7:c10:c11 c11 :: c5:c6:c7:c10:c11 -> c5:c6:c7:c10:c11 a__first :: s:cons:first:from:0:nil -> s:cons:first:from:0:nil -> s:cons:first:from:0:nil 0 :: s:cons:first:from:0:nil nil :: s:cons:first:from:0:nil a__from :: s:cons:first:from:0:nil -> s:cons:first:from:0:nil Rewrite Strategy: INNERMOST ---------------------------------------- (51) 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: A__FIRST_2 A__FROM_1 MARK_1 (c) The following functions are completely defined: a__first_2 a__from_1 mark_1 Due to the following rules being added: a__first(v0, v1) -> null_a__first [0] a__from(v0) -> null_a__from [0] mark(v0) -> null_mark [0] And the following fresh constants: null_a__first, null_a__from, null_mark, const, const1, const2 ---------------------------------------- (52) 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: A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) [1] A__FROM(z0) -> c3(MARK(z0)) [1] MARK(first(z0, z1)) -> c5(A__FIRST(mark(z0), mark(z1)), MARK(z0)) [1] MARK(first(z0, z1)) -> c6(A__FIRST(mark(z0), mark(z1)), MARK(z1)) [1] MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) [1] MARK(s(z0)) -> c10(MARK(z0)) [1] MARK(cons(z0, z1)) -> c11(MARK(z0)) [1] a__first(0, z0) -> nil [0] a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) [0] a__first(z0, z1) -> first(z0, z1) [0] a__from(z0) -> cons(mark(z0), from(s(z0))) [0] a__from(z0) -> from(z0) [0] mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) [0] mark(from(z0)) -> a__from(mark(z0)) [0] mark(0) -> 0 [0] mark(nil) -> nil [0] mark(s(z0)) -> s(mark(z0)) [0] mark(cons(z0, z1)) -> cons(mark(z0), z1) [0] a__first(v0, v1) -> null_a__first [0] a__from(v0) -> null_a__from [0] mark(v0) -> null_mark [0] The TRS has the following type information: A__FIRST :: s:cons:first:from:0:nil:null_a__first:null_a__from:null_mark -> s:cons:first:from:0:nil:null_a__first:null_a__from:null_mark -> c1 s :: s:cons:first:from:0:nil:null_a__first:null_a__from:null_mark -> s:cons:first:from:0:nil:null_a__first:null_a__from:null_mark cons :: s:cons:first:from:0:nil:null_a__first:null_a__from:null_mark -> s:cons:first:from:0:nil:null_a__first:null_a__from:null_mark -> s:cons:first:from:0:nil:null_a__first:null_a__from:null_mark c1 :: c5:c6:c7:c10:c11 -> c1 MARK :: s:cons:first:from:0:nil:null_a__first:null_a__from:null_mark -> c5:c6:c7:c10:c11 A__FROM :: s:cons:first:from:0:nil:null_a__first:null_a__from:null_mark -> c3 c3 :: c5:c6:c7:c10:c11 -> c3 first :: s:cons:first:from:0:nil:null_a__first:null_a__from:null_mark -> s:cons:first:from:0:nil:null_a__first:null_a__from:null_mark -> s:cons:first:from:0:nil:null_a__first:null_a__from:null_mark c5 :: c1 -> c5:c6:c7:c10:c11 -> c5:c6:c7:c10:c11 mark :: s:cons:first:from:0:nil:null_a__first:null_a__from:null_mark -> s:cons:first:from:0:nil:null_a__first:null_a__from:null_mark c6 :: c1 -> c5:c6:c7:c10:c11 -> c5:c6:c7:c10:c11 from :: s:cons:first:from:0:nil:null_a__first:null_a__from:null_mark -> s:cons:first:from:0:nil:null_a__first:null_a__from:null_mark c7 :: c3 -> c5:c6:c7:c10:c11 -> c5:c6:c7:c10:c11 c10 :: c5:c6:c7:c10:c11 -> c5:c6:c7:c10:c11 c11 :: c5:c6:c7:c10:c11 -> c5:c6:c7:c10:c11 a__first :: s:cons:first:from:0:nil:null_a__first:null_a__from:null_mark -> s:cons:first:from:0:nil:null_a__first:null_a__from:null_mark -> s:cons:first:from:0:nil:null_a__first:null_a__from:null_mark 0 :: s:cons:first:from:0:nil:null_a__first:null_a__from:null_mark nil :: s:cons:first:from:0:nil:null_a__first:null_a__from:null_mark a__from :: s:cons:first:from:0:nil:null_a__first:null_a__from:null_mark -> s:cons:first:from:0:nil:null_a__first:null_a__from:null_mark null_a__first :: s:cons:first:from:0:nil:null_a__first:null_a__from:null_mark null_a__from :: s:cons:first:from:0:nil:null_a__first:null_a__from:null_mark null_mark :: s:cons:first:from:0:nil:null_a__first:null_a__from:null_mark const :: c1 const1 :: c5:c6:c7:c10:c11 const2 :: c3 Rewrite Strategy: INNERMOST ---------------------------------------- (53) NarrowingProof (BOTH BOUNDS(ID, ID)) Narrowed the inner basic terms of all right-hand sides by a single narrowing step. ---------------------------------------- (54) 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: A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) [1] A__FROM(z0) -> c3(MARK(z0)) [1] MARK(first(z0, z1)) -> c5(A__FIRST(mark(z0), mark(z1)), MARK(z0)) [1] MARK(first(z0, z1)) -> c6(A__FIRST(mark(z0), mark(z1)), MARK(z1)) [1] MARK(from(first(z063, z131))) -> c7(A__FROM(a__first(mark(z063), mark(z131))), MARK(first(z063, z131))) [1] MARK(from(from(z064))) -> c7(A__FROM(a__from(mark(z064))), MARK(from(z064))) [1] MARK(from(0)) -> c7(A__FROM(0), MARK(0)) [1] MARK(from(nil)) -> c7(A__FROM(nil), MARK(nil)) [1] MARK(from(s(z065))) -> c7(A__FROM(s(mark(z065))), MARK(s(z065))) [1] MARK(from(cons(z066, z132))) -> c7(A__FROM(cons(mark(z066), z132)), MARK(cons(z066, z132))) [1] MARK(from(z0)) -> c7(A__FROM(null_mark), MARK(z0)) [1] MARK(s(z0)) -> c10(MARK(z0)) [1] MARK(cons(z0, z1)) -> c11(MARK(z0)) [1] a__first(0, z0) -> nil [0] a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) [0] a__first(z0, z1) -> first(z0, z1) [0] a__from(z0) -> cons(mark(z0), from(s(z0))) [0] a__from(z0) -> from(z0) [0] mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) [0] mark(from(first(z099, z149))) -> a__from(a__first(mark(z099), mark(z149))) [0] mark(from(from(z0100))) -> a__from(a__from(mark(z0100))) [0] mark(from(0)) -> a__from(0) [0] mark(from(nil)) -> a__from(nil) [0] mark(from(s(z0101))) -> a__from(s(mark(z0101))) [0] mark(from(cons(z0102, z150))) -> a__from(cons(mark(z0102), z150)) [0] mark(from(z0)) -> a__from(null_mark) [0] mark(0) -> 0 [0] mark(nil) -> nil [0] mark(s(z0)) -> s(mark(z0)) [0] mark(cons(z0, z1)) -> cons(mark(z0), z1) [0] a__first(v0, v1) -> null_a__first [0] a__from(v0) -> null_a__from [0] mark(v0) -> null_mark [0] The TRS has the following type information: A__FIRST :: s:cons:first:from:0:nil:null_a__first:null_a__from:null_mark -> s:cons:first:from:0:nil:null_a__first:null_a__from:null_mark -> c1 s :: s:cons:first:from:0:nil:null_a__first:null_a__from:null_mark -> s:cons:first:from:0:nil:null_a__first:null_a__from:null_mark cons :: s:cons:first:from:0:nil:null_a__first:null_a__from:null_mark -> s:cons:first:from:0:nil:null_a__first:null_a__from:null_mark -> s:cons:first:from:0:nil:null_a__first:null_a__from:null_mark c1 :: c5:c6:c7:c10:c11 -> c1 MARK :: s:cons:first:from:0:nil:null_a__first:null_a__from:null_mark -> c5:c6:c7:c10:c11 A__FROM :: s:cons:first:from:0:nil:null_a__first:null_a__from:null_mark -> c3 c3 :: c5:c6:c7:c10:c11 -> c3 first :: s:cons:first:from:0:nil:null_a__first:null_a__from:null_mark -> s:cons:first:from:0:nil:null_a__first:null_a__from:null_mark -> s:cons:first:from:0:nil:null_a__first:null_a__from:null_mark c5 :: c1 -> c5:c6:c7:c10:c11 -> c5:c6:c7:c10:c11 mark :: s:cons:first:from:0:nil:null_a__first:null_a__from:null_mark -> s:cons:first:from:0:nil:null_a__first:null_a__from:null_mark c6 :: c1 -> c5:c6:c7:c10:c11 -> c5:c6:c7:c10:c11 from :: s:cons:first:from:0:nil:null_a__first:null_a__from:null_mark -> s:cons:first:from:0:nil:null_a__first:null_a__from:null_mark c7 :: c3 -> c5:c6:c7:c10:c11 -> c5:c6:c7:c10:c11 c10 :: c5:c6:c7:c10:c11 -> c5:c6:c7:c10:c11 c11 :: c5:c6:c7:c10:c11 -> c5:c6:c7:c10:c11 a__first :: s:cons:first:from:0:nil:null_a__first:null_a__from:null_mark -> s:cons:first:from:0:nil:null_a__first:null_a__from:null_mark -> s:cons:first:from:0:nil:null_a__first:null_a__from:null_mark 0 :: s:cons:first:from:0:nil:null_a__first:null_a__from:null_mark nil :: s:cons:first:from:0:nil:null_a__first:null_a__from:null_mark a__from :: s:cons:first:from:0:nil:null_a__first:null_a__from:null_mark -> s:cons:first:from:0:nil:null_a__first:null_a__from:null_mark null_a__first :: s:cons:first:from:0:nil:null_a__first:null_a__from:null_mark null_a__from :: s:cons:first:from:0:nil:null_a__first:null_a__from:null_mark null_mark :: s:cons:first:from:0:nil:null_a__first:null_a__from:null_mark const :: c1 const1 :: c5:c6:c7:c10:c11 const2 :: c3 Rewrite Strategy: INNERMOST ---------------------------------------- (55) 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 => 1 null_a__first => 0 null_a__from => 0 null_mark => 0 const => 0 const1 => 0 const2 => 0 ---------------------------------------- (56) Obligation: Complexity RNTS consisting of the following rules: A__FIRST(z, z') -{ 1 }-> 1 + MARK(z1) :|: z1 >= 0, z' = 1 + z1 + z2, z = 1 + z0, z0 >= 0, z2 >= 0 A__FROM(z) -{ 1 }-> 1 + MARK(z0) :|: z = z0, z0 >= 0 MARK(z) -{ 1 }-> 1 + MARK(z0) :|: z = 1 + z0, z0 >= 0 MARK(z) -{ 1 }-> 1 + MARK(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 MARK(z) -{ 1 }-> 1 + A__FROM(a__from(mark(z064))) + MARK(1 + z064) :|: z = 1 + (1 + z064), z064 >= 0 MARK(z) -{ 1 }-> 1 + A__FROM(a__first(mark(z063), mark(z131))) + MARK(1 + z063 + z131) :|: z063 >= 0, z131 >= 0, z = 1 + (1 + z063 + z131) MARK(z) -{ 1 }-> 1 + A__FROM(1) + MARK(1) :|: z = 1 + 1 MARK(z) -{ 1 }-> 1 + A__FROM(0) + MARK(z0) :|: z = 1 + z0, z0 >= 0 MARK(z) -{ 1 }-> 1 + A__FROM(0) + MARK(0) :|: z = 1 + 0 MARK(z) -{ 1 }-> 1 + A__FROM(1 + mark(z065)) + MARK(1 + z065) :|: z = 1 + (1 + z065), z065 >= 0 MARK(z) -{ 1 }-> 1 + A__FROM(1 + mark(z066) + z132) + MARK(1 + z066 + z132) :|: z132 >= 0, z = 1 + (1 + z066 + z132), z066 >= 0 MARK(z) -{ 1 }-> 1 + A__FIRST(mark(z0), mark(z1)) + MARK(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 MARK(z) -{ 1 }-> 1 + A__FIRST(mark(z0), mark(z1)) + MARK(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 a__first(z, z') -{ 0 }-> 1 :|: z0 >= 0, z = 0, z' = z0 a__first(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 a__first(z, z') -{ 0 }-> 1 + z0 + z1 :|: z = z0, z1 >= 0, z' = z1, z0 >= 0 a__first(z, z') -{ 0 }-> 1 + mark(z1) + (1 + z0 + z2) :|: z1 >= 0, z' = 1 + z1 + z2, z = 1 + z0, z0 >= 0, z2 >= 0 a__from(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 a__from(z) -{ 0 }-> 1 + z0 :|: z = z0, z0 >= 0 a__from(z) -{ 0 }-> 1 + mark(z0) + (1 + (1 + z0)) :|: z = z0, z0 >= 0 mark(z) -{ 0 }-> a__from(a__from(mark(z0100))) :|: z0100 >= 0, z = 1 + (1 + z0100) mark(z) -{ 0 }-> a__from(a__first(mark(z099), mark(z149))) :|: z149 >= 0, z099 >= 0, z = 1 + (1 + z099 + z149) mark(z) -{ 0 }-> a__from(1) :|: z = 1 + 1 mark(z) -{ 0 }-> a__from(0) :|: z = 1 + 0 mark(z) -{ 0 }-> a__from(0) :|: z = 1 + z0, z0 >= 0 mark(z) -{ 0 }-> a__from(1 + mark(z0101)) :|: z0101 >= 0, z = 1 + (1 + z0101) mark(z) -{ 0 }-> a__from(1 + mark(z0102) + z150) :|: z0102 >= 0, z150 >= 0, z = 1 + (1 + z0102 + z150) mark(z) -{ 0 }-> a__first(mark(z0), mark(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 mark(z) -{ 0 }-> 1 :|: z = 1 mark(z) -{ 0 }-> 0 :|: z = 0 mark(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 mark(z) -{ 0 }-> 1 + mark(z0) :|: z = 1 + z0, z0 >= 0 mark(z) -{ 0 }-> 1 + mark(z0) + z1 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ---------------------------------------- (57) SimplificationProof (BOTH BOUNDS(ID, ID)) Simplified the RNTS by moving equalities from the constraints into the right-hand sides. ---------------------------------------- (58) Obligation: Complexity RNTS consisting of the following rules: A__FIRST(z, z') -{ 1 }-> 1 + MARK(z1) :|: z1 >= 0, z' = 1 + z1 + z2, z - 1 >= 0, z2 >= 0 A__FROM(z) -{ 1 }-> 1 + MARK(z) :|: z >= 0 MARK(z) -{ 1 }-> 1 + MARK(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 MARK(z) -{ 1 }-> 1 + MARK(z - 1) :|: z - 1 >= 0 MARK(z) -{ 1 }-> 1 + A__FROM(a__from(mark(z - 2))) + MARK(1 + (z - 2)) :|: z - 2 >= 0 MARK(z) -{ 1 }-> 1 + A__FROM(a__first(mark(z063), mark(z131))) + MARK(1 + z063 + z131) :|: z063 >= 0, z131 >= 0, z = 1 + (1 + z063 + z131) MARK(z) -{ 1 }-> 1 + A__FROM(1) + MARK(1) :|: z = 1 + 1 MARK(z) -{ 1 }-> 1 + A__FROM(0) + MARK(0) :|: z = 1 + 0 MARK(z) -{ 1 }-> 1 + A__FROM(0) + MARK(z - 1) :|: z - 1 >= 0 MARK(z) -{ 1 }-> 1 + A__FROM(1 + mark(z - 2)) + MARK(1 + (z - 2)) :|: z - 2 >= 0 MARK(z) -{ 1 }-> 1 + A__FROM(1 + mark(z066) + z132) + MARK(1 + z066 + z132) :|: z132 >= 0, z = 1 + (1 + z066 + z132), z066 >= 0 MARK(z) -{ 1 }-> 1 + A__FIRST(mark(z0), mark(z1)) + MARK(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 MARK(z) -{ 1 }-> 1 + A__FIRST(mark(z0), mark(z1)) + MARK(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 a__first(z, z') -{ 0 }-> 1 :|: z' >= 0, z = 0 a__first(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 a__first(z, z') -{ 0 }-> 1 + z + z' :|: z' >= 0, z >= 0 a__first(z, z') -{ 0 }-> 1 + mark(z1) + (1 + (z - 1) + z2) :|: z1 >= 0, z' = 1 + z1 + z2, z - 1 >= 0, z2 >= 0 a__from(z) -{ 0 }-> 0 :|: z >= 0 a__from(z) -{ 0 }-> 1 + z :|: z >= 0 a__from(z) -{ 0 }-> 1 + mark(z) + (1 + (1 + z)) :|: z >= 0 mark(z) -{ 0 }-> a__from(a__from(mark(z - 2))) :|: z - 2 >= 0 mark(z) -{ 0 }-> a__from(a__first(mark(z099), mark(z149))) :|: z149 >= 0, z099 >= 0, z = 1 + (1 + z099 + z149) mark(z) -{ 0 }-> a__from(1) :|: z = 1 + 1 mark(z) -{ 0 }-> a__from(0) :|: z = 1 + 0 mark(z) -{ 0 }-> a__from(0) :|: z - 1 >= 0 mark(z) -{ 0 }-> a__from(1 + mark(z - 2)) :|: z - 2 >= 0 mark(z) -{ 0 }-> a__from(1 + mark(z0102) + z150) :|: z0102 >= 0, z150 >= 0, z = 1 + (1 + z0102 + z150) mark(z) -{ 0 }-> a__first(mark(z0), mark(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 mark(z) -{ 0 }-> 1 :|: z = 1 mark(z) -{ 0 }-> 0 :|: z = 0 mark(z) -{ 0 }-> 0 :|: z >= 0 mark(z) -{ 0 }-> 1 + mark(z - 1) :|: z - 1 >= 0 mark(z) -{ 0 }-> 1 + mark(z0) + z1 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ---------------------------------------- (59) 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: a__first(v0, v1) -> null_a__first [0] a__from(v0) -> null_a__from [0] mark(v0) -> null_mark [0] A__FIRST(v0, v1) -> null_A__FIRST [0] MARK(v0) -> null_MARK [0] And the following fresh constants: null_a__first, null_a__from, null_mark, null_A__FIRST, null_MARK, const ---------------------------------------- (60) 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: A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) [1] A__FROM(z0) -> c3(MARK(z0)) [1] MARK(first(z0, z1)) -> c5(A__FIRST(mark(z0), mark(z1)), MARK(z0)) [1] MARK(first(z0, z1)) -> c6(A__FIRST(mark(z0), mark(z1)), MARK(z1)) [1] MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) [1] MARK(s(z0)) -> c10(MARK(z0)) [1] MARK(cons(z0, z1)) -> c11(MARK(z0)) [1] a__first(0, z0) -> nil [0] a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) [0] a__first(z0, z1) -> first(z0, z1) [0] a__from(z0) -> cons(mark(z0), from(s(z0))) [0] a__from(z0) -> from(z0) [0] mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) [0] mark(from(z0)) -> a__from(mark(z0)) [0] mark(0) -> 0 [0] mark(nil) -> nil [0] mark(s(z0)) -> s(mark(z0)) [0] mark(cons(z0, z1)) -> cons(mark(z0), z1) [0] a__first(v0, v1) -> null_a__first [0] a__from(v0) -> null_a__from [0] mark(v0) -> null_mark [0] A__FIRST(v0, v1) -> null_A__FIRST [0] MARK(v0) -> null_MARK [0] The TRS has the following type information: A__FIRST :: s:cons:first:from:0:nil:null_a__first:null_a__from:null_mark -> s:cons:first:from:0:nil:null_a__first:null_a__from:null_mark -> c1:null_A__FIRST s :: s:cons:first:from:0:nil:null_a__first:null_a__from:null_mark -> s:cons:first:from:0:nil:null_a__first:null_a__from:null_mark cons :: s:cons:first:from:0:nil:null_a__first:null_a__from:null_mark -> s:cons:first:from:0:nil:null_a__first:null_a__from:null_mark -> s:cons:first:from:0:nil:null_a__first:null_a__from:null_mark c1 :: c5:c6:c7:c10:c11:null_MARK -> c1:null_A__FIRST MARK :: s:cons:first:from:0:nil:null_a__first:null_a__from:null_mark -> c5:c6:c7:c10:c11:null_MARK A__FROM :: s:cons:first:from:0:nil:null_a__first:null_a__from:null_mark -> c3 c3 :: c5:c6:c7:c10:c11:null_MARK -> c3 first :: s:cons:first:from:0:nil:null_a__first:null_a__from:null_mark -> s:cons:first:from:0:nil:null_a__first:null_a__from:null_mark -> s:cons:first:from:0:nil:null_a__first:null_a__from:null_mark c5 :: c1:null_A__FIRST -> c5:c6:c7:c10:c11:null_MARK -> c5:c6:c7:c10:c11:null_MARK mark :: s:cons:first:from:0:nil:null_a__first:null_a__from:null_mark -> s:cons:first:from:0:nil:null_a__first:null_a__from:null_mark c6 :: c1:null_A__FIRST -> c5:c6:c7:c10:c11:null_MARK -> c5:c6:c7:c10:c11:null_MARK from :: s:cons:first:from:0:nil:null_a__first:null_a__from:null_mark -> s:cons:first:from:0:nil:null_a__first:null_a__from:null_mark c7 :: c3 -> c5:c6:c7:c10:c11:null_MARK -> c5:c6:c7:c10:c11:null_MARK c10 :: c5:c6:c7:c10:c11:null_MARK -> c5:c6:c7:c10:c11:null_MARK c11 :: c5:c6:c7:c10:c11:null_MARK -> c5:c6:c7:c10:c11:null_MARK a__first :: s:cons:first:from:0:nil:null_a__first:null_a__from:null_mark -> s:cons:first:from:0:nil:null_a__first:null_a__from:null_mark -> s:cons:first:from:0:nil:null_a__first:null_a__from:null_mark 0 :: s:cons:first:from:0:nil:null_a__first:null_a__from:null_mark nil :: s:cons:first:from:0:nil:null_a__first:null_a__from:null_mark a__from :: s:cons:first:from:0:nil:null_a__first:null_a__from:null_mark -> s:cons:first:from:0:nil:null_a__first:null_a__from:null_mark null_a__first :: s:cons:first:from:0:nil:null_a__first:null_a__from:null_mark null_a__from :: s:cons:first:from:0:nil:null_a__first:null_a__from:null_mark null_mark :: s:cons:first:from:0:nil:null_a__first:null_a__from:null_mark null_A__FIRST :: c1:null_A__FIRST null_MARK :: c5:c6:c7:c10:c11:null_MARK const :: c3 Rewrite Strategy: INNERMOST ---------------------------------------- (61) 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 => 1 null_a__first => 0 null_a__from => 0 null_mark => 0 null_A__FIRST => 0 null_MARK => 0 const => 0 ---------------------------------------- (62) Obligation: Complexity RNTS consisting of the following rules: A__FIRST(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 A__FIRST(z, z') -{ 1 }-> 1 + MARK(z1) :|: z1 >= 0, z' = 1 + z1 + z2, z = 1 + z0, z0 >= 0, z2 >= 0 A__FROM(z) -{ 1 }-> 1 + MARK(z0) :|: z = z0, z0 >= 0 MARK(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 MARK(z) -{ 1 }-> 1 + MARK(z0) :|: z = 1 + z0, z0 >= 0 MARK(z) -{ 1 }-> 1 + MARK(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 MARK(z) -{ 1 }-> 1 + A__FROM(mark(z0)) + MARK(z0) :|: z = 1 + z0, z0 >= 0 MARK(z) -{ 1 }-> 1 + A__FIRST(mark(z0), mark(z1)) + MARK(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 MARK(z) -{ 1 }-> 1 + A__FIRST(mark(z0), mark(z1)) + MARK(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 a__first(z, z') -{ 0 }-> 1 :|: z0 >= 0, z = 0, z' = z0 a__first(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 a__first(z, z') -{ 0 }-> 1 + z0 + z1 :|: z = z0, z1 >= 0, z' = z1, z0 >= 0 a__first(z, z') -{ 0 }-> 1 + mark(z1) + (1 + z0 + z2) :|: z1 >= 0, z' = 1 + z1 + z2, z = 1 + z0, z0 >= 0, z2 >= 0 a__from(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 a__from(z) -{ 0 }-> 1 + z0 :|: z = z0, z0 >= 0 a__from(z) -{ 0 }-> 1 + mark(z0) + (1 + (1 + z0)) :|: z = z0, z0 >= 0 mark(z) -{ 0 }-> a__from(mark(z0)) :|: z = 1 + z0, z0 >= 0 mark(z) -{ 0 }-> a__first(mark(z0), mark(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 mark(z) -{ 0 }-> 1 :|: z = 1 mark(z) -{ 0 }-> 0 :|: z = 0 mark(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 mark(z) -{ 0 }-> 1 + mark(z0) :|: z = 1 + z0, z0 >= 0 mark(z) -{ 0 }-> 1 + mark(z0) + z1 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 Only complete derivations are relevant for the runtime complexity. ---------------------------------------- (63) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(first(z0, z1)) -> c5(A__FIRST(mark(z0), mark(z1)), MARK(z0)) by MARK(first(x0, first(z0, z1))) -> c5(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, from(z0))) -> c5(A__FIRST(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(first(x0, 0)) -> c5(A__FIRST(mark(x0), 0), MARK(x0)) MARK(first(x0, nil)) -> c5(A__FIRST(mark(x0), nil), MARK(x0)) MARK(first(x0, s(z0))) -> c5(A__FIRST(mark(x0), s(mark(z0))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c5(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(first(z0, z1), x1)) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(from(z0), x1)) -> c5(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(first(0, x1)) -> c5(A__FIRST(0, mark(x1)), MARK(0)) MARK(first(nil, x1)) -> c5(A__FIRST(nil, mark(x1)), MARK(nil)) MARK(first(s(z0), x1)) -> c5(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c5(A__FIRST(cons(mark(z0), z1), mark(x1)), MARK(cons(z0, z1))) ---------------------------------------- (64) Obligation: Complexity Dependency Tuples Problem Rules: a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(0) -> 0 mark(nil) -> nil mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) MARK(first(z0, z1)) -> c6(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(x0, first(z0, z1))) -> c5(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, from(z0))) -> c5(A__FIRST(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(first(x0, 0)) -> c5(A__FIRST(mark(x0), 0), MARK(x0)) MARK(first(x0, nil)) -> c5(A__FIRST(mark(x0), nil), MARK(x0)) MARK(first(x0, s(z0))) -> c5(A__FIRST(mark(x0), s(mark(z0))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c5(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(first(z0, z1), x1)) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(from(z0), x1)) -> c5(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(first(0, x1)) -> c5(A__FIRST(0, mark(x1)), MARK(0)) MARK(first(nil, x1)) -> c5(A__FIRST(nil, mark(x1)), MARK(nil)) MARK(first(s(z0), x1)) -> c5(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c5(A__FIRST(cons(mark(z0), z1), mark(x1)), MARK(cons(z0, z1))) S tuples: A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) MARK(first(z0, z1)) -> c6(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(x0, first(z0, z1))) -> c5(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, from(z0))) -> c5(A__FIRST(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(first(x0, 0)) -> c5(A__FIRST(mark(x0), 0), MARK(x0)) MARK(first(x0, nil)) -> c5(A__FIRST(mark(x0), nil), MARK(x0)) MARK(first(x0, s(z0))) -> c5(A__FIRST(mark(x0), s(mark(z0))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c5(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(first(z0, z1), x1)) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(from(z0), x1)) -> c5(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(first(0, x1)) -> c5(A__FIRST(0, mark(x1)), MARK(0)) MARK(first(nil, x1)) -> c5(A__FIRST(nil, mark(x1)), MARK(nil)) MARK(first(s(z0), x1)) -> c5(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c5(A__FIRST(cons(mark(z0), z1), mark(x1)), MARK(cons(z0, z1))) K tuples:none Defined Rule Symbols: a__first_2, a__from_1, mark_1 Defined Pair Symbols: A__FIRST_2, A__FROM_1, MARK_1 Compound Symbols: c1_1, c3_1, c6_2, c7_2, c10_1, c11_1, c5_2 ---------------------------------------- (65) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing nodes: MARK(first(0, x1)) -> c5(A__FIRST(0, mark(x1)), MARK(0)) MARK(first(nil, x1)) -> c5(A__FIRST(nil, mark(x1)), MARK(nil)) ---------------------------------------- (66) Obligation: Complexity Dependency Tuples Problem Rules: a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(0) -> 0 mark(nil) -> nil mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) MARK(first(z0, z1)) -> c6(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(x0, first(z0, z1))) -> c5(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, from(z0))) -> c5(A__FIRST(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(first(x0, 0)) -> c5(A__FIRST(mark(x0), 0), MARK(x0)) MARK(first(x0, nil)) -> c5(A__FIRST(mark(x0), nil), MARK(x0)) MARK(first(x0, s(z0))) -> c5(A__FIRST(mark(x0), s(mark(z0))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c5(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(first(z0, z1), x1)) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(from(z0), x1)) -> c5(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(first(s(z0), x1)) -> c5(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c5(A__FIRST(cons(mark(z0), z1), mark(x1)), MARK(cons(z0, z1))) S tuples: A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) MARK(first(z0, z1)) -> c6(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(x0, first(z0, z1))) -> c5(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, from(z0))) -> c5(A__FIRST(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(first(x0, 0)) -> c5(A__FIRST(mark(x0), 0), MARK(x0)) MARK(first(x0, nil)) -> c5(A__FIRST(mark(x0), nil), MARK(x0)) MARK(first(x0, s(z0))) -> c5(A__FIRST(mark(x0), s(mark(z0))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c5(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(first(z0, z1), x1)) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(from(z0), x1)) -> c5(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(first(s(z0), x1)) -> c5(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c5(A__FIRST(cons(mark(z0), z1), mark(x1)), MARK(cons(z0, z1))) K tuples:none Defined Rule Symbols: a__first_2, a__from_1, mark_1 Defined Pair Symbols: A__FIRST_2, A__FROM_1, MARK_1 Compound Symbols: c1_1, c3_1, c6_2, c7_2, c10_1, c11_1, c5_2 ---------------------------------------- (67) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (68) Obligation: Complexity Dependency Tuples Problem Rules: a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(0) -> 0 mark(nil) -> nil mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) MARK(first(z0, z1)) -> c6(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(x0, first(z0, z1))) -> c5(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, from(z0))) -> c5(A__FIRST(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c5(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(first(z0, z1), x1)) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(from(z0), x1)) -> c5(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(first(s(z0), x1)) -> c5(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) S tuples: A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) MARK(first(z0, z1)) -> c6(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(x0, first(z0, z1))) -> c5(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, from(z0))) -> c5(A__FIRST(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c5(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(first(z0, z1), x1)) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(from(z0), x1)) -> c5(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(first(s(z0), x1)) -> c5(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) K tuples:none Defined Rule Symbols: a__first_2, a__from_1, mark_1 Defined Pair Symbols: A__FIRST_2, A__FROM_1, MARK_1 Compound Symbols: c1_1, c3_1, c6_2, c7_2, c10_1, c11_1, c5_2, c5_1 ---------------------------------------- (69) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(first(z0, z1)) -> c6(A__FIRST(mark(z0), mark(z1)), MARK(z1)) by MARK(first(x0, first(z0, z1))) -> c6(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, from(z0))) -> c6(A__FIRST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(first(x0, 0)) -> c6(A__FIRST(mark(x0), 0), MARK(0)) MARK(first(x0, nil)) -> c6(A__FIRST(mark(x0), nil), MARK(nil)) MARK(first(x0, s(z0))) -> c6(A__FIRST(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(first(x0, cons(z0, z1))) -> c6(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(first(z0, z1), x1)) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(from(z0), x1)) -> c6(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(first(0, x1)) -> c6(A__FIRST(0, mark(x1)), MARK(x1)) MARK(first(nil, x1)) -> c6(A__FIRST(nil, mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c6(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(A__FIRST(cons(mark(z0), z1), mark(x1)), MARK(x1)) ---------------------------------------- (70) Obligation: Complexity Dependency Tuples Problem Rules: a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(0) -> 0 mark(nil) -> nil mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(x0, first(z0, z1))) -> c5(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, from(z0))) -> c5(A__FIRST(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c5(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(first(z0, z1), x1)) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(from(z0), x1)) -> c5(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(first(s(z0), x1)) -> c5(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(x0, first(z0, z1))) -> c6(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, from(z0))) -> c6(A__FIRST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(first(x0, 0)) -> c6(A__FIRST(mark(x0), 0), MARK(0)) MARK(first(x0, nil)) -> c6(A__FIRST(mark(x0), nil), MARK(nil)) MARK(first(x0, s(z0))) -> c6(A__FIRST(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(first(x0, cons(z0, z1))) -> c6(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(first(z0, z1), x1)) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(from(z0), x1)) -> c6(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(first(0, x1)) -> c6(A__FIRST(0, mark(x1)), MARK(x1)) MARK(first(nil, x1)) -> c6(A__FIRST(nil, mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c6(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(A__FIRST(cons(mark(z0), z1), mark(x1)), MARK(x1)) S tuples: A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(x0, first(z0, z1))) -> c5(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, from(z0))) -> c5(A__FIRST(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c5(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(first(z0, z1), x1)) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(from(z0), x1)) -> c5(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(first(s(z0), x1)) -> c5(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(x0, first(z0, z1))) -> c6(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, from(z0))) -> c6(A__FIRST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(first(x0, 0)) -> c6(A__FIRST(mark(x0), 0), MARK(0)) MARK(first(x0, nil)) -> c6(A__FIRST(mark(x0), nil), MARK(nil)) MARK(first(x0, s(z0))) -> c6(A__FIRST(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(first(x0, cons(z0, z1))) -> c6(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(first(z0, z1), x1)) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(from(z0), x1)) -> c6(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(first(0, x1)) -> c6(A__FIRST(0, mark(x1)), MARK(x1)) MARK(first(nil, x1)) -> c6(A__FIRST(nil, mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c6(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(A__FIRST(cons(mark(z0), z1), mark(x1)), MARK(x1)) K tuples:none Defined Rule Symbols: a__first_2, a__from_1, mark_1 Defined Pair Symbols: A__FIRST_2, A__FROM_1, MARK_1 Compound Symbols: c1_1, c3_1, c7_2, c10_1, c11_1, c5_2, c5_1, c6_2 ---------------------------------------- (71) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing nodes: MARK(first(x0, nil)) -> c6(A__FIRST(mark(x0), nil), MARK(nil)) MARK(first(x0, 0)) -> c6(A__FIRST(mark(x0), 0), MARK(0)) ---------------------------------------- (72) Obligation: Complexity Dependency Tuples Problem Rules: a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(0) -> 0 mark(nil) -> nil mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(x0, first(z0, z1))) -> c5(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, from(z0))) -> c5(A__FIRST(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c5(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(first(z0, z1), x1)) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(from(z0), x1)) -> c5(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(first(s(z0), x1)) -> c5(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(x0, first(z0, z1))) -> c6(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, from(z0))) -> c6(A__FIRST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(first(x0, s(z0))) -> c6(A__FIRST(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(first(x0, cons(z0, z1))) -> c6(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(first(z0, z1), x1)) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(from(z0), x1)) -> c6(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(first(0, x1)) -> c6(A__FIRST(0, mark(x1)), MARK(x1)) MARK(first(nil, x1)) -> c6(A__FIRST(nil, mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c6(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(A__FIRST(cons(mark(z0), z1), mark(x1)), MARK(x1)) S tuples: A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(x0, first(z0, z1))) -> c5(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, from(z0))) -> c5(A__FIRST(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c5(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(first(z0, z1), x1)) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(from(z0), x1)) -> c5(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(first(s(z0), x1)) -> c5(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(x0, first(z0, z1))) -> c6(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, from(z0))) -> c6(A__FIRST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(first(x0, s(z0))) -> c6(A__FIRST(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(first(x0, cons(z0, z1))) -> c6(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(first(z0, z1), x1)) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(from(z0), x1)) -> c6(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(first(0, x1)) -> c6(A__FIRST(0, mark(x1)), MARK(x1)) MARK(first(nil, x1)) -> c6(A__FIRST(nil, mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c6(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(A__FIRST(cons(mark(z0), z1), mark(x1)), MARK(x1)) K tuples:none Defined Rule Symbols: a__first_2, a__from_1, mark_1 Defined Pair Symbols: A__FIRST_2, A__FROM_1, MARK_1 Compound Symbols: c1_1, c3_1, c7_2, c10_1, c11_1, c5_2, c5_1, c6_2 ---------------------------------------- (73) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (74) Obligation: Complexity Dependency Tuples Problem Rules: a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(0) -> 0 mark(nil) -> nil mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(x0, first(z0, z1))) -> c5(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, from(z0))) -> c5(A__FIRST(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c5(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(first(z0, z1), x1)) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(from(z0), x1)) -> c5(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(first(s(z0), x1)) -> c5(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(x0, first(z0, z1))) -> c6(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, from(z0))) -> c6(A__FIRST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(first(x0, cons(z0, z1))) -> c6(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(first(z0, z1), x1)) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(from(z0), x1)) -> c6(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c6(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) S tuples: A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(x0, first(z0, z1))) -> c5(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, from(z0))) -> c5(A__FIRST(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c5(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(first(z0, z1), x1)) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(from(z0), x1)) -> c5(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(first(s(z0), x1)) -> c5(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(x0, first(z0, z1))) -> c6(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, from(z0))) -> c6(A__FIRST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(first(x0, cons(z0, z1))) -> c6(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(first(z0, z1), x1)) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(from(z0), x1)) -> c6(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c6(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) K tuples:none Defined Rule Symbols: a__first_2, a__from_1, mark_1 Defined Pair Symbols: A__FIRST_2, A__FROM_1, MARK_1 Compound Symbols: c1_1, c3_1, c7_2, c10_1, c11_1, c5_2, c5_1, c6_2, c6_1 ---------------------------------------- (75) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(first(x0, first(z0, z1))) -> c5(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) by MARK(first(x0, first(x1, x2))) -> c5(A__FIRST(mark(x0), first(mark(x1), mark(x2))), MARK(x0)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(0, first(x1, x2))) -> c5(A__FIRST(0, a__first(mark(x1), mark(x2))), MARK(0)) MARK(first(nil, first(x1, x2))) -> c5(A__FIRST(nil, a__first(mark(x1), mark(x2))), MARK(nil)) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(A__FIRST(cons(mark(z0), z1), a__first(mark(x1), mark(x2))), MARK(cons(z0, z1))) ---------------------------------------- (76) Obligation: Complexity Dependency Tuples Problem Rules: a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(0) -> 0 mark(nil) -> nil mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(x0, from(z0))) -> c5(A__FIRST(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c5(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(first(z0, z1), x1)) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(from(z0), x1)) -> c5(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(first(s(z0), x1)) -> c5(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(x0, first(z0, z1))) -> c6(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, from(z0))) -> c6(A__FIRST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(first(x0, cons(z0, z1))) -> c6(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(first(z0, z1), x1)) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(from(z0), x1)) -> c6(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c6(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, x2))) -> c5(A__FIRST(mark(x0), first(mark(x1), mark(x2))), MARK(x0)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(0, first(x1, x2))) -> c5(A__FIRST(0, a__first(mark(x1), mark(x2))), MARK(0)) MARK(first(nil, first(x1, x2))) -> c5(A__FIRST(nil, a__first(mark(x1), mark(x2))), MARK(nil)) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(A__FIRST(cons(mark(z0), z1), a__first(mark(x1), mark(x2))), MARK(cons(z0, z1))) S tuples: A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(x0, from(z0))) -> c5(A__FIRST(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c5(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(first(z0, z1), x1)) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(from(z0), x1)) -> c5(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(first(s(z0), x1)) -> c5(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(x0, first(z0, z1))) -> c6(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, from(z0))) -> c6(A__FIRST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(first(x0, cons(z0, z1))) -> c6(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(first(z0, z1), x1)) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(from(z0), x1)) -> c6(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c6(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, x2))) -> c5(A__FIRST(mark(x0), first(mark(x1), mark(x2))), MARK(x0)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(0, first(x1, x2))) -> c5(A__FIRST(0, a__first(mark(x1), mark(x2))), MARK(0)) MARK(first(nil, first(x1, x2))) -> c5(A__FIRST(nil, a__first(mark(x1), mark(x2))), MARK(nil)) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(A__FIRST(cons(mark(z0), z1), a__first(mark(x1), mark(x2))), MARK(cons(z0, z1))) K tuples:none Defined Rule Symbols: a__first_2, a__from_1, mark_1 Defined Pair Symbols: A__FIRST_2, A__FROM_1, MARK_1 Compound Symbols: c1_1, c3_1, c7_2, c10_1, c11_1, c5_2, c5_1, c6_2, c6_1 ---------------------------------------- (77) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing nodes: MARK(first(0, first(x1, x2))) -> c5(A__FIRST(0, a__first(mark(x1), mark(x2))), MARK(0)) MARK(first(nil, first(x1, x2))) -> c5(A__FIRST(nil, a__first(mark(x1), mark(x2))), MARK(nil)) ---------------------------------------- (78) Obligation: Complexity Dependency Tuples Problem Rules: a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(0) -> 0 mark(nil) -> nil mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(x0, from(z0))) -> c5(A__FIRST(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c5(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(first(z0, z1), x1)) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(from(z0), x1)) -> c5(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(first(s(z0), x1)) -> c5(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(x0, first(z0, z1))) -> c6(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, from(z0))) -> c6(A__FIRST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(first(x0, cons(z0, z1))) -> c6(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(first(z0, z1), x1)) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(from(z0), x1)) -> c6(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c6(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, x2))) -> c5(A__FIRST(mark(x0), first(mark(x1), mark(x2))), MARK(x0)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(A__FIRST(cons(mark(z0), z1), a__first(mark(x1), mark(x2))), MARK(cons(z0, z1))) S tuples: A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(x0, from(z0))) -> c5(A__FIRST(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c5(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(first(z0, z1), x1)) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(from(z0), x1)) -> c5(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(first(s(z0), x1)) -> c5(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(x0, first(z0, z1))) -> c6(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, from(z0))) -> c6(A__FIRST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(first(x0, cons(z0, z1))) -> c6(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(first(z0, z1), x1)) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(from(z0), x1)) -> c6(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c6(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, x2))) -> c5(A__FIRST(mark(x0), first(mark(x1), mark(x2))), MARK(x0)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(A__FIRST(cons(mark(z0), z1), a__first(mark(x1), mark(x2))), MARK(cons(z0, z1))) K tuples:none Defined Rule Symbols: a__first_2, a__from_1, mark_1 Defined Pair Symbols: A__FIRST_2, A__FROM_1, MARK_1 Compound Symbols: c1_1, c3_1, c7_2, c10_1, c11_1, c5_2, c5_1, c6_2, c6_1 ---------------------------------------- (79) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (80) Obligation: Complexity Dependency Tuples Problem Rules: a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(0) -> 0 mark(nil) -> nil mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(x0, from(z0))) -> c5(A__FIRST(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c5(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(first(z0, z1), x1)) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(from(z0), x1)) -> c5(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(first(s(z0), x1)) -> c5(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(x0, first(z0, z1))) -> c6(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, from(z0))) -> c6(A__FIRST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(first(x0, cons(z0, z1))) -> c6(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(first(z0, z1), x1)) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(from(z0), x1)) -> c6(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c6(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) S tuples: A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(x0, from(z0))) -> c5(A__FIRST(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c5(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(first(z0, z1), x1)) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(from(z0), x1)) -> c5(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(first(s(z0), x1)) -> c5(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(x0, first(z0, z1))) -> c6(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, from(z0))) -> c6(A__FIRST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(first(x0, cons(z0, z1))) -> c6(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(first(z0, z1), x1)) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(from(z0), x1)) -> c6(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c6(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) K tuples:none Defined Rule Symbols: a__first_2, a__from_1, mark_1 Defined Pair Symbols: A__FIRST_2, A__FROM_1, MARK_1 Compound Symbols: c1_1, c3_1, c7_2, c10_1, c11_1, c5_2, c5_1, c6_2, c6_1 ---------------------------------------- (81) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(first(x0, from(z0))) -> c5(A__FIRST(mark(x0), a__from(mark(z0))), MARK(x0)) by MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), from(mark(x1))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(0, from(x1))) -> c5(A__FIRST(0, a__from(mark(x1))), MARK(0)) MARK(first(nil, from(x1))) -> c5(A__FIRST(nil, a__from(mark(x1))), MARK(nil)) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(cons(z0, z1), from(x1))) -> c5(A__FIRST(cons(mark(z0), z1), a__from(mark(x1))), MARK(cons(z0, z1))) ---------------------------------------- (82) Obligation: Complexity Dependency Tuples Problem Rules: a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(0) -> 0 mark(nil) -> nil mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(x0, cons(z0, z1))) -> c5(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(first(z0, z1), x1)) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(from(z0), x1)) -> c5(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(first(s(z0), x1)) -> c5(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(x0, first(z0, z1))) -> c6(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, from(z0))) -> c6(A__FIRST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(first(x0, cons(z0, z1))) -> c6(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(first(z0, z1), x1)) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(from(z0), x1)) -> c6(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c6(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), from(mark(x1))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(0, from(x1))) -> c5(A__FIRST(0, a__from(mark(x1))), MARK(0)) MARK(first(nil, from(x1))) -> c5(A__FIRST(nil, a__from(mark(x1))), MARK(nil)) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(cons(z0, z1), from(x1))) -> c5(A__FIRST(cons(mark(z0), z1), a__from(mark(x1))), MARK(cons(z0, z1))) S tuples: A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(x0, cons(z0, z1))) -> c5(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(first(z0, z1), x1)) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(from(z0), x1)) -> c5(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(first(s(z0), x1)) -> c5(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(x0, first(z0, z1))) -> c6(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, from(z0))) -> c6(A__FIRST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(first(x0, cons(z0, z1))) -> c6(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(first(z0, z1), x1)) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(from(z0), x1)) -> c6(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c6(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), from(mark(x1))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(0, from(x1))) -> c5(A__FIRST(0, a__from(mark(x1))), MARK(0)) MARK(first(nil, from(x1))) -> c5(A__FIRST(nil, a__from(mark(x1))), MARK(nil)) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(cons(z0, z1), from(x1))) -> c5(A__FIRST(cons(mark(z0), z1), a__from(mark(x1))), MARK(cons(z0, z1))) K tuples:none Defined Rule Symbols: a__first_2, a__from_1, mark_1 Defined Pair Symbols: A__FIRST_2, A__FROM_1, MARK_1 Compound Symbols: c1_1, c3_1, c7_2, c10_1, c11_1, c5_2, c5_1, c6_2, c6_1 ---------------------------------------- (83) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing nodes: MARK(first(nil, from(x1))) -> c5(A__FIRST(nil, a__from(mark(x1))), MARK(nil)) MARK(first(0, from(x1))) -> c5(A__FIRST(0, a__from(mark(x1))), MARK(0)) ---------------------------------------- (84) Obligation: Complexity Dependency Tuples Problem Rules: a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(0) -> 0 mark(nil) -> nil mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(x0, cons(z0, z1))) -> c5(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(first(z0, z1), x1)) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(from(z0), x1)) -> c5(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(first(s(z0), x1)) -> c5(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(x0, first(z0, z1))) -> c6(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, from(z0))) -> c6(A__FIRST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(first(x0, cons(z0, z1))) -> c6(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(first(z0, z1), x1)) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(from(z0), x1)) -> c6(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c6(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), from(mark(x1))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(cons(z0, z1), from(x1))) -> c5(A__FIRST(cons(mark(z0), z1), a__from(mark(x1))), MARK(cons(z0, z1))) S tuples: A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(x0, cons(z0, z1))) -> c5(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(first(z0, z1), x1)) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(from(z0), x1)) -> c5(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(first(s(z0), x1)) -> c5(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(x0, first(z0, z1))) -> c6(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, from(z0))) -> c6(A__FIRST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(first(x0, cons(z0, z1))) -> c6(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(first(z0, z1), x1)) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(from(z0), x1)) -> c6(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c6(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), from(mark(x1))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(cons(z0, z1), from(x1))) -> c5(A__FIRST(cons(mark(z0), z1), a__from(mark(x1))), MARK(cons(z0, z1))) K tuples:none Defined Rule Symbols: a__first_2, a__from_1, mark_1 Defined Pair Symbols: A__FIRST_2, A__FROM_1, MARK_1 Compound Symbols: c1_1, c3_1, c7_2, c10_1, c11_1, c5_2, c5_1, c6_2, c6_1 ---------------------------------------- (85) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (86) Obligation: Complexity Dependency Tuples Problem Rules: a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(0) -> 0 mark(nil) -> nil mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(x0, cons(z0, z1))) -> c5(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(first(z0, z1), x1)) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(from(z0), x1)) -> c5(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(first(s(z0), x1)) -> c5(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(x0, first(z0, z1))) -> c6(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, from(z0))) -> c6(A__FIRST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(first(x0, cons(z0, z1))) -> c6(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(first(z0, z1), x1)) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(from(z0), x1)) -> c6(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c6(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(x0, from(x1))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), from(x1))) -> c5(MARK(cons(z0, z1))) S tuples: A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(x0, cons(z0, z1))) -> c5(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(first(z0, z1), x1)) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(from(z0), x1)) -> c5(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(first(s(z0), x1)) -> c5(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(x0, first(z0, z1))) -> c6(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, from(z0))) -> c6(A__FIRST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(first(x0, cons(z0, z1))) -> c6(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(first(z0, z1), x1)) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(from(z0), x1)) -> c6(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c6(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(x0, from(x1))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), from(x1))) -> c5(MARK(cons(z0, z1))) K tuples:none Defined Rule Symbols: a__first_2, a__from_1, mark_1 Defined Pair Symbols: A__FIRST_2, A__FROM_1, MARK_1 Compound Symbols: c1_1, c3_1, c7_2, c10_1, c11_1, c5_2, c5_1, c6_2, c6_1 ---------------------------------------- (87) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(first(x0, cons(z0, z1))) -> c5(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) by MARK(first(x0, cons(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(first(x0, cons(from(z0), x2))) -> c5(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(0, x2))) -> c5(A__FIRST(mark(x0), cons(0, x2)), MARK(x0)) MARK(first(x0, cons(nil, x2))) -> c5(A__FIRST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(first(x0, cons(s(z0), x2))) -> c5(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(first(first(z0, z1), cons(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(first(z0, z1))) MARK(first(from(z0), cons(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(first(0, cons(x1, x2))) -> c5(A__FIRST(0, cons(mark(x1), x2)), MARK(0)) MARK(first(nil, cons(x1, x2))) -> c5(A__FIRST(nil, cons(mark(x1), x2)), MARK(nil)) MARK(first(s(z0), cons(x1, x2))) -> c5(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(s(z0))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c5(A__FIRST(cons(mark(z0), z1), cons(mark(x1), x2)), MARK(cons(z0, z1))) ---------------------------------------- (88) Obligation: Complexity Dependency Tuples Problem Rules: a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(0) -> 0 mark(nil) -> nil mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(first(z0, z1), x1)) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(from(z0), x1)) -> c5(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(first(s(z0), x1)) -> c5(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(x0, first(z0, z1))) -> c6(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, from(z0))) -> c6(A__FIRST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(first(x0, cons(z0, z1))) -> c6(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(first(z0, z1), x1)) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(from(z0), x1)) -> c6(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c6(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(x0, from(x1))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), from(x1))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(first(x0, cons(from(z0), x2))) -> c5(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(0, x2))) -> c5(A__FIRST(mark(x0), cons(0, x2)), MARK(x0)) MARK(first(x0, cons(nil, x2))) -> c5(A__FIRST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(first(x0, cons(s(z0), x2))) -> c5(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(first(first(z0, z1), cons(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(first(z0, z1))) MARK(first(from(z0), cons(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(first(0, cons(x1, x2))) -> c5(A__FIRST(0, cons(mark(x1), x2)), MARK(0)) MARK(first(nil, cons(x1, x2))) -> c5(A__FIRST(nil, cons(mark(x1), x2)), MARK(nil)) MARK(first(s(z0), cons(x1, x2))) -> c5(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(s(z0))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c5(A__FIRST(cons(mark(z0), z1), cons(mark(x1), x2)), MARK(cons(z0, z1))) S tuples: A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(first(z0, z1), x1)) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(from(z0), x1)) -> c5(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(first(s(z0), x1)) -> c5(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(x0, first(z0, z1))) -> c6(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, from(z0))) -> c6(A__FIRST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(first(x0, cons(z0, z1))) -> c6(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(first(z0, z1), x1)) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(from(z0), x1)) -> c6(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c6(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(x0, from(x1))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), from(x1))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(first(x0, cons(from(z0), x2))) -> c5(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(0, x2))) -> c5(A__FIRST(mark(x0), cons(0, x2)), MARK(x0)) MARK(first(x0, cons(nil, x2))) -> c5(A__FIRST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(first(x0, cons(s(z0), x2))) -> c5(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(first(first(z0, z1), cons(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(first(z0, z1))) MARK(first(from(z0), cons(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(first(0, cons(x1, x2))) -> c5(A__FIRST(0, cons(mark(x1), x2)), MARK(0)) MARK(first(nil, cons(x1, x2))) -> c5(A__FIRST(nil, cons(mark(x1), x2)), MARK(nil)) MARK(first(s(z0), cons(x1, x2))) -> c5(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(s(z0))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c5(A__FIRST(cons(mark(z0), z1), cons(mark(x1), x2)), MARK(cons(z0, z1))) K tuples:none Defined Rule Symbols: a__first_2, a__from_1, mark_1 Defined Pair Symbols: A__FIRST_2, A__FROM_1, MARK_1 Compound Symbols: c1_1, c3_1, c7_2, c10_1, c11_1, c5_2, c5_1, c6_2, c6_1 ---------------------------------------- (89) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing nodes: MARK(first(0, cons(x1, x2))) -> c5(A__FIRST(0, cons(mark(x1), x2)), MARK(0)) MARK(first(nil, cons(x1, x2))) -> c5(A__FIRST(nil, cons(mark(x1), x2)), MARK(nil)) ---------------------------------------- (90) Obligation: Complexity Dependency Tuples Problem Rules: a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(0) -> 0 mark(nil) -> nil mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(first(z0, z1), x1)) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(from(z0), x1)) -> c5(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(first(s(z0), x1)) -> c5(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(x0, first(z0, z1))) -> c6(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, from(z0))) -> c6(A__FIRST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(first(x0, cons(z0, z1))) -> c6(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(first(z0, z1), x1)) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(from(z0), x1)) -> c6(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c6(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(x0, from(x1))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), from(x1))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(first(x0, cons(from(z0), x2))) -> c5(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(0, x2))) -> c5(A__FIRST(mark(x0), cons(0, x2)), MARK(x0)) MARK(first(x0, cons(nil, x2))) -> c5(A__FIRST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(first(x0, cons(s(z0), x2))) -> c5(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(first(first(z0, z1), cons(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(first(z0, z1))) MARK(first(from(z0), cons(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(first(s(z0), cons(x1, x2))) -> c5(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(s(z0))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c5(A__FIRST(cons(mark(z0), z1), cons(mark(x1), x2)), MARK(cons(z0, z1))) S tuples: A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(first(z0, z1), x1)) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(from(z0), x1)) -> c5(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(first(s(z0), x1)) -> c5(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(x0, first(z0, z1))) -> c6(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, from(z0))) -> c6(A__FIRST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(first(x0, cons(z0, z1))) -> c6(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(first(z0, z1), x1)) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(from(z0), x1)) -> c6(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c6(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(x0, from(x1))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), from(x1))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(first(x0, cons(from(z0), x2))) -> c5(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(0, x2))) -> c5(A__FIRST(mark(x0), cons(0, x2)), MARK(x0)) MARK(first(x0, cons(nil, x2))) -> c5(A__FIRST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(first(x0, cons(s(z0), x2))) -> c5(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(first(first(z0, z1), cons(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(first(z0, z1))) MARK(first(from(z0), cons(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(first(s(z0), cons(x1, x2))) -> c5(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(s(z0))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c5(A__FIRST(cons(mark(z0), z1), cons(mark(x1), x2)), MARK(cons(z0, z1))) K tuples:none Defined Rule Symbols: a__first_2, a__from_1, mark_1 Defined Pair Symbols: A__FIRST_2, A__FROM_1, MARK_1 Compound Symbols: c1_1, c3_1, c7_2, c10_1, c11_1, c5_2, c5_1, c6_2, c6_1 ---------------------------------------- (91) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (92) Obligation: Complexity Dependency Tuples Problem Rules: a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(0) -> 0 mark(nil) -> nil mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(first(z0, z1), x1)) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(from(z0), x1)) -> c5(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(first(s(z0), x1)) -> c5(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(x0, first(z0, z1))) -> c6(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, from(z0))) -> c6(A__FIRST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(first(x0, cons(z0, z1))) -> c6(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(first(z0, z1), x1)) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(from(z0), x1)) -> c6(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c6(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(x0, from(x1))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), from(x1))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(first(x0, cons(from(z0), x2))) -> c5(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(0, x2))) -> c5(A__FIRST(mark(x0), cons(0, x2)), MARK(x0)) MARK(first(x0, cons(nil, x2))) -> c5(A__FIRST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(first(x0, cons(s(z0), x2))) -> c5(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(first(first(z0, z1), cons(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(first(z0, z1))) MARK(first(from(z0), cons(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(first(s(z0), cons(x1, x2))) -> c5(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(s(z0))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c5(MARK(cons(z0, z1))) S tuples: A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(first(z0, z1), x1)) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(from(z0), x1)) -> c5(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(first(s(z0), x1)) -> c5(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(x0, first(z0, z1))) -> c6(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, from(z0))) -> c6(A__FIRST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(first(x0, cons(z0, z1))) -> c6(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(first(z0, z1), x1)) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(from(z0), x1)) -> c6(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c6(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(x0, from(x1))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), from(x1))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(first(x0, cons(from(z0), x2))) -> c5(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(0, x2))) -> c5(A__FIRST(mark(x0), cons(0, x2)), MARK(x0)) MARK(first(x0, cons(nil, x2))) -> c5(A__FIRST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(first(x0, cons(s(z0), x2))) -> c5(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(first(first(z0, z1), cons(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(first(z0, z1))) MARK(first(from(z0), cons(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(first(s(z0), cons(x1, x2))) -> c5(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(s(z0))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c5(MARK(cons(z0, z1))) K tuples:none Defined Rule Symbols: a__first_2, a__from_1, mark_1 Defined Pair Symbols: A__FIRST_2, A__FROM_1, MARK_1 Compound Symbols: c1_1, c3_1, c7_2, c10_1, c11_1, c5_2, c5_1, c6_2, c6_1 ---------------------------------------- (93) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(first(first(z0, z1), x1)) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) by MARK(first(first(x0, x1), first(z0, z1))) -> c5(A__FIRST(a__first(mark(x0), mark(x1)), a__first(mark(z0), mark(z1))), MARK(first(x0, x1))) MARK(first(first(x0, x1), from(z0))) -> c5(A__FIRST(a__first(mark(x0), mark(x1)), a__from(mark(z0))), MARK(first(x0, x1))) MARK(first(first(x0, x1), 0)) -> c5(A__FIRST(a__first(mark(x0), mark(x1)), 0), MARK(first(x0, x1))) MARK(first(first(x0, x1), nil)) -> c5(A__FIRST(a__first(mark(x0), mark(x1)), nil), MARK(first(x0, x1))) MARK(first(first(x0, x1), s(z0))) -> c5(A__FIRST(a__first(mark(x0), mark(x1)), s(mark(z0))), MARK(first(x0, x1))) MARK(first(first(x0, x1), cons(z0, z1))) -> c5(A__FIRST(a__first(mark(x0), mark(x1)), cons(mark(z0), z1)), MARK(first(x0, x1))) MARK(first(first(x0, x1), x2)) -> c5(A__FIRST(first(mark(x0), mark(x1)), mark(x2)), MARK(first(x0, x1))) MARK(first(first(x0, first(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(first(x0, first(z0, z1)))) MARK(first(first(x0, from(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(first(x0, from(z0)))) MARK(first(first(x0, 0), x2)) -> c5(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(first(x0, 0))) MARK(first(first(x0, nil), x2)) -> c5(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(first(x0, nil))) MARK(first(first(x0, s(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(first(x0, s(z0)))) MARK(first(first(x0, cons(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(first(x0, cons(z0, z1)))) MARK(first(first(first(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(first(first(z0, z1), x1))) MARK(first(first(from(z0), x1), x2)) -> c5(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(first(from(z0), x1))) MARK(first(first(0, x1), x2)) -> c5(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(first(0, x1))) MARK(first(first(nil, x1), x2)) -> c5(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(first(nil, x1))) MARK(first(first(s(z0), x1), x2)) -> c5(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(first(s(z0), x1))) MARK(first(first(cons(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(first(cons(z0, z1), x1))) ---------------------------------------- (94) Obligation: Complexity Dependency Tuples Problem Rules: a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(0) -> 0 mark(nil) -> nil mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(from(z0), x1)) -> c5(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(first(s(z0), x1)) -> c5(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(x0, first(z0, z1))) -> c6(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, from(z0))) -> c6(A__FIRST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(first(x0, cons(z0, z1))) -> c6(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(first(z0, z1), x1)) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(from(z0), x1)) -> c6(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c6(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(x0, from(x1))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), from(x1))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(first(x0, cons(from(z0), x2))) -> c5(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(0, x2))) -> c5(A__FIRST(mark(x0), cons(0, x2)), MARK(x0)) MARK(first(x0, cons(nil, x2))) -> c5(A__FIRST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(first(x0, cons(s(z0), x2))) -> c5(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(first(first(z0, z1), cons(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(first(z0, z1))) MARK(first(from(z0), cons(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(first(s(z0), cons(x1, x2))) -> c5(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(s(z0))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(first(x0, x1), 0)) -> c5(A__FIRST(a__first(mark(x0), mark(x1)), 0), MARK(first(x0, x1))) MARK(first(first(x0, x1), nil)) -> c5(A__FIRST(a__first(mark(x0), mark(x1)), nil), MARK(first(x0, x1))) MARK(first(first(x0, x1), s(z0))) -> c5(A__FIRST(a__first(mark(x0), mark(x1)), s(mark(z0))), MARK(first(x0, x1))) MARK(first(first(x0, x1), x2)) -> c5(A__FIRST(first(mark(x0), mark(x1)), mark(x2)), MARK(first(x0, x1))) MARK(first(first(x0, first(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(first(x0, first(z0, z1)))) MARK(first(first(x0, from(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(first(x0, from(z0)))) MARK(first(first(x0, 0), x2)) -> c5(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(first(x0, 0))) MARK(first(first(x0, nil), x2)) -> c5(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(first(x0, nil))) MARK(first(first(x0, s(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(first(x0, s(z0)))) MARK(first(first(x0, cons(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(first(x0, cons(z0, z1)))) MARK(first(first(first(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(first(first(z0, z1), x1))) MARK(first(first(from(z0), x1), x2)) -> c5(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(first(from(z0), x1))) MARK(first(first(0, x1), x2)) -> c5(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(first(0, x1))) MARK(first(first(nil, x1), x2)) -> c5(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(first(nil, x1))) MARK(first(first(s(z0), x1), x2)) -> c5(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(first(s(z0), x1))) MARK(first(first(cons(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(first(cons(z0, z1), x1))) S tuples: A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(from(z0), x1)) -> c5(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(first(s(z0), x1)) -> c5(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(x0, first(z0, z1))) -> c6(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, from(z0))) -> c6(A__FIRST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(first(x0, cons(z0, z1))) -> c6(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(first(z0, z1), x1)) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(from(z0), x1)) -> c6(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c6(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(x0, from(x1))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), from(x1))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(first(x0, cons(from(z0), x2))) -> c5(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(0, x2))) -> c5(A__FIRST(mark(x0), cons(0, x2)), MARK(x0)) MARK(first(x0, cons(nil, x2))) -> c5(A__FIRST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(first(x0, cons(s(z0), x2))) -> c5(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(first(first(z0, z1), cons(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(first(z0, z1))) MARK(first(from(z0), cons(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(first(s(z0), cons(x1, x2))) -> c5(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(s(z0))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(first(x0, x1), 0)) -> c5(A__FIRST(a__first(mark(x0), mark(x1)), 0), MARK(first(x0, x1))) MARK(first(first(x0, x1), nil)) -> c5(A__FIRST(a__first(mark(x0), mark(x1)), nil), MARK(first(x0, x1))) MARK(first(first(x0, x1), s(z0))) -> c5(A__FIRST(a__first(mark(x0), mark(x1)), s(mark(z0))), MARK(first(x0, x1))) MARK(first(first(x0, x1), x2)) -> c5(A__FIRST(first(mark(x0), mark(x1)), mark(x2)), MARK(first(x0, x1))) MARK(first(first(x0, first(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(first(x0, first(z0, z1)))) MARK(first(first(x0, from(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(first(x0, from(z0)))) MARK(first(first(x0, 0), x2)) -> c5(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(first(x0, 0))) MARK(first(first(x0, nil), x2)) -> c5(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(first(x0, nil))) MARK(first(first(x0, s(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(first(x0, s(z0)))) MARK(first(first(x0, cons(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(first(x0, cons(z0, z1)))) MARK(first(first(first(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(first(first(z0, z1), x1))) MARK(first(first(from(z0), x1), x2)) -> c5(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(first(from(z0), x1))) MARK(first(first(0, x1), x2)) -> c5(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(first(0, x1))) MARK(first(first(nil, x1), x2)) -> c5(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(first(nil, x1))) MARK(first(first(s(z0), x1), x2)) -> c5(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(first(s(z0), x1))) MARK(first(first(cons(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(first(cons(z0, z1), x1))) K tuples:none Defined Rule Symbols: a__first_2, a__from_1, mark_1 Defined Pair Symbols: A__FIRST_2, A__FROM_1, MARK_1 Compound Symbols: c1_1, c3_1, c7_2, c10_1, c11_1, c5_2, c5_1, c6_2, c6_1 ---------------------------------------- (95) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (96) Obligation: Complexity Dependency Tuples Problem Rules: a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(0) -> 0 mark(nil) -> nil mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(from(z0), x1)) -> c5(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(first(s(z0), x1)) -> c5(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(x0, first(z0, z1))) -> c6(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, from(z0))) -> c6(A__FIRST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(first(x0, cons(z0, z1))) -> c6(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(first(z0, z1), x1)) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(from(z0), x1)) -> c6(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c6(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(x0, from(x1))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), from(x1))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(first(x0, cons(from(z0), x2))) -> c5(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(0, x2))) -> c5(A__FIRST(mark(x0), cons(0, x2)), MARK(x0)) MARK(first(x0, cons(nil, x2))) -> c5(A__FIRST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(first(x0, cons(s(z0), x2))) -> c5(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(first(first(z0, z1), cons(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(first(z0, z1))) MARK(first(from(z0), cons(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(first(s(z0), cons(x1, x2))) -> c5(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(s(z0))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(first(x0, first(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(first(x0, first(z0, z1)))) MARK(first(first(x0, from(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(first(x0, from(z0)))) MARK(first(first(x0, 0), x2)) -> c5(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(first(x0, 0))) MARK(first(first(x0, nil), x2)) -> c5(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(first(x0, nil))) MARK(first(first(x0, s(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(first(x0, s(z0)))) MARK(first(first(x0, cons(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(first(x0, cons(z0, z1)))) MARK(first(first(first(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(first(first(z0, z1), x1))) MARK(first(first(from(z0), x1), x2)) -> c5(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(first(from(z0), x1))) MARK(first(first(0, x1), x2)) -> c5(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(first(0, x1))) MARK(first(first(nil, x1), x2)) -> c5(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(first(nil, x1))) MARK(first(first(s(z0), x1), x2)) -> c5(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(first(s(z0), x1))) MARK(first(first(cons(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(first(cons(z0, z1), x1))) MARK(first(first(x0, x1), 0)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), nil)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), s(z0))) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), x2)) -> c5(MARK(first(x0, x1))) S tuples: A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(from(z0), x1)) -> c5(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(first(s(z0), x1)) -> c5(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(x0, first(z0, z1))) -> c6(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, from(z0))) -> c6(A__FIRST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(first(x0, cons(z0, z1))) -> c6(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(first(z0, z1), x1)) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(from(z0), x1)) -> c6(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c6(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(x0, from(x1))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), from(x1))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(first(x0, cons(from(z0), x2))) -> c5(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(0, x2))) -> c5(A__FIRST(mark(x0), cons(0, x2)), MARK(x0)) MARK(first(x0, cons(nil, x2))) -> c5(A__FIRST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(first(x0, cons(s(z0), x2))) -> c5(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(first(first(z0, z1), cons(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(first(z0, z1))) MARK(first(from(z0), cons(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(first(s(z0), cons(x1, x2))) -> c5(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(s(z0))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(first(x0, first(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(first(x0, first(z0, z1)))) MARK(first(first(x0, from(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(first(x0, from(z0)))) MARK(first(first(x0, 0), x2)) -> c5(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(first(x0, 0))) MARK(first(first(x0, nil), x2)) -> c5(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(first(x0, nil))) MARK(first(first(x0, s(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(first(x0, s(z0)))) MARK(first(first(x0, cons(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(first(x0, cons(z0, z1)))) MARK(first(first(first(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(first(first(z0, z1), x1))) MARK(first(first(from(z0), x1), x2)) -> c5(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(first(from(z0), x1))) MARK(first(first(0, x1), x2)) -> c5(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(first(0, x1))) MARK(first(first(nil, x1), x2)) -> c5(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(first(nil, x1))) MARK(first(first(s(z0), x1), x2)) -> c5(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(first(s(z0), x1))) MARK(first(first(cons(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(first(cons(z0, z1), x1))) MARK(first(first(x0, x1), 0)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), nil)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), s(z0))) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), x2)) -> c5(MARK(first(x0, x1))) K tuples:none Defined Rule Symbols: a__first_2, a__from_1, mark_1 Defined Pair Symbols: A__FIRST_2, A__FROM_1, MARK_1 Compound Symbols: c1_1, c3_1, c7_2, c10_1, c11_1, c5_2, c5_1, c6_2, c6_1 ---------------------------------------- (97) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(first(from(z0), x1)) -> c5(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) by MARK(first(from(x0), first(z0, z1))) -> c5(A__FIRST(a__from(mark(x0)), a__first(mark(z0), mark(z1))), MARK(from(x0))) MARK(first(from(x0), from(z0))) -> c5(A__FIRST(a__from(mark(x0)), a__from(mark(z0))), MARK(from(x0))) MARK(first(from(x0), 0)) -> c5(A__FIRST(a__from(mark(x0)), 0), MARK(from(x0))) MARK(first(from(x0), nil)) -> c5(A__FIRST(a__from(mark(x0)), nil), MARK(from(x0))) MARK(first(from(x0), s(z0))) -> c5(A__FIRST(a__from(mark(x0)), s(mark(z0))), MARK(from(x0))) MARK(first(from(x0), cons(z0, z1))) -> c5(A__FIRST(a__from(mark(x0)), cons(mark(z0), z1)), MARK(from(x0))) MARK(first(from(x0), x1)) -> c5(A__FIRST(cons(mark(mark(x0)), from(s(mark(x0)))), mark(x1)), MARK(from(x0))) MARK(first(from(x0), x1)) -> c5(A__FIRST(from(mark(x0)), mark(x1)), MARK(from(x0))) MARK(first(from(first(z0, z1)), x1)) -> c5(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(from(first(z0, z1)))) MARK(first(from(from(z0)), x1)) -> c5(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(first(from(0), x1)) -> c5(A__FIRST(a__from(0), mark(x1)), MARK(from(0))) MARK(first(from(nil), x1)) -> c5(A__FIRST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(first(from(s(z0)), x1)) -> c5(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(from(s(z0)))) MARK(first(from(cons(z0, z1)), x1)) -> c5(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(first(from(x0), x1)) -> c5(MARK(from(x0))) ---------------------------------------- (98) Obligation: Complexity Dependency Tuples Problem Rules: a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(0) -> 0 mark(nil) -> nil mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(s(z0), x1)) -> c5(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(x0, first(z0, z1))) -> c6(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, from(z0))) -> c6(A__FIRST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(first(x0, cons(z0, z1))) -> c6(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(first(z0, z1), x1)) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(from(z0), x1)) -> c6(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c6(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(x0, from(x1))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), from(x1))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(first(x0, cons(from(z0), x2))) -> c5(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(0, x2))) -> c5(A__FIRST(mark(x0), cons(0, x2)), MARK(x0)) MARK(first(x0, cons(nil, x2))) -> c5(A__FIRST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(first(x0, cons(s(z0), x2))) -> c5(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(first(first(z0, z1), cons(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(first(z0, z1))) MARK(first(from(z0), cons(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(first(s(z0), cons(x1, x2))) -> c5(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(s(z0))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(first(x0, first(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(first(x0, first(z0, z1)))) MARK(first(first(x0, from(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(first(x0, from(z0)))) MARK(first(first(x0, 0), x2)) -> c5(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(first(x0, 0))) MARK(first(first(x0, nil), x2)) -> c5(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(first(x0, nil))) MARK(first(first(x0, s(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(first(x0, s(z0)))) MARK(first(first(x0, cons(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(first(x0, cons(z0, z1)))) MARK(first(first(first(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(first(first(z0, z1), x1))) MARK(first(first(from(z0), x1), x2)) -> c5(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(first(from(z0), x1))) MARK(first(first(0, x1), x2)) -> c5(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(first(0, x1))) MARK(first(first(nil, x1), x2)) -> c5(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(first(nil, x1))) MARK(first(first(s(z0), x1), x2)) -> c5(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(first(s(z0), x1))) MARK(first(first(cons(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(first(cons(z0, z1), x1))) MARK(first(first(x0, x1), 0)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), nil)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), s(z0))) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), x2)) -> c5(MARK(first(x0, x1))) MARK(first(from(x0), 0)) -> c5(A__FIRST(a__from(mark(x0)), 0), MARK(from(x0))) MARK(first(from(x0), nil)) -> c5(A__FIRST(a__from(mark(x0)), nil), MARK(from(x0))) MARK(first(from(x0), s(z0))) -> c5(A__FIRST(a__from(mark(x0)), s(mark(z0))), MARK(from(x0))) MARK(first(from(x0), x1)) -> c5(A__FIRST(cons(mark(mark(x0)), from(s(mark(x0)))), mark(x1)), MARK(from(x0))) MARK(first(from(x0), x1)) -> c5(A__FIRST(from(mark(x0)), mark(x1)), MARK(from(x0))) MARK(first(from(first(z0, z1)), x1)) -> c5(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(from(first(z0, z1)))) MARK(first(from(from(z0)), x1)) -> c5(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(first(from(0), x1)) -> c5(A__FIRST(a__from(0), mark(x1)), MARK(from(0))) MARK(first(from(nil), x1)) -> c5(A__FIRST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(first(from(s(z0)), x1)) -> c5(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(from(s(z0)))) MARK(first(from(cons(z0, z1)), x1)) -> c5(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(first(from(x0), x1)) -> c5(MARK(from(x0))) S tuples: A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(s(z0), x1)) -> c5(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(x0, first(z0, z1))) -> c6(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, from(z0))) -> c6(A__FIRST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(first(x0, cons(z0, z1))) -> c6(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(first(z0, z1), x1)) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(from(z0), x1)) -> c6(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c6(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(x0, from(x1))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), from(x1))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(first(x0, cons(from(z0), x2))) -> c5(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(0, x2))) -> c5(A__FIRST(mark(x0), cons(0, x2)), MARK(x0)) MARK(first(x0, cons(nil, x2))) -> c5(A__FIRST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(first(x0, cons(s(z0), x2))) -> c5(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(first(first(z0, z1), cons(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(first(z0, z1))) MARK(first(from(z0), cons(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(first(s(z0), cons(x1, x2))) -> c5(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(s(z0))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(first(x0, first(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(first(x0, first(z0, z1)))) MARK(first(first(x0, from(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(first(x0, from(z0)))) MARK(first(first(x0, 0), x2)) -> c5(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(first(x0, 0))) MARK(first(first(x0, nil), x2)) -> c5(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(first(x0, nil))) MARK(first(first(x0, s(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(first(x0, s(z0)))) MARK(first(first(x0, cons(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(first(x0, cons(z0, z1)))) MARK(first(first(first(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(first(first(z0, z1), x1))) MARK(first(first(from(z0), x1), x2)) -> c5(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(first(from(z0), x1))) MARK(first(first(0, x1), x2)) -> c5(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(first(0, x1))) MARK(first(first(nil, x1), x2)) -> c5(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(first(nil, x1))) MARK(first(first(s(z0), x1), x2)) -> c5(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(first(s(z0), x1))) MARK(first(first(cons(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(first(cons(z0, z1), x1))) MARK(first(first(x0, x1), 0)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), nil)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), s(z0))) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), x2)) -> c5(MARK(first(x0, x1))) MARK(first(from(x0), 0)) -> c5(A__FIRST(a__from(mark(x0)), 0), MARK(from(x0))) MARK(first(from(x0), nil)) -> c5(A__FIRST(a__from(mark(x0)), nil), MARK(from(x0))) MARK(first(from(x0), s(z0))) -> c5(A__FIRST(a__from(mark(x0)), s(mark(z0))), MARK(from(x0))) MARK(first(from(x0), x1)) -> c5(A__FIRST(cons(mark(mark(x0)), from(s(mark(x0)))), mark(x1)), MARK(from(x0))) MARK(first(from(x0), x1)) -> c5(A__FIRST(from(mark(x0)), mark(x1)), MARK(from(x0))) MARK(first(from(first(z0, z1)), x1)) -> c5(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(from(first(z0, z1)))) MARK(first(from(from(z0)), x1)) -> c5(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(first(from(0), x1)) -> c5(A__FIRST(a__from(0), mark(x1)), MARK(from(0))) MARK(first(from(nil), x1)) -> c5(A__FIRST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(first(from(s(z0)), x1)) -> c5(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(from(s(z0)))) MARK(first(from(cons(z0, z1)), x1)) -> c5(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(first(from(x0), x1)) -> c5(MARK(from(x0))) K tuples:none Defined Rule Symbols: a__first_2, a__from_1, mark_1 Defined Pair Symbols: A__FIRST_2, A__FROM_1, MARK_1 Compound Symbols: c1_1, c3_1, c7_2, c10_1, c11_1, c5_2, c5_1, c6_2, c6_1 ---------------------------------------- (99) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 5 trailing tuple parts ---------------------------------------- (100) Obligation: Complexity Dependency Tuples Problem Rules: a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(0) -> 0 mark(nil) -> nil mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(s(z0), x1)) -> c5(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(x0, first(z0, z1))) -> c6(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, from(z0))) -> c6(A__FIRST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(first(x0, cons(z0, z1))) -> c6(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(first(z0, z1), x1)) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(from(z0), x1)) -> c6(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c6(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(x0, from(x1))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), from(x1))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(first(x0, cons(from(z0), x2))) -> c5(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(0, x2))) -> c5(A__FIRST(mark(x0), cons(0, x2)), MARK(x0)) MARK(first(x0, cons(nil, x2))) -> c5(A__FIRST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(first(x0, cons(s(z0), x2))) -> c5(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(first(first(z0, z1), cons(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(first(z0, z1))) MARK(first(from(z0), cons(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(first(s(z0), cons(x1, x2))) -> c5(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(s(z0))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(first(x0, first(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(first(x0, first(z0, z1)))) MARK(first(first(x0, from(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(first(x0, from(z0)))) MARK(first(first(x0, 0), x2)) -> c5(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(first(x0, 0))) MARK(first(first(x0, nil), x2)) -> c5(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(first(x0, nil))) MARK(first(first(x0, s(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(first(x0, s(z0)))) MARK(first(first(x0, cons(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(first(x0, cons(z0, z1)))) MARK(first(first(first(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(first(first(z0, z1), x1))) MARK(first(first(from(z0), x1), x2)) -> c5(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(first(from(z0), x1))) MARK(first(first(0, x1), x2)) -> c5(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(first(0, x1))) MARK(first(first(nil, x1), x2)) -> c5(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(first(nil, x1))) MARK(first(first(s(z0), x1), x2)) -> c5(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(first(s(z0), x1))) MARK(first(first(cons(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(first(cons(z0, z1), x1))) MARK(first(first(x0, x1), 0)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), nil)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), s(z0))) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), x2)) -> c5(MARK(first(x0, x1))) MARK(first(from(first(z0, z1)), x1)) -> c5(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(from(first(z0, z1)))) MARK(first(from(from(z0)), x1)) -> c5(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(first(from(0), x1)) -> c5(A__FIRST(a__from(0), mark(x1)), MARK(from(0))) MARK(first(from(nil), x1)) -> c5(A__FIRST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(first(from(s(z0)), x1)) -> c5(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(from(s(z0)))) MARK(first(from(cons(z0, z1)), x1)) -> c5(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(first(from(x0), x1)) -> c5(MARK(from(x0))) MARK(first(from(x0), 0)) -> c5(MARK(from(x0))) MARK(first(from(x0), nil)) -> c5(MARK(from(x0))) MARK(first(from(x0), s(z0))) -> c5(MARK(from(x0))) S tuples: A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(s(z0), x1)) -> c5(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(x0, first(z0, z1))) -> c6(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, from(z0))) -> c6(A__FIRST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(first(x0, cons(z0, z1))) -> c6(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(first(z0, z1), x1)) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(from(z0), x1)) -> c6(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c6(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(x0, from(x1))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), from(x1))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(first(x0, cons(from(z0), x2))) -> c5(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(0, x2))) -> c5(A__FIRST(mark(x0), cons(0, x2)), MARK(x0)) MARK(first(x0, cons(nil, x2))) -> c5(A__FIRST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(first(x0, cons(s(z0), x2))) -> c5(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(first(first(z0, z1), cons(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(first(z0, z1))) MARK(first(from(z0), cons(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(first(s(z0), cons(x1, x2))) -> c5(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(s(z0))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(first(x0, first(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(first(x0, first(z0, z1)))) MARK(first(first(x0, from(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(first(x0, from(z0)))) MARK(first(first(x0, 0), x2)) -> c5(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(first(x0, 0))) MARK(first(first(x0, nil), x2)) -> c5(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(first(x0, nil))) MARK(first(first(x0, s(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(first(x0, s(z0)))) MARK(first(first(x0, cons(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(first(x0, cons(z0, z1)))) MARK(first(first(first(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(first(first(z0, z1), x1))) MARK(first(first(from(z0), x1), x2)) -> c5(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(first(from(z0), x1))) MARK(first(first(0, x1), x2)) -> c5(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(first(0, x1))) MARK(first(first(nil, x1), x2)) -> c5(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(first(nil, x1))) MARK(first(first(s(z0), x1), x2)) -> c5(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(first(s(z0), x1))) MARK(first(first(cons(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(first(cons(z0, z1), x1))) MARK(first(first(x0, x1), 0)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), nil)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), s(z0))) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), x2)) -> c5(MARK(first(x0, x1))) MARK(first(from(first(z0, z1)), x1)) -> c5(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(from(first(z0, z1)))) MARK(first(from(from(z0)), x1)) -> c5(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(first(from(0), x1)) -> c5(A__FIRST(a__from(0), mark(x1)), MARK(from(0))) MARK(first(from(nil), x1)) -> c5(A__FIRST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(first(from(s(z0)), x1)) -> c5(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(from(s(z0)))) MARK(first(from(cons(z0, z1)), x1)) -> c5(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(first(from(x0), x1)) -> c5(MARK(from(x0))) MARK(first(from(x0), 0)) -> c5(MARK(from(x0))) MARK(first(from(x0), nil)) -> c5(MARK(from(x0))) MARK(first(from(x0), s(z0))) -> c5(MARK(from(x0))) K tuples:none Defined Rule Symbols: a__first_2, a__from_1, mark_1 Defined Pair Symbols: A__FIRST_2, A__FROM_1, MARK_1 Compound Symbols: c1_1, c3_1, c7_2, c10_1, c11_1, c5_2, c5_1, c6_2, c6_1 ---------------------------------------- (101) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(first(s(z0), x1)) -> c5(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) by MARK(first(s(x0), first(z0, z1))) -> c5(A__FIRST(s(mark(x0)), a__first(mark(z0), mark(z1))), MARK(s(x0))) MARK(first(s(x0), from(z0))) -> c5(A__FIRST(s(mark(x0)), a__from(mark(z0))), MARK(s(x0))) MARK(first(s(x0), 0)) -> c5(A__FIRST(s(mark(x0)), 0), MARK(s(x0))) MARK(first(s(x0), nil)) -> c5(A__FIRST(s(mark(x0)), nil), MARK(s(x0))) MARK(first(s(x0), s(z0))) -> c5(A__FIRST(s(mark(x0)), s(mark(z0))), MARK(s(x0))) MARK(first(s(x0), cons(z0, z1))) -> c5(A__FIRST(s(mark(x0)), cons(mark(z0), z1)), MARK(s(x0))) MARK(first(s(first(z0, z1)), x1)) -> c5(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(s(first(z0, z1)))) MARK(first(s(from(z0)), x1)) -> c5(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(s(from(z0)))) MARK(first(s(0), x1)) -> c5(A__FIRST(s(0), mark(x1)), MARK(s(0))) MARK(first(s(nil), x1)) -> c5(A__FIRST(s(nil), mark(x1)), MARK(s(nil))) MARK(first(s(s(z0)), x1)) -> c5(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(s(s(z0)))) MARK(first(s(cons(z0, z1)), x1)) -> c5(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(s(cons(z0, z1)))) MARK(first(s(x0), x1)) -> c5(MARK(s(x0))) ---------------------------------------- (102) Obligation: Complexity Dependency Tuples Problem Rules: a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(0) -> 0 mark(nil) -> nil mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(x0, first(z0, z1))) -> c6(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, from(z0))) -> c6(A__FIRST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(first(x0, cons(z0, z1))) -> c6(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(first(z0, z1), x1)) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(from(z0), x1)) -> c6(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c6(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(x0, from(x1))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), from(x1))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(first(x0, cons(from(z0), x2))) -> c5(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(0, x2))) -> c5(A__FIRST(mark(x0), cons(0, x2)), MARK(x0)) MARK(first(x0, cons(nil, x2))) -> c5(A__FIRST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(first(x0, cons(s(z0), x2))) -> c5(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(first(first(z0, z1), cons(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(first(z0, z1))) MARK(first(from(z0), cons(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(first(s(z0), cons(x1, x2))) -> c5(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(s(z0))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(first(x0, first(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(first(x0, first(z0, z1)))) MARK(first(first(x0, from(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(first(x0, from(z0)))) MARK(first(first(x0, 0), x2)) -> c5(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(first(x0, 0))) MARK(first(first(x0, nil), x2)) -> c5(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(first(x0, nil))) MARK(first(first(x0, s(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(first(x0, s(z0)))) MARK(first(first(x0, cons(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(first(x0, cons(z0, z1)))) MARK(first(first(first(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(first(first(z0, z1), x1))) MARK(first(first(from(z0), x1), x2)) -> c5(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(first(from(z0), x1))) MARK(first(first(0, x1), x2)) -> c5(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(first(0, x1))) MARK(first(first(nil, x1), x2)) -> c5(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(first(nil, x1))) MARK(first(first(s(z0), x1), x2)) -> c5(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(first(s(z0), x1))) MARK(first(first(cons(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(first(cons(z0, z1), x1))) MARK(first(first(x0, x1), 0)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), nil)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), s(z0))) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), x2)) -> c5(MARK(first(x0, x1))) MARK(first(from(first(z0, z1)), x1)) -> c5(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(from(first(z0, z1)))) MARK(first(from(from(z0)), x1)) -> c5(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(first(from(0), x1)) -> c5(A__FIRST(a__from(0), mark(x1)), MARK(from(0))) MARK(first(from(nil), x1)) -> c5(A__FIRST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(first(from(s(z0)), x1)) -> c5(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(from(s(z0)))) MARK(first(from(cons(z0, z1)), x1)) -> c5(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(first(from(x0), x1)) -> c5(MARK(from(x0))) MARK(first(from(x0), 0)) -> c5(MARK(from(x0))) MARK(first(from(x0), nil)) -> c5(MARK(from(x0))) MARK(first(from(x0), s(z0))) -> c5(MARK(from(x0))) MARK(first(s(x0), 0)) -> c5(A__FIRST(s(mark(x0)), 0), MARK(s(x0))) MARK(first(s(x0), nil)) -> c5(A__FIRST(s(mark(x0)), nil), MARK(s(x0))) MARK(first(s(x0), s(z0))) -> c5(A__FIRST(s(mark(x0)), s(mark(z0))), MARK(s(x0))) MARK(first(s(first(z0, z1)), x1)) -> c5(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(s(first(z0, z1)))) MARK(first(s(from(z0)), x1)) -> c5(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(s(from(z0)))) MARK(first(s(0), x1)) -> c5(A__FIRST(s(0), mark(x1)), MARK(s(0))) MARK(first(s(nil), x1)) -> c5(A__FIRST(s(nil), mark(x1)), MARK(s(nil))) MARK(first(s(s(z0)), x1)) -> c5(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(s(s(z0)))) MARK(first(s(cons(z0, z1)), x1)) -> c5(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(s(cons(z0, z1)))) MARK(first(s(x0), x1)) -> c5(MARK(s(x0))) S tuples: A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(x0, first(z0, z1))) -> c6(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, from(z0))) -> c6(A__FIRST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(first(x0, cons(z0, z1))) -> c6(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(first(z0, z1), x1)) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(from(z0), x1)) -> c6(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c6(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(x0, from(x1))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), from(x1))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(first(x0, cons(from(z0), x2))) -> c5(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(0, x2))) -> c5(A__FIRST(mark(x0), cons(0, x2)), MARK(x0)) MARK(first(x0, cons(nil, x2))) -> c5(A__FIRST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(first(x0, cons(s(z0), x2))) -> c5(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(first(first(z0, z1), cons(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(first(z0, z1))) MARK(first(from(z0), cons(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(first(s(z0), cons(x1, x2))) -> c5(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(s(z0))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(first(x0, first(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(first(x0, first(z0, z1)))) MARK(first(first(x0, from(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(first(x0, from(z0)))) MARK(first(first(x0, 0), x2)) -> c5(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(first(x0, 0))) MARK(first(first(x0, nil), x2)) -> c5(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(first(x0, nil))) MARK(first(first(x0, s(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(first(x0, s(z0)))) MARK(first(first(x0, cons(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(first(x0, cons(z0, z1)))) MARK(first(first(first(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(first(first(z0, z1), x1))) MARK(first(first(from(z0), x1), x2)) -> c5(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(first(from(z0), x1))) MARK(first(first(0, x1), x2)) -> c5(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(first(0, x1))) MARK(first(first(nil, x1), x2)) -> c5(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(first(nil, x1))) MARK(first(first(s(z0), x1), x2)) -> c5(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(first(s(z0), x1))) MARK(first(first(cons(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(first(cons(z0, z1), x1))) MARK(first(first(x0, x1), 0)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), nil)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), s(z0))) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), x2)) -> c5(MARK(first(x0, x1))) MARK(first(from(first(z0, z1)), x1)) -> c5(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(from(first(z0, z1)))) MARK(first(from(from(z0)), x1)) -> c5(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(first(from(0), x1)) -> c5(A__FIRST(a__from(0), mark(x1)), MARK(from(0))) MARK(first(from(nil), x1)) -> c5(A__FIRST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(first(from(s(z0)), x1)) -> c5(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(from(s(z0)))) MARK(first(from(cons(z0, z1)), x1)) -> c5(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(first(from(x0), x1)) -> c5(MARK(from(x0))) MARK(first(from(x0), 0)) -> c5(MARK(from(x0))) MARK(first(from(x0), nil)) -> c5(MARK(from(x0))) MARK(first(from(x0), s(z0))) -> c5(MARK(from(x0))) MARK(first(s(x0), 0)) -> c5(A__FIRST(s(mark(x0)), 0), MARK(s(x0))) MARK(first(s(x0), nil)) -> c5(A__FIRST(s(mark(x0)), nil), MARK(s(x0))) MARK(first(s(x0), s(z0))) -> c5(A__FIRST(s(mark(x0)), s(mark(z0))), MARK(s(x0))) MARK(first(s(first(z0, z1)), x1)) -> c5(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(s(first(z0, z1)))) MARK(first(s(from(z0)), x1)) -> c5(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(s(from(z0)))) MARK(first(s(0), x1)) -> c5(A__FIRST(s(0), mark(x1)), MARK(s(0))) MARK(first(s(nil), x1)) -> c5(A__FIRST(s(nil), mark(x1)), MARK(s(nil))) MARK(first(s(s(z0)), x1)) -> c5(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(s(s(z0)))) MARK(first(s(cons(z0, z1)), x1)) -> c5(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(s(cons(z0, z1)))) MARK(first(s(x0), x1)) -> c5(MARK(s(x0))) K tuples:none Defined Rule Symbols: a__first_2, a__from_1, mark_1 Defined Pair Symbols: A__FIRST_2, A__FROM_1, MARK_1 Compound Symbols: c1_1, c3_1, c7_2, c10_1, c11_1, c5_1, c6_2, c6_1, c5_2 ---------------------------------------- (103) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing tuple parts ---------------------------------------- (104) Obligation: Complexity Dependency Tuples Problem Rules: a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(0) -> 0 mark(nil) -> nil mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(x0, first(z0, z1))) -> c6(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, from(z0))) -> c6(A__FIRST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(first(x0, cons(z0, z1))) -> c6(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(first(z0, z1), x1)) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(from(z0), x1)) -> c6(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c6(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(x0, from(x1))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), from(x1))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(first(x0, cons(from(z0), x2))) -> c5(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(0, x2))) -> c5(A__FIRST(mark(x0), cons(0, x2)), MARK(x0)) MARK(first(x0, cons(nil, x2))) -> c5(A__FIRST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(first(x0, cons(s(z0), x2))) -> c5(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(first(first(z0, z1), cons(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(first(z0, z1))) MARK(first(from(z0), cons(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(first(s(z0), cons(x1, x2))) -> c5(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(s(z0))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(first(x0, first(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(first(x0, first(z0, z1)))) MARK(first(first(x0, from(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(first(x0, from(z0)))) MARK(first(first(x0, 0), x2)) -> c5(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(first(x0, 0))) MARK(first(first(x0, nil), x2)) -> c5(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(first(x0, nil))) MARK(first(first(x0, s(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(first(x0, s(z0)))) MARK(first(first(x0, cons(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(first(x0, cons(z0, z1)))) MARK(first(first(first(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(first(first(z0, z1), x1))) MARK(first(first(from(z0), x1), x2)) -> c5(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(first(from(z0), x1))) MARK(first(first(0, x1), x2)) -> c5(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(first(0, x1))) MARK(first(first(nil, x1), x2)) -> c5(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(first(nil, x1))) MARK(first(first(s(z0), x1), x2)) -> c5(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(first(s(z0), x1))) MARK(first(first(cons(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(first(cons(z0, z1), x1))) MARK(first(first(x0, x1), 0)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), nil)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), s(z0))) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), x2)) -> c5(MARK(first(x0, x1))) MARK(first(from(first(z0, z1)), x1)) -> c5(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(from(first(z0, z1)))) MARK(first(from(from(z0)), x1)) -> c5(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(first(from(0), x1)) -> c5(A__FIRST(a__from(0), mark(x1)), MARK(from(0))) MARK(first(from(nil), x1)) -> c5(A__FIRST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(first(from(s(z0)), x1)) -> c5(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(from(s(z0)))) MARK(first(from(cons(z0, z1)), x1)) -> c5(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(first(from(x0), x1)) -> c5(MARK(from(x0))) MARK(first(from(x0), 0)) -> c5(MARK(from(x0))) MARK(first(from(x0), nil)) -> c5(MARK(from(x0))) MARK(first(from(x0), s(z0))) -> c5(MARK(from(x0))) MARK(first(s(first(z0, z1)), x1)) -> c5(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(s(first(z0, z1)))) MARK(first(s(from(z0)), x1)) -> c5(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(s(from(z0)))) MARK(first(s(0), x1)) -> c5(A__FIRST(s(0), mark(x1)), MARK(s(0))) MARK(first(s(nil), x1)) -> c5(A__FIRST(s(nil), mark(x1)), MARK(s(nil))) MARK(first(s(s(z0)), x1)) -> c5(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(s(s(z0)))) MARK(first(s(cons(z0, z1)), x1)) -> c5(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(s(cons(z0, z1)))) MARK(first(s(x0), x1)) -> c5(MARK(s(x0))) MARK(first(s(x0), 0)) -> c5(MARK(s(x0))) MARK(first(s(x0), nil)) -> c5(MARK(s(x0))) MARK(first(s(x0), s(z0))) -> c5(MARK(s(x0))) S tuples: A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(x0, first(z0, z1))) -> c6(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, from(z0))) -> c6(A__FIRST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(first(x0, cons(z0, z1))) -> c6(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(first(z0, z1), x1)) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(from(z0), x1)) -> c6(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c6(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(x0, from(x1))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), from(x1))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(first(x0, cons(from(z0), x2))) -> c5(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(0, x2))) -> c5(A__FIRST(mark(x0), cons(0, x2)), MARK(x0)) MARK(first(x0, cons(nil, x2))) -> c5(A__FIRST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(first(x0, cons(s(z0), x2))) -> c5(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(first(first(z0, z1), cons(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(first(z0, z1))) MARK(first(from(z0), cons(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(first(s(z0), cons(x1, x2))) -> c5(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(s(z0))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(first(x0, first(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(first(x0, first(z0, z1)))) MARK(first(first(x0, from(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(first(x0, from(z0)))) MARK(first(first(x0, 0), x2)) -> c5(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(first(x0, 0))) MARK(first(first(x0, nil), x2)) -> c5(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(first(x0, nil))) MARK(first(first(x0, s(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(first(x0, s(z0)))) MARK(first(first(x0, cons(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(first(x0, cons(z0, z1)))) MARK(first(first(first(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(first(first(z0, z1), x1))) MARK(first(first(from(z0), x1), x2)) -> c5(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(first(from(z0), x1))) MARK(first(first(0, x1), x2)) -> c5(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(first(0, x1))) MARK(first(first(nil, x1), x2)) -> c5(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(first(nil, x1))) MARK(first(first(s(z0), x1), x2)) -> c5(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(first(s(z0), x1))) MARK(first(first(cons(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(first(cons(z0, z1), x1))) MARK(first(first(x0, x1), 0)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), nil)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), s(z0))) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), x2)) -> c5(MARK(first(x0, x1))) MARK(first(from(first(z0, z1)), x1)) -> c5(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(from(first(z0, z1)))) MARK(first(from(from(z0)), x1)) -> c5(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(first(from(0), x1)) -> c5(A__FIRST(a__from(0), mark(x1)), MARK(from(0))) MARK(first(from(nil), x1)) -> c5(A__FIRST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(first(from(s(z0)), x1)) -> c5(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(from(s(z0)))) MARK(first(from(cons(z0, z1)), x1)) -> c5(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(first(from(x0), x1)) -> c5(MARK(from(x0))) MARK(first(from(x0), 0)) -> c5(MARK(from(x0))) MARK(first(from(x0), nil)) -> c5(MARK(from(x0))) MARK(first(from(x0), s(z0))) -> c5(MARK(from(x0))) MARK(first(s(first(z0, z1)), x1)) -> c5(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(s(first(z0, z1)))) MARK(first(s(from(z0)), x1)) -> c5(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(s(from(z0)))) MARK(first(s(0), x1)) -> c5(A__FIRST(s(0), mark(x1)), MARK(s(0))) MARK(first(s(nil), x1)) -> c5(A__FIRST(s(nil), mark(x1)), MARK(s(nil))) MARK(first(s(s(z0)), x1)) -> c5(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(s(s(z0)))) MARK(first(s(cons(z0, z1)), x1)) -> c5(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(s(cons(z0, z1)))) MARK(first(s(x0), x1)) -> c5(MARK(s(x0))) MARK(first(s(x0), 0)) -> c5(MARK(s(x0))) MARK(first(s(x0), nil)) -> c5(MARK(s(x0))) MARK(first(s(x0), s(z0))) -> c5(MARK(s(x0))) K tuples:none Defined Rule Symbols: a__first_2, a__from_1, mark_1 Defined Pair Symbols: A__FIRST_2, A__FROM_1, MARK_1 Compound Symbols: c1_1, c3_1, c7_2, c10_1, c11_1, c5_1, c6_2, c6_1, c5_2 ---------------------------------------- (105) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(first(x0, first(z0, z1))) -> c6(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) by MARK(first(x0, first(x1, x2))) -> c6(A__FIRST(mark(x0), first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(x0, first(x1, first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(first(x1, first(z0, z1)))) MARK(first(x0, first(x1, from(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(first(x1, from(z0)))) MARK(first(x0, first(x1, 0))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(first(x1, 0))) MARK(first(x0, first(x1, nil))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(first(x1, nil))) MARK(first(x0, first(x1, s(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(first(x1, s(z0)))) MARK(first(x0, first(x1, cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(first(x1, cons(z0, z1)))) MARK(first(x0, first(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(first(first(z0, z1), x2))) MARK(first(x0, first(from(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(first(from(z0), x2))) MARK(first(x0, first(0, x2))) -> c6(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(first(0, x2))) MARK(first(x0, first(nil, x2))) -> c6(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(first(nil, x2))) MARK(first(x0, first(s(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(first(s(z0), x2))) MARK(first(x0, first(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(first(cons(z0, z1), x2))) MARK(first(first(z0, z1), first(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(from(z0), first(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(0, first(x1, x2))) -> c6(A__FIRST(0, a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(nil, first(x1, x2))) -> c6(A__FIRST(nil, a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(s(z0), first(x1, x2))) -> c6(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(cons(z0, z1), first(x1, x2))) -> c6(A__FIRST(cons(mark(z0), z1), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) ---------------------------------------- (106) Obligation: Complexity Dependency Tuples Problem Rules: a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(0) -> 0 mark(nil) -> nil mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(z0))) -> c6(A__FIRST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(first(x0, cons(z0, z1))) -> c6(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(first(z0, z1), x1)) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(from(z0), x1)) -> c6(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c6(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(x0, from(x1))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), from(x1))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(first(x0, cons(from(z0), x2))) -> c5(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(0, x2))) -> c5(A__FIRST(mark(x0), cons(0, x2)), MARK(x0)) MARK(first(x0, cons(nil, x2))) -> c5(A__FIRST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(first(x0, cons(s(z0), x2))) -> c5(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(first(first(z0, z1), cons(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(first(z0, z1))) MARK(first(from(z0), cons(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(first(s(z0), cons(x1, x2))) -> c5(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(s(z0))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(first(x0, first(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(first(x0, first(z0, z1)))) MARK(first(first(x0, from(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(first(x0, from(z0)))) MARK(first(first(x0, 0), x2)) -> c5(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(first(x0, 0))) MARK(first(first(x0, nil), x2)) -> c5(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(first(x0, nil))) MARK(first(first(x0, s(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(first(x0, s(z0)))) MARK(first(first(x0, cons(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(first(x0, cons(z0, z1)))) MARK(first(first(first(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(first(first(z0, z1), x1))) MARK(first(first(from(z0), x1), x2)) -> c5(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(first(from(z0), x1))) MARK(first(first(0, x1), x2)) -> c5(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(first(0, x1))) MARK(first(first(nil, x1), x2)) -> c5(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(first(nil, x1))) MARK(first(first(s(z0), x1), x2)) -> c5(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(first(s(z0), x1))) MARK(first(first(cons(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(first(cons(z0, z1), x1))) MARK(first(first(x0, x1), 0)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), nil)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), s(z0))) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), x2)) -> c5(MARK(first(x0, x1))) MARK(first(from(first(z0, z1)), x1)) -> c5(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(from(first(z0, z1)))) MARK(first(from(from(z0)), x1)) -> c5(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(first(from(0), x1)) -> c5(A__FIRST(a__from(0), mark(x1)), MARK(from(0))) MARK(first(from(nil), x1)) -> c5(A__FIRST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(first(from(s(z0)), x1)) -> c5(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(from(s(z0)))) MARK(first(from(cons(z0, z1)), x1)) -> c5(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(first(from(x0), x1)) -> c5(MARK(from(x0))) MARK(first(from(x0), 0)) -> c5(MARK(from(x0))) MARK(first(from(x0), nil)) -> c5(MARK(from(x0))) MARK(first(from(x0), s(z0))) -> c5(MARK(from(x0))) MARK(first(s(first(z0, z1)), x1)) -> c5(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(s(first(z0, z1)))) MARK(first(s(from(z0)), x1)) -> c5(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(s(from(z0)))) MARK(first(s(0), x1)) -> c5(A__FIRST(s(0), mark(x1)), MARK(s(0))) MARK(first(s(nil), x1)) -> c5(A__FIRST(s(nil), mark(x1)), MARK(s(nil))) MARK(first(s(s(z0)), x1)) -> c5(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(s(s(z0)))) MARK(first(s(cons(z0, z1)), x1)) -> c5(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(s(cons(z0, z1)))) MARK(first(s(x0), x1)) -> c5(MARK(s(x0))) MARK(first(s(x0), 0)) -> c5(MARK(s(x0))) MARK(first(s(x0), nil)) -> c5(MARK(s(x0))) MARK(first(s(x0), s(z0))) -> c5(MARK(s(x0))) MARK(first(x0, first(x1, x2))) -> c6(A__FIRST(mark(x0), first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(x0, first(x1, first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(first(x1, first(z0, z1)))) MARK(first(x0, first(x1, from(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(first(x1, from(z0)))) MARK(first(x0, first(x1, 0))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(first(x1, 0))) MARK(first(x0, first(x1, nil))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(first(x1, nil))) MARK(first(x0, first(x1, s(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(first(x1, s(z0)))) MARK(first(x0, first(x1, cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(first(x1, cons(z0, z1)))) MARK(first(x0, first(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(first(first(z0, z1), x2))) MARK(first(x0, first(from(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(first(from(z0), x2))) MARK(first(x0, first(0, x2))) -> c6(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(first(0, x2))) MARK(first(x0, first(nil, x2))) -> c6(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(first(nil, x2))) MARK(first(x0, first(s(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(first(s(z0), x2))) MARK(first(x0, first(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(first(cons(z0, z1), x2))) MARK(first(first(z0, z1), first(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(from(z0), first(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(0, first(x1, x2))) -> c6(A__FIRST(0, a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(nil, first(x1, x2))) -> c6(A__FIRST(nil, a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(s(z0), first(x1, x2))) -> c6(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(cons(z0, z1), first(x1, x2))) -> c6(A__FIRST(cons(mark(z0), z1), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) S tuples: A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(z0))) -> c6(A__FIRST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(first(x0, cons(z0, z1))) -> c6(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(first(z0, z1), x1)) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(from(z0), x1)) -> c6(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c6(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(x0, from(x1))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), from(x1))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(first(x0, cons(from(z0), x2))) -> c5(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(0, x2))) -> c5(A__FIRST(mark(x0), cons(0, x2)), MARK(x0)) MARK(first(x0, cons(nil, x2))) -> c5(A__FIRST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(first(x0, cons(s(z0), x2))) -> c5(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(first(first(z0, z1), cons(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(first(z0, z1))) MARK(first(from(z0), cons(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(first(s(z0), cons(x1, x2))) -> c5(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(s(z0))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(first(x0, first(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(first(x0, first(z0, z1)))) MARK(first(first(x0, from(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(first(x0, from(z0)))) MARK(first(first(x0, 0), x2)) -> c5(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(first(x0, 0))) MARK(first(first(x0, nil), x2)) -> c5(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(first(x0, nil))) MARK(first(first(x0, s(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(first(x0, s(z0)))) MARK(first(first(x0, cons(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(first(x0, cons(z0, z1)))) MARK(first(first(first(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(first(first(z0, z1), x1))) MARK(first(first(from(z0), x1), x2)) -> c5(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(first(from(z0), x1))) MARK(first(first(0, x1), x2)) -> c5(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(first(0, x1))) MARK(first(first(nil, x1), x2)) -> c5(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(first(nil, x1))) MARK(first(first(s(z0), x1), x2)) -> c5(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(first(s(z0), x1))) MARK(first(first(cons(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(first(cons(z0, z1), x1))) MARK(first(first(x0, x1), 0)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), nil)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), s(z0))) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), x2)) -> c5(MARK(first(x0, x1))) MARK(first(from(first(z0, z1)), x1)) -> c5(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(from(first(z0, z1)))) MARK(first(from(from(z0)), x1)) -> c5(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(first(from(0), x1)) -> c5(A__FIRST(a__from(0), mark(x1)), MARK(from(0))) MARK(first(from(nil), x1)) -> c5(A__FIRST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(first(from(s(z0)), x1)) -> c5(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(from(s(z0)))) MARK(first(from(cons(z0, z1)), x1)) -> c5(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(first(from(x0), x1)) -> c5(MARK(from(x0))) MARK(first(from(x0), 0)) -> c5(MARK(from(x0))) MARK(first(from(x0), nil)) -> c5(MARK(from(x0))) MARK(first(from(x0), s(z0))) -> c5(MARK(from(x0))) MARK(first(s(first(z0, z1)), x1)) -> c5(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(s(first(z0, z1)))) MARK(first(s(from(z0)), x1)) -> c5(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(s(from(z0)))) MARK(first(s(0), x1)) -> c5(A__FIRST(s(0), mark(x1)), MARK(s(0))) MARK(first(s(nil), x1)) -> c5(A__FIRST(s(nil), mark(x1)), MARK(s(nil))) MARK(first(s(s(z0)), x1)) -> c5(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(s(s(z0)))) MARK(first(s(cons(z0, z1)), x1)) -> c5(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(s(cons(z0, z1)))) MARK(first(s(x0), x1)) -> c5(MARK(s(x0))) MARK(first(s(x0), 0)) -> c5(MARK(s(x0))) MARK(first(s(x0), nil)) -> c5(MARK(s(x0))) MARK(first(s(x0), s(z0))) -> c5(MARK(s(x0))) MARK(first(x0, first(x1, x2))) -> c6(A__FIRST(mark(x0), first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(x0, first(x1, first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(first(x1, first(z0, z1)))) MARK(first(x0, first(x1, from(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(first(x1, from(z0)))) MARK(first(x0, first(x1, 0))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(first(x1, 0))) MARK(first(x0, first(x1, nil))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(first(x1, nil))) MARK(first(x0, first(x1, s(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(first(x1, s(z0)))) MARK(first(x0, first(x1, cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(first(x1, cons(z0, z1)))) MARK(first(x0, first(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(first(first(z0, z1), x2))) MARK(first(x0, first(from(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(first(from(z0), x2))) MARK(first(x0, first(0, x2))) -> c6(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(first(0, x2))) MARK(first(x0, first(nil, x2))) -> c6(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(first(nil, x2))) MARK(first(x0, first(s(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(first(s(z0), x2))) MARK(first(x0, first(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(first(cons(z0, z1), x2))) MARK(first(first(z0, z1), first(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(from(z0), first(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(0, first(x1, x2))) -> c6(A__FIRST(0, a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(nil, first(x1, x2))) -> c6(A__FIRST(nil, a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(s(z0), first(x1, x2))) -> c6(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(cons(z0, z1), first(x1, x2))) -> c6(A__FIRST(cons(mark(z0), z1), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) K tuples:none Defined Rule Symbols: a__first_2, a__from_1, mark_1 Defined Pair Symbols: A__FIRST_2, A__FROM_1, MARK_1 Compound Symbols: c1_1, c3_1, c7_2, c10_1, c11_1, c5_1, c6_2, c6_1, c5_2 ---------------------------------------- (107) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (108) Obligation: Complexity Dependency Tuples Problem Rules: a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(0) -> 0 mark(nil) -> nil mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(z0))) -> c6(A__FIRST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(first(x0, cons(z0, z1))) -> c6(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(first(z0, z1), x1)) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(from(z0), x1)) -> c6(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c6(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(x0, from(x1))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), from(x1))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(first(x0, cons(from(z0), x2))) -> c5(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(0, x2))) -> c5(A__FIRST(mark(x0), cons(0, x2)), MARK(x0)) MARK(first(x0, cons(nil, x2))) -> c5(A__FIRST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(first(x0, cons(s(z0), x2))) -> c5(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(first(first(z0, z1), cons(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(first(z0, z1))) MARK(first(from(z0), cons(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(first(s(z0), cons(x1, x2))) -> c5(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(s(z0))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(first(x0, first(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(first(x0, first(z0, z1)))) MARK(first(first(x0, from(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(first(x0, from(z0)))) MARK(first(first(x0, 0), x2)) -> c5(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(first(x0, 0))) MARK(first(first(x0, nil), x2)) -> c5(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(first(x0, nil))) MARK(first(first(x0, s(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(first(x0, s(z0)))) MARK(first(first(x0, cons(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(first(x0, cons(z0, z1)))) MARK(first(first(first(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(first(first(z0, z1), x1))) MARK(first(first(from(z0), x1), x2)) -> c5(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(first(from(z0), x1))) MARK(first(first(0, x1), x2)) -> c5(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(first(0, x1))) MARK(first(first(nil, x1), x2)) -> c5(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(first(nil, x1))) MARK(first(first(s(z0), x1), x2)) -> c5(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(first(s(z0), x1))) MARK(first(first(cons(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(first(cons(z0, z1), x1))) MARK(first(first(x0, x1), 0)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), nil)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), s(z0))) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), x2)) -> c5(MARK(first(x0, x1))) MARK(first(from(first(z0, z1)), x1)) -> c5(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(from(first(z0, z1)))) MARK(first(from(from(z0)), x1)) -> c5(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(first(from(0), x1)) -> c5(A__FIRST(a__from(0), mark(x1)), MARK(from(0))) MARK(first(from(nil), x1)) -> c5(A__FIRST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(first(from(s(z0)), x1)) -> c5(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(from(s(z0)))) MARK(first(from(cons(z0, z1)), x1)) -> c5(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(first(from(x0), x1)) -> c5(MARK(from(x0))) MARK(first(from(x0), 0)) -> c5(MARK(from(x0))) MARK(first(from(x0), nil)) -> c5(MARK(from(x0))) MARK(first(from(x0), s(z0))) -> c5(MARK(from(x0))) MARK(first(s(first(z0, z1)), x1)) -> c5(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(s(first(z0, z1)))) MARK(first(s(from(z0)), x1)) -> c5(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(s(from(z0)))) MARK(first(s(0), x1)) -> c5(A__FIRST(s(0), mark(x1)), MARK(s(0))) MARK(first(s(nil), x1)) -> c5(A__FIRST(s(nil), mark(x1)), MARK(s(nil))) MARK(first(s(s(z0)), x1)) -> c5(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(s(s(z0)))) MARK(first(s(cons(z0, z1)), x1)) -> c5(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(s(cons(z0, z1)))) MARK(first(s(x0), x1)) -> c5(MARK(s(x0))) MARK(first(s(x0), 0)) -> c5(MARK(s(x0))) MARK(first(s(x0), nil)) -> c5(MARK(s(x0))) MARK(first(s(x0), s(z0))) -> c5(MARK(s(x0))) MARK(first(x0, first(x1, first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(first(x1, first(z0, z1)))) MARK(first(x0, first(x1, from(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(first(x1, from(z0)))) MARK(first(x0, first(x1, 0))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(first(x1, 0))) MARK(first(x0, first(x1, nil))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(first(x1, nil))) MARK(first(x0, first(x1, s(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(first(x1, s(z0)))) MARK(first(x0, first(x1, cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(first(x1, cons(z0, z1)))) MARK(first(x0, first(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(first(first(z0, z1), x2))) MARK(first(x0, first(from(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(first(from(z0), x2))) MARK(first(x0, first(0, x2))) -> c6(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(first(0, x2))) MARK(first(x0, first(nil, x2))) -> c6(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(first(nil, x2))) MARK(first(x0, first(s(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(first(s(z0), x2))) MARK(first(x0, first(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(first(cons(z0, z1), x2))) MARK(first(first(z0, z1), first(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(from(z0), first(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(s(z0), first(x1, x2))) -> c6(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(x0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(nil, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(cons(z0, z1), first(x1, x2))) -> c6(MARK(first(x1, x2))) S tuples: A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(z0))) -> c6(A__FIRST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(first(x0, cons(z0, z1))) -> c6(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(first(z0, z1), x1)) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(from(z0), x1)) -> c6(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c6(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(x0, from(x1))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), from(x1))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(first(x0, cons(from(z0), x2))) -> c5(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(0, x2))) -> c5(A__FIRST(mark(x0), cons(0, x2)), MARK(x0)) MARK(first(x0, cons(nil, x2))) -> c5(A__FIRST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(first(x0, cons(s(z0), x2))) -> c5(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(first(first(z0, z1), cons(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(first(z0, z1))) MARK(first(from(z0), cons(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(first(s(z0), cons(x1, x2))) -> c5(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(s(z0))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(first(x0, first(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(first(x0, first(z0, z1)))) MARK(first(first(x0, from(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(first(x0, from(z0)))) MARK(first(first(x0, 0), x2)) -> c5(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(first(x0, 0))) MARK(first(first(x0, nil), x2)) -> c5(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(first(x0, nil))) MARK(first(first(x0, s(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(first(x0, s(z0)))) MARK(first(first(x0, cons(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(first(x0, cons(z0, z1)))) MARK(first(first(first(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(first(first(z0, z1), x1))) MARK(first(first(from(z0), x1), x2)) -> c5(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(first(from(z0), x1))) MARK(first(first(0, x1), x2)) -> c5(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(first(0, x1))) MARK(first(first(nil, x1), x2)) -> c5(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(first(nil, x1))) MARK(first(first(s(z0), x1), x2)) -> c5(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(first(s(z0), x1))) MARK(first(first(cons(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(first(cons(z0, z1), x1))) MARK(first(first(x0, x1), 0)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), nil)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), s(z0))) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), x2)) -> c5(MARK(first(x0, x1))) MARK(first(from(first(z0, z1)), x1)) -> c5(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(from(first(z0, z1)))) MARK(first(from(from(z0)), x1)) -> c5(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(first(from(0), x1)) -> c5(A__FIRST(a__from(0), mark(x1)), MARK(from(0))) MARK(first(from(nil), x1)) -> c5(A__FIRST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(first(from(s(z0)), x1)) -> c5(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(from(s(z0)))) MARK(first(from(cons(z0, z1)), x1)) -> c5(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(first(from(x0), x1)) -> c5(MARK(from(x0))) MARK(first(from(x0), 0)) -> c5(MARK(from(x0))) MARK(first(from(x0), nil)) -> c5(MARK(from(x0))) MARK(first(from(x0), s(z0))) -> c5(MARK(from(x0))) MARK(first(s(first(z0, z1)), x1)) -> c5(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(s(first(z0, z1)))) MARK(first(s(from(z0)), x1)) -> c5(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(s(from(z0)))) MARK(first(s(0), x1)) -> c5(A__FIRST(s(0), mark(x1)), MARK(s(0))) MARK(first(s(nil), x1)) -> c5(A__FIRST(s(nil), mark(x1)), MARK(s(nil))) MARK(first(s(s(z0)), x1)) -> c5(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(s(s(z0)))) MARK(first(s(cons(z0, z1)), x1)) -> c5(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(s(cons(z0, z1)))) MARK(first(s(x0), x1)) -> c5(MARK(s(x0))) MARK(first(s(x0), 0)) -> c5(MARK(s(x0))) MARK(first(s(x0), nil)) -> c5(MARK(s(x0))) MARK(first(s(x0), s(z0))) -> c5(MARK(s(x0))) MARK(first(x0, first(x1, first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(first(x1, first(z0, z1)))) MARK(first(x0, first(x1, from(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(first(x1, from(z0)))) MARK(first(x0, first(x1, 0))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(first(x1, 0))) MARK(first(x0, first(x1, nil))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(first(x1, nil))) MARK(first(x0, first(x1, s(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(first(x1, s(z0)))) MARK(first(x0, first(x1, cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(first(x1, cons(z0, z1)))) MARK(first(x0, first(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(first(first(z0, z1), x2))) MARK(first(x0, first(from(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(first(from(z0), x2))) MARK(first(x0, first(0, x2))) -> c6(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(first(0, x2))) MARK(first(x0, first(nil, x2))) -> c6(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(first(nil, x2))) MARK(first(x0, first(s(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(first(s(z0), x2))) MARK(first(x0, first(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(first(cons(z0, z1), x2))) MARK(first(first(z0, z1), first(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(from(z0), first(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(s(z0), first(x1, x2))) -> c6(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(x0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(nil, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(cons(z0, z1), first(x1, x2))) -> c6(MARK(first(x1, x2))) K tuples:none Defined Rule Symbols: a__first_2, a__from_1, mark_1 Defined Pair Symbols: A__FIRST_2, A__FROM_1, MARK_1 Compound Symbols: c1_1, c3_1, c7_2, c10_1, c11_1, c5_1, c6_2, c6_1, c5_2 ---------------------------------------- (109) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(first(x0, from(z0))) -> c6(A__FIRST(mark(x0), a__from(mark(z0))), MARK(from(z0))) by MARK(first(x0, from(x1))) -> c6(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(first(x0, from(x1))) -> c6(A__FIRST(mark(x0), from(mark(x1))), MARK(from(x1))) MARK(first(x0, from(first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(from(first(z0, z1)))) MARK(first(x0, from(from(z0)))) -> c6(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(first(x0, from(0))) -> c6(A__FIRST(mark(x0), a__from(0)), MARK(from(0))) MARK(first(x0, from(nil))) -> c6(A__FIRST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(first(x0, from(s(z0)))) -> c6(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(from(s(z0)))) MARK(first(x0, from(cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(first(first(z0, z1), from(x1))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(first(from(z0), from(x1))) -> c6(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(0, from(x1))) -> c6(A__FIRST(0, a__from(mark(x1))), MARK(from(x1))) MARK(first(nil, from(x1))) -> c6(A__FIRST(nil, a__from(mark(x1))), MARK(from(x1))) MARK(first(s(z0), from(x1))) -> c6(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(cons(z0, z1), from(x1))) -> c6(A__FIRST(cons(mark(z0), z1), a__from(mark(x1))), MARK(from(x1))) MARK(first(x0, from(x1))) -> c6(MARK(from(x1))) ---------------------------------------- (110) Obligation: Complexity Dependency Tuples Problem Rules: a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(0) -> 0 mark(nil) -> nil mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c6(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(first(z0, z1), x1)) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(from(z0), x1)) -> c6(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c6(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(x0, from(x1))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), from(x1))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(first(x0, cons(from(z0), x2))) -> c5(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(0, x2))) -> c5(A__FIRST(mark(x0), cons(0, x2)), MARK(x0)) MARK(first(x0, cons(nil, x2))) -> c5(A__FIRST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(first(x0, cons(s(z0), x2))) -> c5(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(first(first(z0, z1), cons(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(first(z0, z1))) MARK(first(from(z0), cons(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(first(s(z0), cons(x1, x2))) -> c5(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(s(z0))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(first(x0, first(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(first(x0, first(z0, z1)))) MARK(first(first(x0, from(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(first(x0, from(z0)))) MARK(first(first(x0, 0), x2)) -> c5(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(first(x0, 0))) MARK(first(first(x0, nil), x2)) -> c5(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(first(x0, nil))) MARK(first(first(x0, s(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(first(x0, s(z0)))) MARK(first(first(x0, cons(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(first(x0, cons(z0, z1)))) MARK(first(first(first(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(first(first(z0, z1), x1))) MARK(first(first(from(z0), x1), x2)) -> c5(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(first(from(z0), x1))) MARK(first(first(0, x1), x2)) -> c5(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(first(0, x1))) MARK(first(first(nil, x1), x2)) -> c5(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(first(nil, x1))) MARK(first(first(s(z0), x1), x2)) -> c5(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(first(s(z0), x1))) MARK(first(first(cons(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(first(cons(z0, z1), x1))) MARK(first(first(x0, x1), 0)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), nil)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), s(z0))) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), x2)) -> c5(MARK(first(x0, x1))) MARK(first(from(first(z0, z1)), x1)) -> c5(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(from(first(z0, z1)))) MARK(first(from(from(z0)), x1)) -> c5(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(first(from(0), x1)) -> c5(A__FIRST(a__from(0), mark(x1)), MARK(from(0))) MARK(first(from(nil), x1)) -> c5(A__FIRST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(first(from(s(z0)), x1)) -> c5(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(from(s(z0)))) MARK(first(from(cons(z0, z1)), x1)) -> c5(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(first(from(x0), x1)) -> c5(MARK(from(x0))) MARK(first(from(x0), 0)) -> c5(MARK(from(x0))) MARK(first(from(x0), nil)) -> c5(MARK(from(x0))) MARK(first(from(x0), s(z0))) -> c5(MARK(from(x0))) MARK(first(s(first(z0, z1)), x1)) -> c5(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(s(first(z0, z1)))) MARK(first(s(from(z0)), x1)) -> c5(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(s(from(z0)))) MARK(first(s(0), x1)) -> c5(A__FIRST(s(0), mark(x1)), MARK(s(0))) MARK(first(s(nil), x1)) -> c5(A__FIRST(s(nil), mark(x1)), MARK(s(nil))) MARK(first(s(s(z0)), x1)) -> c5(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(s(s(z0)))) MARK(first(s(cons(z0, z1)), x1)) -> c5(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(s(cons(z0, z1)))) MARK(first(s(x0), x1)) -> c5(MARK(s(x0))) MARK(first(s(x0), 0)) -> c5(MARK(s(x0))) MARK(first(s(x0), nil)) -> c5(MARK(s(x0))) MARK(first(s(x0), s(z0))) -> c5(MARK(s(x0))) MARK(first(x0, first(x1, first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(first(x1, first(z0, z1)))) MARK(first(x0, first(x1, from(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(first(x1, from(z0)))) MARK(first(x0, first(x1, 0))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(first(x1, 0))) MARK(first(x0, first(x1, nil))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(first(x1, nil))) MARK(first(x0, first(x1, s(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(first(x1, s(z0)))) MARK(first(x0, first(x1, cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(first(x1, cons(z0, z1)))) MARK(first(x0, first(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(first(first(z0, z1), x2))) MARK(first(x0, first(from(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(first(from(z0), x2))) MARK(first(x0, first(0, x2))) -> c6(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(first(0, x2))) MARK(first(x0, first(nil, x2))) -> c6(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(first(nil, x2))) MARK(first(x0, first(s(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(first(s(z0), x2))) MARK(first(x0, first(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(first(cons(z0, z1), x2))) MARK(first(first(z0, z1), first(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(from(z0), first(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(s(z0), first(x1, x2))) -> c6(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(x0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(nil, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(cons(z0, z1), first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(x0, from(x1))) -> c6(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(first(x0, from(x1))) -> c6(A__FIRST(mark(x0), from(mark(x1))), MARK(from(x1))) MARK(first(x0, from(first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(from(first(z0, z1)))) MARK(first(x0, from(from(z0)))) -> c6(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(first(x0, from(0))) -> c6(A__FIRST(mark(x0), a__from(0)), MARK(from(0))) MARK(first(x0, from(nil))) -> c6(A__FIRST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(first(x0, from(s(z0)))) -> c6(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(from(s(z0)))) MARK(first(x0, from(cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(first(first(z0, z1), from(x1))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(first(from(z0), from(x1))) -> c6(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(0, from(x1))) -> c6(A__FIRST(0, a__from(mark(x1))), MARK(from(x1))) MARK(first(nil, from(x1))) -> c6(A__FIRST(nil, a__from(mark(x1))), MARK(from(x1))) MARK(first(s(z0), from(x1))) -> c6(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(cons(z0, z1), from(x1))) -> c6(A__FIRST(cons(mark(z0), z1), a__from(mark(x1))), MARK(from(x1))) MARK(first(x0, from(x1))) -> c6(MARK(from(x1))) S tuples: A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c6(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(first(z0, z1), x1)) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(from(z0), x1)) -> c6(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c6(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(x0, from(x1))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), from(x1))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(first(x0, cons(from(z0), x2))) -> c5(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(0, x2))) -> c5(A__FIRST(mark(x0), cons(0, x2)), MARK(x0)) MARK(first(x0, cons(nil, x2))) -> c5(A__FIRST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(first(x0, cons(s(z0), x2))) -> c5(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(first(first(z0, z1), cons(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(first(z0, z1))) MARK(first(from(z0), cons(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(first(s(z0), cons(x1, x2))) -> c5(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(s(z0))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(first(x0, first(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(first(x0, first(z0, z1)))) MARK(first(first(x0, from(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(first(x0, from(z0)))) MARK(first(first(x0, 0), x2)) -> c5(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(first(x0, 0))) MARK(first(first(x0, nil), x2)) -> c5(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(first(x0, nil))) MARK(first(first(x0, s(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(first(x0, s(z0)))) MARK(first(first(x0, cons(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(first(x0, cons(z0, z1)))) MARK(first(first(first(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(first(first(z0, z1), x1))) MARK(first(first(from(z0), x1), x2)) -> c5(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(first(from(z0), x1))) MARK(first(first(0, x1), x2)) -> c5(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(first(0, x1))) MARK(first(first(nil, x1), x2)) -> c5(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(first(nil, x1))) MARK(first(first(s(z0), x1), x2)) -> c5(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(first(s(z0), x1))) MARK(first(first(cons(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(first(cons(z0, z1), x1))) MARK(first(first(x0, x1), 0)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), nil)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), s(z0))) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), x2)) -> c5(MARK(first(x0, x1))) MARK(first(from(first(z0, z1)), x1)) -> c5(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(from(first(z0, z1)))) MARK(first(from(from(z0)), x1)) -> c5(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(first(from(0), x1)) -> c5(A__FIRST(a__from(0), mark(x1)), MARK(from(0))) MARK(first(from(nil), x1)) -> c5(A__FIRST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(first(from(s(z0)), x1)) -> c5(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(from(s(z0)))) MARK(first(from(cons(z0, z1)), x1)) -> c5(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(first(from(x0), x1)) -> c5(MARK(from(x0))) MARK(first(from(x0), 0)) -> c5(MARK(from(x0))) MARK(first(from(x0), nil)) -> c5(MARK(from(x0))) MARK(first(from(x0), s(z0))) -> c5(MARK(from(x0))) MARK(first(s(first(z0, z1)), x1)) -> c5(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(s(first(z0, z1)))) MARK(first(s(from(z0)), x1)) -> c5(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(s(from(z0)))) MARK(first(s(0), x1)) -> c5(A__FIRST(s(0), mark(x1)), MARK(s(0))) MARK(first(s(nil), x1)) -> c5(A__FIRST(s(nil), mark(x1)), MARK(s(nil))) MARK(first(s(s(z0)), x1)) -> c5(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(s(s(z0)))) MARK(first(s(cons(z0, z1)), x1)) -> c5(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(s(cons(z0, z1)))) MARK(first(s(x0), x1)) -> c5(MARK(s(x0))) MARK(first(s(x0), 0)) -> c5(MARK(s(x0))) MARK(first(s(x0), nil)) -> c5(MARK(s(x0))) MARK(first(s(x0), s(z0))) -> c5(MARK(s(x0))) MARK(first(x0, first(x1, first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(first(x1, first(z0, z1)))) MARK(first(x0, first(x1, from(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(first(x1, from(z0)))) MARK(first(x0, first(x1, 0))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(first(x1, 0))) MARK(first(x0, first(x1, nil))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(first(x1, nil))) MARK(first(x0, first(x1, s(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(first(x1, s(z0)))) MARK(first(x0, first(x1, cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(first(x1, cons(z0, z1)))) MARK(first(x0, first(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(first(first(z0, z1), x2))) MARK(first(x0, first(from(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(first(from(z0), x2))) MARK(first(x0, first(0, x2))) -> c6(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(first(0, x2))) MARK(first(x0, first(nil, x2))) -> c6(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(first(nil, x2))) MARK(first(x0, first(s(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(first(s(z0), x2))) MARK(first(x0, first(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(first(cons(z0, z1), x2))) MARK(first(first(z0, z1), first(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(from(z0), first(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(s(z0), first(x1, x2))) -> c6(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(x0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(nil, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(cons(z0, z1), first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(x0, from(x1))) -> c6(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(first(x0, from(x1))) -> c6(A__FIRST(mark(x0), from(mark(x1))), MARK(from(x1))) MARK(first(x0, from(first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(from(first(z0, z1)))) MARK(first(x0, from(from(z0)))) -> c6(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(first(x0, from(0))) -> c6(A__FIRST(mark(x0), a__from(0)), MARK(from(0))) MARK(first(x0, from(nil))) -> c6(A__FIRST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(first(x0, from(s(z0)))) -> c6(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(from(s(z0)))) MARK(first(x0, from(cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(first(first(z0, z1), from(x1))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(first(from(z0), from(x1))) -> c6(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(0, from(x1))) -> c6(A__FIRST(0, a__from(mark(x1))), MARK(from(x1))) MARK(first(nil, from(x1))) -> c6(A__FIRST(nil, a__from(mark(x1))), MARK(from(x1))) MARK(first(s(z0), from(x1))) -> c6(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(cons(z0, z1), from(x1))) -> c6(A__FIRST(cons(mark(z0), z1), a__from(mark(x1))), MARK(from(x1))) MARK(first(x0, from(x1))) -> c6(MARK(from(x1))) K tuples:none Defined Rule Symbols: a__first_2, a__from_1, mark_1 Defined Pair Symbols: A__FIRST_2, A__FROM_1, MARK_1 Compound Symbols: c1_1, c3_1, c7_2, c10_1, c11_1, c5_1, c6_2, c6_1, c5_2 ---------------------------------------- (111) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (112) Obligation: Complexity Dependency Tuples Problem Rules: a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(0) -> 0 mark(nil) -> nil mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c6(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(first(z0, z1), x1)) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(from(z0), x1)) -> c6(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c6(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(x0, from(x1))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), from(x1))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(first(x0, cons(from(z0), x2))) -> c5(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(0, x2))) -> c5(A__FIRST(mark(x0), cons(0, x2)), MARK(x0)) MARK(first(x0, cons(nil, x2))) -> c5(A__FIRST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(first(x0, cons(s(z0), x2))) -> c5(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(first(first(z0, z1), cons(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(first(z0, z1))) MARK(first(from(z0), cons(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(first(s(z0), cons(x1, x2))) -> c5(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(s(z0))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(first(x0, first(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(first(x0, first(z0, z1)))) MARK(first(first(x0, from(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(first(x0, from(z0)))) MARK(first(first(x0, 0), x2)) -> c5(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(first(x0, 0))) MARK(first(first(x0, nil), x2)) -> c5(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(first(x0, nil))) MARK(first(first(x0, s(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(first(x0, s(z0)))) MARK(first(first(x0, cons(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(first(x0, cons(z0, z1)))) MARK(first(first(first(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(first(first(z0, z1), x1))) MARK(first(first(from(z0), x1), x2)) -> c5(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(first(from(z0), x1))) MARK(first(first(0, x1), x2)) -> c5(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(first(0, x1))) MARK(first(first(nil, x1), x2)) -> c5(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(first(nil, x1))) MARK(first(first(s(z0), x1), x2)) -> c5(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(first(s(z0), x1))) MARK(first(first(cons(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(first(cons(z0, z1), x1))) MARK(first(first(x0, x1), 0)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), nil)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), s(z0))) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), x2)) -> c5(MARK(first(x0, x1))) MARK(first(from(first(z0, z1)), x1)) -> c5(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(from(first(z0, z1)))) MARK(first(from(from(z0)), x1)) -> c5(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(first(from(0), x1)) -> c5(A__FIRST(a__from(0), mark(x1)), MARK(from(0))) MARK(first(from(nil), x1)) -> c5(A__FIRST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(first(from(s(z0)), x1)) -> c5(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(from(s(z0)))) MARK(first(from(cons(z0, z1)), x1)) -> c5(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(first(from(x0), x1)) -> c5(MARK(from(x0))) MARK(first(from(x0), 0)) -> c5(MARK(from(x0))) MARK(first(from(x0), nil)) -> c5(MARK(from(x0))) MARK(first(from(x0), s(z0))) -> c5(MARK(from(x0))) MARK(first(s(first(z0, z1)), x1)) -> c5(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(s(first(z0, z1)))) MARK(first(s(from(z0)), x1)) -> c5(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(s(from(z0)))) MARK(first(s(0), x1)) -> c5(A__FIRST(s(0), mark(x1)), MARK(s(0))) MARK(first(s(nil), x1)) -> c5(A__FIRST(s(nil), mark(x1)), MARK(s(nil))) MARK(first(s(s(z0)), x1)) -> c5(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(s(s(z0)))) MARK(first(s(cons(z0, z1)), x1)) -> c5(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(s(cons(z0, z1)))) MARK(first(s(x0), x1)) -> c5(MARK(s(x0))) MARK(first(s(x0), 0)) -> c5(MARK(s(x0))) MARK(first(s(x0), nil)) -> c5(MARK(s(x0))) MARK(first(s(x0), s(z0))) -> c5(MARK(s(x0))) MARK(first(x0, first(x1, first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(first(x1, first(z0, z1)))) MARK(first(x0, first(x1, from(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(first(x1, from(z0)))) MARK(first(x0, first(x1, 0))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(first(x1, 0))) MARK(first(x0, first(x1, nil))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(first(x1, nil))) MARK(first(x0, first(x1, s(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(first(x1, s(z0)))) MARK(first(x0, first(x1, cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(first(x1, cons(z0, z1)))) MARK(first(x0, first(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(first(first(z0, z1), x2))) MARK(first(x0, first(from(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(first(from(z0), x2))) MARK(first(x0, first(0, x2))) -> c6(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(first(0, x2))) MARK(first(x0, first(nil, x2))) -> c6(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(first(nil, x2))) MARK(first(x0, first(s(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(first(s(z0), x2))) MARK(first(x0, first(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(first(cons(z0, z1), x2))) MARK(first(first(z0, z1), first(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(from(z0), first(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(s(z0), first(x1, x2))) -> c6(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(x0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(nil, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(cons(z0, z1), first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(x0, from(x1))) -> c6(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(first(x0, from(first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(from(first(z0, z1)))) MARK(first(x0, from(from(z0)))) -> c6(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(first(x0, from(0))) -> c6(A__FIRST(mark(x0), a__from(0)), MARK(from(0))) MARK(first(x0, from(nil))) -> c6(A__FIRST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(first(x0, from(s(z0)))) -> c6(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(from(s(z0)))) MARK(first(x0, from(cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(first(first(z0, z1), from(x1))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(first(from(z0), from(x1))) -> c6(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(s(z0), from(x1))) -> c6(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(x0, from(x1))) -> c6(MARK(from(x1))) MARK(first(0, from(x1))) -> c6(MARK(from(x1))) MARK(first(nil, from(x1))) -> c6(MARK(from(x1))) MARK(first(cons(z0, z1), from(x1))) -> c6(MARK(from(x1))) S tuples: A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c6(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(first(z0, z1), x1)) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(from(z0), x1)) -> c6(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c6(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(x0, from(x1))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), from(x1))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(first(x0, cons(from(z0), x2))) -> c5(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(0, x2))) -> c5(A__FIRST(mark(x0), cons(0, x2)), MARK(x0)) MARK(first(x0, cons(nil, x2))) -> c5(A__FIRST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(first(x0, cons(s(z0), x2))) -> c5(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(first(first(z0, z1), cons(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(first(z0, z1))) MARK(first(from(z0), cons(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(first(s(z0), cons(x1, x2))) -> c5(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(s(z0))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(first(x0, first(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(first(x0, first(z0, z1)))) MARK(first(first(x0, from(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(first(x0, from(z0)))) MARK(first(first(x0, 0), x2)) -> c5(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(first(x0, 0))) MARK(first(first(x0, nil), x2)) -> c5(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(first(x0, nil))) MARK(first(first(x0, s(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(first(x0, s(z0)))) MARK(first(first(x0, cons(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(first(x0, cons(z0, z1)))) MARK(first(first(first(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(first(first(z0, z1), x1))) MARK(first(first(from(z0), x1), x2)) -> c5(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(first(from(z0), x1))) MARK(first(first(0, x1), x2)) -> c5(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(first(0, x1))) MARK(first(first(nil, x1), x2)) -> c5(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(first(nil, x1))) MARK(first(first(s(z0), x1), x2)) -> c5(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(first(s(z0), x1))) MARK(first(first(cons(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(first(cons(z0, z1), x1))) MARK(first(first(x0, x1), 0)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), nil)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), s(z0))) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), x2)) -> c5(MARK(first(x0, x1))) MARK(first(from(first(z0, z1)), x1)) -> c5(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(from(first(z0, z1)))) MARK(first(from(from(z0)), x1)) -> c5(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(first(from(0), x1)) -> c5(A__FIRST(a__from(0), mark(x1)), MARK(from(0))) MARK(first(from(nil), x1)) -> c5(A__FIRST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(first(from(s(z0)), x1)) -> c5(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(from(s(z0)))) MARK(first(from(cons(z0, z1)), x1)) -> c5(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(first(from(x0), x1)) -> c5(MARK(from(x0))) MARK(first(from(x0), 0)) -> c5(MARK(from(x0))) MARK(first(from(x0), nil)) -> c5(MARK(from(x0))) MARK(first(from(x0), s(z0))) -> c5(MARK(from(x0))) MARK(first(s(first(z0, z1)), x1)) -> c5(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(s(first(z0, z1)))) MARK(first(s(from(z0)), x1)) -> c5(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(s(from(z0)))) MARK(first(s(0), x1)) -> c5(A__FIRST(s(0), mark(x1)), MARK(s(0))) MARK(first(s(nil), x1)) -> c5(A__FIRST(s(nil), mark(x1)), MARK(s(nil))) MARK(first(s(s(z0)), x1)) -> c5(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(s(s(z0)))) MARK(first(s(cons(z0, z1)), x1)) -> c5(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(s(cons(z0, z1)))) MARK(first(s(x0), x1)) -> c5(MARK(s(x0))) MARK(first(s(x0), 0)) -> c5(MARK(s(x0))) MARK(first(s(x0), nil)) -> c5(MARK(s(x0))) MARK(first(s(x0), s(z0))) -> c5(MARK(s(x0))) MARK(first(x0, first(x1, first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(first(x1, first(z0, z1)))) MARK(first(x0, first(x1, from(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(first(x1, from(z0)))) MARK(first(x0, first(x1, 0))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(first(x1, 0))) MARK(first(x0, first(x1, nil))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(first(x1, nil))) MARK(first(x0, first(x1, s(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(first(x1, s(z0)))) MARK(first(x0, first(x1, cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(first(x1, cons(z0, z1)))) MARK(first(x0, first(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(first(first(z0, z1), x2))) MARK(first(x0, first(from(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(first(from(z0), x2))) MARK(first(x0, first(0, x2))) -> c6(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(first(0, x2))) MARK(first(x0, first(nil, x2))) -> c6(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(first(nil, x2))) MARK(first(x0, first(s(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(first(s(z0), x2))) MARK(first(x0, first(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(first(cons(z0, z1), x2))) MARK(first(first(z0, z1), first(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(from(z0), first(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(s(z0), first(x1, x2))) -> c6(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(x0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(nil, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(cons(z0, z1), first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(x0, from(x1))) -> c6(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(first(x0, from(first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(from(first(z0, z1)))) MARK(first(x0, from(from(z0)))) -> c6(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(first(x0, from(0))) -> c6(A__FIRST(mark(x0), a__from(0)), MARK(from(0))) MARK(first(x0, from(nil))) -> c6(A__FIRST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(first(x0, from(s(z0)))) -> c6(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(from(s(z0)))) MARK(first(x0, from(cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(first(first(z0, z1), from(x1))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(first(from(z0), from(x1))) -> c6(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(s(z0), from(x1))) -> c6(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(x0, from(x1))) -> c6(MARK(from(x1))) MARK(first(0, from(x1))) -> c6(MARK(from(x1))) MARK(first(nil, from(x1))) -> c6(MARK(from(x1))) MARK(first(cons(z0, z1), from(x1))) -> c6(MARK(from(x1))) K tuples:none Defined Rule Symbols: a__first_2, a__from_1, mark_1 Defined Pair Symbols: A__FIRST_2, A__FROM_1, MARK_1 Compound Symbols: c1_1, c3_1, c7_2, c10_1, c11_1, c5_1, c6_2, c6_1, c5_2 ---------------------------------------- (113) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(first(x0, cons(z0, z1))) -> c6(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) by MARK(first(x0, cons(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(cons(first(z0, z1), x2))) MARK(first(x0, cons(from(z0), x2))) -> c6(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(first(x0, cons(0, x2))) -> c6(A__FIRST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(first(x0, cons(nil, x2))) -> c6(A__FIRST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(first(x0, cons(s(z0), x2))) -> c6(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(cons(s(z0), x2))) MARK(first(x0, cons(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(first(first(z0, z1), cons(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(from(z0), cons(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(0, cons(x1, x2))) -> c6(A__FIRST(0, cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(nil, cons(x1, x2))) -> c6(A__FIRST(nil, cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(s(z0), cons(x1, x2))) -> c6(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c6(A__FIRST(cons(mark(z0), z1), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(x0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) ---------------------------------------- (114) Obligation: Complexity Dependency Tuples Problem Rules: a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(0) -> 0 mark(nil) -> nil mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(first(z0, z1), x1)) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(from(z0), x1)) -> c6(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c6(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(x0, from(x1))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), from(x1))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(first(x0, cons(from(z0), x2))) -> c5(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(0, x2))) -> c5(A__FIRST(mark(x0), cons(0, x2)), MARK(x0)) MARK(first(x0, cons(nil, x2))) -> c5(A__FIRST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(first(x0, cons(s(z0), x2))) -> c5(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(first(first(z0, z1), cons(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(first(z0, z1))) MARK(first(from(z0), cons(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(first(s(z0), cons(x1, x2))) -> c5(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(s(z0))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(first(x0, first(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(first(x0, first(z0, z1)))) MARK(first(first(x0, from(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(first(x0, from(z0)))) MARK(first(first(x0, 0), x2)) -> c5(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(first(x0, 0))) MARK(first(first(x0, nil), x2)) -> c5(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(first(x0, nil))) MARK(first(first(x0, s(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(first(x0, s(z0)))) MARK(first(first(x0, cons(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(first(x0, cons(z0, z1)))) MARK(first(first(first(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(first(first(z0, z1), x1))) MARK(first(first(from(z0), x1), x2)) -> c5(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(first(from(z0), x1))) MARK(first(first(0, x1), x2)) -> c5(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(first(0, x1))) MARK(first(first(nil, x1), x2)) -> c5(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(first(nil, x1))) MARK(first(first(s(z0), x1), x2)) -> c5(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(first(s(z0), x1))) MARK(first(first(cons(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(first(cons(z0, z1), x1))) MARK(first(first(x0, x1), 0)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), nil)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), s(z0))) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), x2)) -> c5(MARK(first(x0, x1))) MARK(first(from(first(z0, z1)), x1)) -> c5(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(from(first(z0, z1)))) MARK(first(from(from(z0)), x1)) -> c5(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(first(from(0), x1)) -> c5(A__FIRST(a__from(0), mark(x1)), MARK(from(0))) MARK(first(from(nil), x1)) -> c5(A__FIRST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(first(from(s(z0)), x1)) -> c5(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(from(s(z0)))) MARK(first(from(cons(z0, z1)), x1)) -> c5(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(first(from(x0), x1)) -> c5(MARK(from(x0))) MARK(first(from(x0), 0)) -> c5(MARK(from(x0))) MARK(first(from(x0), nil)) -> c5(MARK(from(x0))) MARK(first(from(x0), s(z0))) -> c5(MARK(from(x0))) MARK(first(s(first(z0, z1)), x1)) -> c5(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(s(first(z0, z1)))) MARK(first(s(from(z0)), x1)) -> c5(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(s(from(z0)))) MARK(first(s(0), x1)) -> c5(A__FIRST(s(0), mark(x1)), MARK(s(0))) MARK(first(s(nil), x1)) -> c5(A__FIRST(s(nil), mark(x1)), MARK(s(nil))) MARK(first(s(s(z0)), x1)) -> c5(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(s(s(z0)))) MARK(first(s(cons(z0, z1)), x1)) -> c5(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(s(cons(z0, z1)))) MARK(first(s(x0), x1)) -> c5(MARK(s(x0))) MARK(first(s(x0), 0)) -> c5(MARK(s(x0))) MARK(first(s(x0), nil)) -> c5(MARK(s(x0))) MARK(first(s(x0), s(z0))) -> c5(MARK(s(x0))) MARK(first(x0, first(x1, first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(first(x1, first(z0, z1)))) MARK(first(x0, first(x1, from(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(first(x1, from(z0)))) MARK(first(x0, first(x1, 0))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(first(x1, 0))) MARK(first(x0, first(x1, nil))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(first(x1, nil))) MARK(first(x0, first(x1, s(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(first(x1, s(z0)))) MARK(first(x0, first(x1, cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(first(x1, cons(z0, z1)))) MARK(first(x0, first(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(first(first(z0, z1), x2))) MARK(first(x0, first(from(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(first(from(z0), x2))) MARK(first(x0, first(0, x2))) -> c6(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(first(0, x2))) MARK(first(x0, first(nil, x2))) -> c6(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(first(nil, x2))) MARK(first(x0, first(s(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(first(s(z0), x2))) MARK(first(x0, first(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(first(cons(z0, z1), x2))) MARK(first(first(z0, z1), first(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(from(z0), first(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(s(z0), first(x1, x2))) -> c6(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(x0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(nil, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(cons(z0, z1), first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(x0, from(x1))) -> c6(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(first(x0, from(first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(from(first(z0, z1)))) MARK(first(x0, from(from(z0)))) -> c6(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(first(x0, from(0))) -> c6(A__FIRST(mark(x0), a__from(0)), MARK(from(0))) MARK(first(x0, from(nil))) -> c6(A__FIRST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(first(x0, from(s(z0)))) -> c6(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(from(s(z0)))) MARK(first(x0, from(cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(first(first(z0, z1), from(x1))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(first(from(z0), from(x1))) -> c6(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(s(z0), from(x1))) -> c6(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(x0, from(x1))) -> c6(MARK(from(x1))) MARK(first(0, from(x1))) -> c6(MARK(from(x1))) MARK(first(nil, from(x1))) -> c6(MARK(from(x1))) MARK(first(cons(z0, z1), from(x1))) -> c6(MARK(from(x1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(cons(first(z0, z1), x2))) MARK(first(x0, cons(from(z0), x2))) -> c6(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(first(x0, cons(0, x2))) -> c6(A__FIRST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(first(x0, cons(nil, x2))) -> c6(A__FIRST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(first(x0, cons(s(z0), x2))) -> c6(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(cons(s(z0), x2))) MARK(first(x0, cons(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(first(first(z0, z1), cons(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(from(z0), cons(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(0, cons(x1, x2))) -> c6(A__FIRST(0, cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(nil, cons(x1, x2))) -> c6(A__FIRST(nil, cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(s(z0), cons(x1, x2))) -> c6(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c6(A__FIRST(cons(mark(z0), z1), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(x0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) S tuples: A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(first(z0, z1), x1)) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(from(z0), x1)) -> c6(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c6(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(x0, from(x1))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), from(x1))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(first(x0, cons(from(z0), x2))) -> c5(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(0, x2))) -> c5(A__FIRST(mark(x0), cons(0, x2)), MARK(x0)) MARK(first(x0, cons(nil, x2))) -> c5(A__FIRST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(first(x0, cons(s(z0), x2))) -> c5(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(first(first(z0, z1), cons(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(first(z0, z1))) MARK(first(from(z0), cons(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(first(s(z0), cons(x1, x2))) -> c5(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(s(z0))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(first(x0, first(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(first(x0, first(z0, z1)))) MARK(first(first(x0, from(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(first(x0, from(z0)))) MARK(first(first(x0, 0), x2)) -> c5(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(first(x0, 0))) MARK(first(first(x0, nil), x2)) -> c5(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(first(x0, nil))) MARK(first(first(x0, s(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(first(x0, s(z0)))) MARK(first(first(x0, cons(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(first(x0, cons(z0, z1)))) MARK(first(first(first(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(first(first(z0, z1), x1))) MARK(first(first(from(z0), x1), x2)) -> c5(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(first(from(z0), x1))) MARK(first(first(0, x1), x2)) -> c5(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(first(0, x1))) MARK(first(first(nil, x1), x2)) -> c5(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(first(nil, x1))) MARK(first(first(s(z0), x1), x2)) -> c5(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(first(s(z0), x1))) MARK(first(first(cons(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(first(cons(z0, z1), x1))) MARK(first(first(x0, x1), 0)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), nil)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), s(z0))) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), x2)) -> c5(MARK(first(x0, x1))) MARK(first(from(first(z0, z1)), x1)) -> c5(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(from(first(z0, z1)))) MARK(first(from(from(z0)), x1)) -> c5(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(first(from(0), x1)) -> c5(A__FIRST(a__from(0), mark(x1)), MARK(from(0))) MARK(first(from(nil), x1)) -> c5(A__FIRST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(first(from(s(z0)), x1)) -> c5(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(from(s(z0)))) MARK(first(from(cons(z0, z1)), x1)) -> c5(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(first(from(x0), x1)) -> c5(MARK(from(x0))) MARK(first(from(x0), 0)) -> c5(MARK(from(x0))) MARK(first(from(x0), nil)) -> c5(MARK(from(x0))) MARK(first(from(x0), s(z0))) -> c5(MARK(from(x0))) MARK(first(s(first(z0, z1)), x1)) -> c5(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(s(first(z0, z1)))) MARK(first(s(from(z0)), x1)) -> c5(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(s(from(z0)))) MARK(first(s(0), x1)) -> c5(A__FIRST(s(0), mark(x1)), MARK(s(0))) MARK(first(s(nil), x1)) -> c5(A__FIRST(s(nil), mark(x1)), MARK(s(nil))) MARK(first(s(s(z0)), x1)) -> c5(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(s(s(z0)))) MARK(first(s(cons(z0, z1)), x1)) -> c5(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(s(cons(z0, z1)))) MARK(first(s(x0), x1)) -> c5(MARK(s(x0))) MARK(first(s(x0), 0)) -> c5(MARK(s(x0))) MARK(first(s(x0), nil)) -> c5(MARK(s(x0))) MARK(first(s(x0), s(z0))) -> c5(MARK(s(x0))) MARK(first(x0, first(x1, first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(first(x1, first(z0, z1)))) MARK(first(x0, first(x1, from(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(first(x1, from(z0)))) MARK(first(x0, first(x1, 0))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(first(x1, 0))) MARK(first(x0, first(x1, nil))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(first(x1, nil))) MARK(first(x0, first(x1, s(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(first(x1, s(z0)))) MARK(first(x0, first(x1, cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(first(x1, cons(z0, z1)))) MARK(first(x0, first(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(first(first(z0, z1), x2))) MARK(first(x0, first(from(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(first(from(z0), x2))) MARK(first(x0, first(0, x2))) -> c6(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(first(0, x2))) MARK(first(x0, first(nil, x2))) -> c6(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(first(nil, x2))) MARK(first(x0, first(s(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(first(s(z0), x2))) MARK(first(x0, first(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(first(cons(z0, z1), x2))) MARK(first(first(z0, z1), first(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(from(z0), first(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(s(z0), first(x1, x2))) -> c6(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(x0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(nil, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(cons(z0, z1), first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(x0, from(x1))) -> c6(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(first(x0, from(first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(from(first(z0, z1)))) MARK(first(x0, from(from(z0)))) -> c6(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(first(x0, from(0))) -> c6(A__FIRST(mark(x0), a__from(0)), MARK(from(0))) MARK(first(x0, from(nil))) -> c6(A__FIRST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(first(x0, from(s(z0)))) -> c6(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(from(s(z0)))) MARK(first(x0, from(cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(first(first(z0, z1), from(x1))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(first(from(z0), from(x1))) -> c6(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(s(z0), from(x1))) -> c6(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(x0, from(x1))) -> c6(MARK(from(x1))) MARK(first(0, from(x1))) -> c6(MARK(from(x1))) MARK(first(nil, from(x1))) -> c6(MARK(from(x1))) MARK(first(cons(z0, z1), from(x1))) -> c6(MARK(from(x1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(cons(first(z0, z1), x2))) MARK(first(x0, cons(from(z0), x2))) -> c6(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(first(x0, cons(0, x2))) -> c6(A__FIRST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(first(x0, cons(nil, x2))) -> c6(A__FIRST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(first(x0, cons(s(z0), x2))) -> c6(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(cons(s(z0), x2))) MARK(first(x0, cons(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(first(first(z0, z1), cons(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(from(z0), cons(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(0, cons(x1, x2))) -> c6(A__FIRST(0, cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(nil, cons(x1, x2))) -> c6(A__FIRST(nil, cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(s(z0), cons(x1, x2))) -> c6(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c6(A__FIRST(cons(mark(z0), z1), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(x0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) K tuples:none Defined Rule Symbols: a__first_2, a__from_1, mark_1 Defined Pair Symbols: A__FIRST_2, A__FROM_1, MARK_1 Compound Symbols: c1_1, c3_1, c7_2, c10_1, c11_1, c5_1, c6_2, c6_1, c5_2 ---------------------------------------- (115) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing tuple parts ---------------------------------------- (116) Obligation: Complexity Dependency Tuples Problem Rules: a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(0) -> 0 mark(nil) -> nil mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(first(z0, z1), x1)) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(from(z0), x1)) -> c6(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c6(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(x0, from(x1))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), from(x1))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(first(x0, cons(from(z0), x2))) -> c5(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(0, x2))) -> c5(A__FIRST(mark(x0), cons(0, x2)), MARK(x0)) MARK(first(x0, cons(nil, x2))) -> c5(A__FIRST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(first(x0, cons(s(z0), x2))) -> c5(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(first(first(z0, z1), cons(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(first(z0, z1))) MARK(first(from(z0), cons(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(first(s(z0), cons(x1, x2))) -> c5(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(s(z0))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(first(x0, first(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(first(x0, first(z0, z1)))) MARK(first(first(x0, from(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(first(x0, from(z0)))) MARK(first(first(x0, 0), x2)) -> c5(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(first(x0, 0))) MARK(first(first(x0, nil), x2)) -> c5(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(first(x0, nil))) MARK(first(first(x0, s(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(first(x0, s(z0)))) MARK(first(first(x0, cons(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(first(x0, cons(z0, z1)))) MARK(first(first(first(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(first(first(z0, z1), x1))) MARK(first(first(from(z0), x1), x2)) -> c5(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(first(from(z0), x1))) MARK(first(first(0, x1), x2)) -> c5(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(first(0, x1))) MARK(first(first(nil, x1), x2)) -> c5(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(first(nil, x1))) MARK(first(first(s(z0), x1), x2)) -> c5(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(first(s(z0), x1))) MARK(first(first(cons(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(first(cons(z0, z1), x1))) MARK(first(first(x0, x1), 0)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), nil)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), s(z0))) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), x2)) -> c5(MARK(first(x0, x1))) MARK(first(from(first(z0, z1)), x1)) -> c5(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(from(first(z0, z1)))) MARK(first(from(from(z0)), x1)) -> c5(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(first(from(0), x1)) -> c5(A__FIRST(a__from(0), mark(x1)), MARK(from(0))) MARK(first(from(nil), x1)) -> c5(A__FIRST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(first(from(s(z0)), x1)) -> c5(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(from(s(z0)))) MARK(first(from(cons(z0, z1)), x1)) -> c5(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(first(from(x0), x1)) -> c5(MARK(from(x0))) MARK(first(from(x0), 0)) -> c5(MARK(from(x0))) MARK(first(from(x0), nil)) -> c5(MARK(from(x0))) MARK(first(from(x0), s(z0))) -> c5(MARK(from(x0))) MARK(first(s(first(z0, z1)), x1)) -> c5(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(s(first(z0, z1)))) MARK(first(s(from(z0)), x1)) -> c5(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(s(from(z0)))) MARK(first(s(0), x1)) -> c5(A__FIRST(s(0), mark(x1)), MARK(s(0))) MARK(first(s(nil), x1)) -> c5(A__FIRST(s(nil), mark(x1)), MARK(s(nil))) MARK(first(s(s(z0)), x1)) -> c5(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(s(s(z0)))) MARK(first(s(cons(z0, z1)), x1)) -> c5(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(s(cons(z0, z1)))) MARK(first(s(x0), x1)) -> c5(MARK(s(x0))) MARK(first(s(x0), 0)) -> c5(MARK(s(x0))) MARK(first(s(x0), nil)) -> c5(MARK(s(x0))) MARK(first(s(x0), s(z0))) -> c5(MARK(s(x0))) MARK(first(x0, first(x1, first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(first(x1, first(z0, z1)))) MARK(first(x0, first(x1, from(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(first(x1, from(z0)))) MARK(first(x0, first(x1, 0))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(first(x1, 0))) MARK(first(x0, first(x1, nil))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(first(x1, nil))) MARK(first(x0, first(x1, s(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(first(x1, s(z0)))) MARK(first(x0, first(x1, cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(first(x1, cons(z0, z1)))) MARK(first(x0, first(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(first(first(z0, z1), x2))) MARK(first(x0, first(from(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(first(from(z0), x2))) MARK(first(x0, first(0, x2))) -> c6(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(first(0, x2))) MARK(first(x0, first(nil, x2))) -> c6(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(first(nil, x2))) MARK(first(x0, first(s(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(first(s(z0), x2))) MARK(first(x0, first(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(first(cons(z0, z1), x2))) MARK(first(first(z0, z1), first(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(from(z0), first(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(s(z0), first(x1, x2))) -> c6(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(x0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(nil, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(cons(z0, z1), first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(x0, from(x1))) -> c6(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(first(x0, from(first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(from(first(z0, z1)))) MARK(first(x0, from(from(z0)))) -> c6(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(first(x0, from(0))) -> c6(A__FIRST(mark(x0), a__from(0)), MARK(from(0))) MARK(first(x0, from(nil))) -> c6(A__FIRST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(first(x0, from(s(z0)))) -> c6(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(from(s(z0)))) MARK(first(x0, from(cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(first(first(z0, z1), from(x1))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(first(from(z0), from(x1))) -> c6(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(s(z0), from(x1))) -> c6(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(x0, from(x1))) -> c6(MARK(from(x1))) MARK(first(0, from(x1))) -> c6(MARK(from(x1))) MARK(first(nil, from(x1))) -> c6(MARK(from(x1))) MARK(first(cons(z0, z1), from(x1))) -> c6(MARK(from(x1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(cons(first(z0, z1), x2))) MARK(first(x0, cons(from(z0), x2))) -> c6(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(first(x0, cons(0, x2))) -> c6(A__FIRST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(first(x0, cons(nil, x2))) -> c6(A__FIRST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(first(x0, cons(s(z0), x2))) -> c6(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(cons(s(z0), x2))) MARK(first(x0, cons(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(first(first(z0, z1), cons(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(from(z0), cons(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(s(z0), cons(x1, x2))) -> c6(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(x0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(nil, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c6(MARK(cons(x1, x2))) S tuples: A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(first(z0, z1), x1)) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(from(z0), x1)) -> c6(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c6(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(x0, from(x1))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), from(x1))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(first(x0, cons(from(z0), x2))) -> c5(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(0, x2))) -> c5(A__FIRST(mark(x0), cons(0, x2)), MARK(x0)) MARK(first(x0, cons(nil, x2))) -> c5(A__FIRST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(first(x0, cons(s(z0), x2))) -> c5(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(first(first(z0, z1), cons(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(first(z0, z1))) MARK(first(from(z0), cons(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(first(s(z0), cons(x1, x2))) -> c5(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(s(z0))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(first(x0, first(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(first(x0, first(z0, z1)))) MARK(first(first(x0, from(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(first(x0, from(z0)))) MARK(first(first(x0, 0), x2)) -> c5(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(first(x0, 0))) MARK(first(first(x0, nil), x2)) -> c5(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(first(x0, nil))) MARK(first(first(x0, s(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(first(x0, s(z0)))) MARK(first(first(x0, cons(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(first(x0, cons(z0, z1)))) MARK(first(first(first(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(first(first(z0, z1), x1))) MARK(first(first(from(z0), x1), x2)) -> c5(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(first(from(z0), x1))) MARK(first(first(0, x1), x2)) -> c5(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(first(0, x1))) MARK(first(first(nil, x1), x2)) -> c5(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(first(nil, x1))) MARK(first(first(s(z0), x1), x2)) -> c5(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(first(s(z0), x1))) MARK(first(first(cons(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(first(cons(z0, z1), x1))) MARK(first(first(x0, x1), 0)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), nil)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), s(z0))) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), x2)) -> c5(MARK(first(x0, x1))) MARK(first(from(first(z0, z1)), x1)) -> c5(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(from(first(z0, z1)))) MARK(first(from(from(z0)), x1)) -> c5(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(first(from(0), x1)) -> c5(A__FIRST(a__from(0), mark(x1)), MARK(from(0))) MARK(first(from(nil), x1)) -> c5(A__FIRST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(first(from(s(z0)), x1)) -> c5(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(from(s(z0)))) MARK(first(from(cons(z0, z1)), x1)) -> c5(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(first(from(x0), x1)) -> c5(MARK(from(x0))) MARK(first(from(x0), 0)) -> c5(MARK(from(x0))) MARK(first(from(x0), nil)) -> c5(MARK(from(x0))) MARK(first(from(x0), s(z0))) -> c5(MARK(from(x0))) MARK(first(s(first(z0, z1)), x1)) -> c5(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(s(first(z0, z1)))) MARK(first(s(from(z0)), x1)) -> c5(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(s(from(z0)))) MARK(first(s(0), x1)) -> c5(A__FIRST(s(0), mark(x1)), MARK(s(0))) MARK(first(s(nil), x1)) -> c5(A__FIRST(s(nil), mark(x1)), MARK(s(nil))) MARK(first(s(s(z0)), x1)) -> c5(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(s(s(z0)))) MARK(first(s(cons(z0, z1)), x1)) -> c5(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(s(cons(z0, z1)))) MARK(first(s(x0), x1)) -> c5(MARK(s(x0))) MARK(first(s(x0), 0)) -> c5(MARK(s(x0))) MARK(first(s(x0), nil)) -> c5(MARK(s(x0))) MARK(first(s(x0), s(z0))) -> c5(MARK(s(x0))) MARK(first(x0, first(x1, first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(first(x1, first(z0, z1)))) MARK(first(x0, first(x1, from(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(first(x1, from(z0)))) MARK(first(x0, first(x1, 0))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(first(x1, 0))) MARK(first(x0, first(x1, nil))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(first(x1, nil))) MARK(first(x0, first(x1, s(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(first(x1, s(z0)))) MARK(first(x0, first(x1, cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(first(x1, cons(z0, z1)))) MARK(first(x0, first(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(first(first(z0, z1), x2))) MARK(first(x0, first(from(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(first(from(z0), x2))) MARK(first(x0, first(0, x2))) -> c6(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(first(0, x2))) MARK(first(x0, first(nil, x2))) -> c6(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(first(nil, x2))) MARK(first(x0, first(s(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(first(s(z0), x2))) MARK(first(x0, first(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(first(cons(z0, z1), x2))) MARK(first(first(z0, z1), first(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(from(z0), first(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(s(z0), first(x1, x2))) -> c6(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(x0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(nil, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(cons(z0, z1), first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(x0, from(x1))) -> c6(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(first(x0, from(first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(from(first(z0, z1)))) MARK(first(x0, from(from(z0)))) -> c6(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(first(x0, from(0))) -> c6(A__FIRST(mark(x0), a__from(0)), MARK(from(0))) MARK(first(x0, from(nil))) -> c6(A__FIRST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(first(x0, from(s(z0)))) -> c6(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(from(s(z0)))) MARK(first(x0, from(cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(first(first(z0, z1), from(x1))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(first(from(z0), from(x1))) -> c6(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(s(z0), from(x1))) -> c6(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(x0, from(x1))) -> c6(MARK(from(x1))) MARK(first(0, from(x1))) -> c6(MARK(from(x1))) MARK(first(nil, from(x1))) -> c6(MARK(from(x1))) MARK(first(cons(z0, z1), from(x1))) -> c6(MARK(from(x1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(cons(first(z0, z1), x2))) MARK(first(x0, cons(from(z0), x2))) -> c6(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(first(x0, cons(0, x2))) -> c6(A__FIRST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(first(x0, cons(nil, x2))) -> c6(A__FIRST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(first(x0, cons(s(z0), x2))) -> c6(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(cons(s(z0), x2))) MARK(first(x0, cons(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(first(first(z0, z1), cons(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(from(z0), cons(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(s(z0), cons(x1, x2))) -> c6(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(x0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(nil, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c6(MARK(cons(x1, x2))) K tuples:none Defined Rule Symbols: a__first_2, a__from_1, mark_1 Defined Pair Symbols: A__FIRST_2, A__FROM_1, MARK_1 Compound Symbols: c1_1, c3_1, c7_2, c10_1, c11_1, c5_1, c6_2, c6_1, c5_2 ---------------------------------------- (117) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(first(first(z0, z1), x1)) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) by MARK(first(first(x0, x1), first(z0, z1))) -> c6(A__FIRST(a__first(mark(x0), mark(x1)), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(first(x0, x1), from(z0))) -> c6(A__FIRST(a__first(mark(x0), mark(x1)), a__from(mark(z0))), MARK(from(z0))) MARK(first(first(x0, x1), 0)) -> c6(A__FIRST(a__first(mark(x0), mark(x1)), 0), MARK(0)) MARK(first(first(x0, x1), nil)) -> c6(A__FIRST(a__first(mark(x0), mark(x1)), nil), MARK(nil)) MARK(first(first(x0, x1), s(z0))) -> c6(A__FIRST(a__first(mark(x0), mark(x1)), s(mark(z0))), MARK(s(z0))) MARK(first(first(x0, x1), cons(z0, z1))) -> c6(A__FIRST(a__first(mark(x0), mark(x1)), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(first(x0, x1), x2)) -> c6(A__FIRST(first(mark(x0), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(x0, first(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(first(first(x0, from(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, 0), x2)) -> c6(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(x2)) MARK(first(first(x0, nil), x2)) -> c6(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(x2)) MARK(first(first(x0, s(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, cons(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(first(first(first(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(from(z0), x1), x2)) -> c6(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(0, x1), x2)) -> c6(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(nil, x1), x2)) -> c6(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(s(z0), x1), x2)) -> c6(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(cons(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) ---------------------------------------- (118) Obligation: Complexity Dependency Tuples Problem Rules: a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(0) -> 0 mark(nil) -> nil mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(from(z0), x1)) -> c6(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c6(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(x0, from(x1))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), from(x1))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(first(x0, cons(from(z0), x2))) -> c5(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(0, x2))) -> c5(A__FIRST(mark(x0), cons(0, x2)), MARK(x0)) MARK(first(x0, cons(nil, x2))) -> c5(A__FIRST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(first(x0, cons(s(z0), x2))) -> c5(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(first(first(z0, z1), cons(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(first(z0, z1))) MARK(first(from(z0), cons(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(first(s(z0), cons(x1, x2))) -> c5(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(s(z0))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(first(x0, first(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(first(x0, first(z0, z1)))) MARK(first(first(x0, from(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(first(x0, from(z0)))) MARK(first(first(x0, 0), x2)) -> c5(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(first(x0, 0))) MARK(first(first(x0, nil), x2)) -> c5(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(first(x0, nil))) MARK(first(first(x0, s(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(first(x0, s(z0)))) MARK(first(first(x0, cons(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(first(x0, cons(z0, z1)))) MARK(first(first(first(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(first(first(z0, z1), x1))) MARK(first(first(from(z0), x1), x2)) -> c5(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(first(from(z0), x1))) MARK(first(first(0, x1), x2)) -> c5(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(first(0, x1))) MARK(first(first(nil, x1), x2)) -> c5(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(first(nil, x1))) MARK(first(first(s(z0), x1), x2)) -> c5(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(first(s(z0), x1))) MARK(first(first(cons(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(first(cons(z0, z1), x1))) MARK(first(first(x0, x1), 0)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), nil)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), s(z0))) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), x2)) -> c5(MARK(first(x0, x1))) MARK(first(from(first(z0, z1)), x1)) -> c5(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(from(first(z0, z1)))) MARK(first(from(from(z0)), x1)) -> c5(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(first(from(0), x1)) -> c5(A__FIRST(a__from(0), mark(x1)), MARK(from(0))) MARK(first(from(nil), x1)) -> c5(A__FIRST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(first(from(s(z0)), x1)) -> c5(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(from(s(z0)))) MARK(first(from(cons(z0, z1)), x1)) -> c5(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(first(from(x0), x1)) -> c5(MARK(from(x0))) MARK(first(from(x0), 0)) -> c5(MARK(from(x0))) MARK(first(from(x0), nil)) -> c5(MARK(from(x0))) MARK(first(from(x0), s(z0))) -> c5(MARK(from(x0))) MARK(first(s(first(z0, z1)), x1)) -> c5(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(s(first(z0, z1)))) MARK(first(s(from(z0)), x1)) -> c5(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(s(from(z0)))) MARK(first(s(0), x1)) -> c5(A__FIRST(s(0), mark(x1)), MARK(s(0))) MARK(first(s(nil), x1)) -> c5(A__FIRST(s(nil), mark(x1)), MARK(s(nil))) MARK(first(s(s(z0)), x1)) -> c5(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(s(s(z0)))) MARK(first(s(cons(z0, z1)), x1)) -> c5(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(s(cons(z0, z1)))) MARK(first(s(x0), x1)) -> c5(MARK(s(x0))) MARK(first(s(x0), 0)) -> c5(MARK(s(x0))) MARK(first(s(x0), nil)) -> c5(MARK(s(x0))) MARK(first(s(x0), s(z0))) -> c5(MARK(s(x0))) MARK(first(x0, first(x1, first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(first(x1, first(z0, z1)))) MARK(first(x0, first(x1, from(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(first(x1, from(z0)))) MARK(first(x0, first(x1, 0))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(first(x1, 0))) MARK(first(x0, first(x1, nil))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(first(x1, nil))) MARK(first(x0, first(x1, s(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(first(x1, s(z0)))) MARK(first(x0, first(x1, cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(first(x1, cons(z0, z1)))) MARK(first(x0, first(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(first(first(z0, z1), x2))) MARK(first(x0, first(from(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(first(from(z0), x2))) MARK(first(x0, first(0, x2))) -> c6(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(first(0, x2))) MARK(first(x0, first(nil, x2))) -> c6(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(first(nil, x2))) MARK(first(x0, first(s(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(first(s(z0), x2))) MARK(first(x0, first(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(first(cons(z0, z1), x2))) MARK(first(first(z0, z1), first(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(from(z0), first(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(s(z0), first(x1, x2))) -> c6(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(x0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(nil, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(cons(z0, z1), first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(x0, from(x1))) -> c6(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(first(x0, from(first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(from(first(z0, z1)))) MARK(first(x0, from(from(z0)))) -> c6(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(first(x0, from(0))) -> c6(A__FIRST(mark(x0), a__from(0)), MARK(from(0))) MARK(first(x0, from(nil))) -> c6(A__FIRST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(first(x0, from(s(z0)))) -> c6(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(from(s(z0)))) MARK(first(x0, from(cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(first(first(z0, z1), from(x1))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(first(from(z0), from(x1))) -> c6(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(s(z0), from(x1))) -> c6(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(x0, from(x1))) -> c6(MARK(from(x1))) MARK(first(0, from(x1))) -> c6(MARK(from(x1))) MARK(first(nil, from(x1))) -> c6(MARK(from(x1))) MARK(first(cons(z0, z1), from(x1))) -> c6(MARK(from(x1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(cons(first(z0, z1), x2))) MARK(first(x0, cons(from(z0), x2))) -> c6(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(first(x0, cons(0, x2))) -> c6(A__FIRST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(first(x0, cons(nil, x2))) -> c6(A__FIRST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(first(x0, cons(s(z0), x2))) -> c6(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(cons(s(z0), x2))) MARK(first(x0, cons(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(first(first(z0, z1), cons(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(from(z0), cons(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(s(z0), cons(x1, x2))) -> c6(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(x0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(nil, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(first(x0, x1), 0)) -> c6(A__FIRST(a__first(mark(x0), mark(x1)), 0), MARK(0)) MARK(first(first(x0, x1), nil)) -> c6(A__FIRST(a__first(mark(x0), mark(x1)), nil), MARK(nil)) MARK(first(first(x0, x1), s(z0))) -> c6(A__FIRST(a__first(mark(x0), mark(x1)), s(mark(z0))), MARK(s(z0))) MARK(first(first(x0, x1), x2)) -> c6(A__FIRST(first(mark(x0), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(x0, first(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(first(first(x0, from(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, 0), x2)) -> c6(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(x2)) MARK(first(first(x0, nil), x2)) -> c6(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(x2)) MARK(first(first(x0, s(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, cons(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(first(first(first(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(from(z0), x1), x2)) -> c6(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(0, x1), x2)) -> c6(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(nil, x1), x2)) -> c6(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(s(z0), x1), x2)) -> c6(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(cons(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) S tuples: A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(from(z0), x1)) -> c6(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c6(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(x0, from(x1))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), from(x1))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(first(x0, cons(from(z0), x2))) -> c5(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(0, x2))) -> c5(A__FIRST(mark(x0), cons(0, x2)), MARK(x0)) MARK(first(x0, cons(nil, x2))) -> c5(A__FIRST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(first(x0, cons(s(z0), x2))) -> c5(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(first(first(z0, z1), cons(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(first(z0, z1))) MARK(first(from(z0), cons(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(first(s(z0), cons(x1, x2))) -> c5(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(s(z0))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(first(x0, first(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(first(x0, first(z0, z1)))) MARK(first(first(x0, from(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(first(x0, from(z0)))) MARK(first(first(x0, 0), x2)) -> c5(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(first(x0, 0))) MARK(first(first(x0, nil), x2)) -> c5(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(first(x0, nil))) MARK(first(first(x0, s(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(first(x0, s(z0)))) MARK(first(first(x0, cons(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(first(x0, cons(z0, z1)))) MARK(first(first(first(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(first(first(z0, z1), x1))) MARK(first(first(from(z0), x1), x2)) -> c5(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(first(from(z0), x1))) MARK(first(first(0, x1), x2)) -> c5(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(first(0, x1))) MARK(first(first(nil, x1), x2)) -> c5(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(first(nil, x1))) MARK(first(first(s(z0), x1), x2)) -> c5(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(first(s(z0), x1))) MARK(first(first(cons(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(first(cons(z0, z1), x1))) MARK(first(first(x0, x1), 0)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), nil)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), s(z0))) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), x2)) -> c5(MARK(first(x0, x1))) MARK(first(from(first(z0, z1)), x1)) -> c5(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(from(first(z0, z1)))) MARK(first(from(from(z0)), x1)) -> c5(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(first(from(0), x1)) -> c5(A__FIRST(a__from(0), mark(x1)), MARK(from(0))) MARK(first(from(nil), x1)) -> c5(A__FIRST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(first(from(s(z0)), x1)) -> c5(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(from(s(z0)))) MARK(first(from(cons(z0, z1)), x1)) -> c5(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(first(from(x0), x1)) -> c5(MARK(from(x0))) MARK(first(from(x0), 0)) -> c5(MARK(from(x0))) MARK(first(from(x0), nil)) -> c5(MARK(from(x0))) MARK(first(from(x0), s(z0))) -> c5(MARK(from(x0))) MARK(first(s(first(z0, z1)), x1)) -> c5(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(s(first(z0, z1)))) MARK(first(s(from(z0)), x1)) -> c5(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(s(from(z0)))) MARK(first(s(0), x1)) -> c5(A__FIRST(s(0), mark(x1)), MARK(s(0))) MARK(first(s(nil), x1)) -> c5(A__FIRST(s(nil), mark(x1)), MARK(s(nil))) MARK(first(s(s(z0)), x1)) -> c5(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(s(s(z0)))) MARK(first(s(cons(z0, z1)), x1)) -> c5(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(s(cons(z0, z1)))) MARK(first(s(x0), x1)) -> c5(MARK(s(x0))) MARK(first(s(x0), 0)) -> c5(MARK(s(x0))) MARK(first(s(x0), nil)) -> c5(MARK(s(x0))) MARK(first(s(x0), s(z0))) -> c5(MARK(s(x0))) MARK(first(x0, first(x1, first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(first(x1, first(z0, z1)))) MARK(first(x0, first(x1, from(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(first(x1, from(z0)))) MARK(first(x0, first(x1, 0))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(first(x1, 0))) MARK(first(x0, first(x1, nil))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(first(x1, nil))) MARK(first(x0, first(x1, s(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(first(x1, s(z0)))) MARK(first(x0, first(x1, cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(first(x1, cons(z0, z1)))) MARK(first(x0, first(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(first(first(z0, z1), x2))) MARK(first(x0, first(from(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(first(from(z0), x2))) MARK(first(x0, first(0, x2))) -> c6(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(first(0, x2))) MARK(first(x0, first(nil, x2))) -> c6(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(first(nil, x2))) MARK(first(x0, first(s(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(first(s(z0), x2))) MARK(first(x0, first(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(first(cons(z0, z1), x2))) MARK(first(first(z0, z1), first(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(from(z0), first(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(s(z0), first(x1, x2))) -> c6(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(x0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(nil, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(cons(z0, z1), first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(x0, from(x1))) -> c6(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(first(x0, from(first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(from(first(z0, z1)))) MARK(first(x0, from(from(z0)))) -> c6(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(first(x0, from(0))) -> c6(A__FIRST(mark(x0), a__from(0)), MARK(from(0))) MARK(first(x0, from(nil))) -> c6(A__FIRST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(first(x0, from(s(z0)))) -> c6(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(from(s(z0)))) MARK(first(x0, from(cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(first(first(z0, z1), from(x1))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(first(from(z0), from(x1))) -> c6(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(s(z0), from(x1))) -> c6(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(x0, from(x1))) -> c6(MARK(from(x1))) MARK(first(0, from(x1))) -> c6(MARK(from(x1))) MARK(first(nil, from(x1))) -> c6(MARK(from(x1))) MARK(first(cons(z0, z1), from(x1))) -> c6(MARK(from(x1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(cons(first(z0, z1), x2))) MARK(first(x0, cons(from(z0), x2))) -> c6(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(first(x0, cons(0, x2))) -> c6(A__FIRST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(first(x0, cons(nil, x2))) -> c6(A__FIRST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(first(x0, cons(s(z0), x2))) -> c6(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(cons(s(z0), x2))) MARK(first(x0, cons(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(first(first(z0, z1), cons(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(from(z0), cons(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(s(z0), cons(x1, x2))) -> c6(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(x0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(nil, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(first(x0, x1), 0)) -> c6(A__FIRST(a__first(mark(x0), mark(x1)), 0), MARK(0)) MARK(first(first(x0, x1), nil)) -> c6(A__FIRST(a__first(mark(x0), mark(x1)), nil), MARK(nil)) MARK(first(first(x0, x1), s(z0))) -> c6(A__FIRST(a__first(mark(x0), mark(x1)), s(mark(z0))), MARK(s(z0))) MARK(first(first(x0, x1), x2)) -> c6(A__FIRST(first(mark(x0), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(x0, first(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(first(first(x0, from(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, 0), x2)) -> c6(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(x2)) MARK(first(first(x0, nil), x2)) -> c6(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(x2)) MARK(first(first(x0, s(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, cons(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(first(first(first(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(from(z0), x1), x2)) -> c6(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(0, x1), x2)) -> c6(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(nil, x1), x2)) -> c6(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(s(z0), x1), x2)) -> c6(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(cons(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) K tuples:none Defined Rule Symbols: a__first_2, a__from_1, mark_1 Defined Pair Symbols: A__FIRST_2, A__FROM_1, MARK_1 Compound Symbols: c1_1, c3_1, c7_2, c10_1, c11_1, c5_1, c6_2, c6_1, c5_2 ---------------------------------------- (119) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing nodes: MARK(first(first(x0, x1), nil)) -> c6(A__FIRST(a__first(mark(x0), mark(x1)), nil), MARK(nil)) MARK(first(first(x0, x1), 0)) -> c6(A__FIRST(a__first(mark(x0), mark(x1)), 0), MARK(0)) ---------------------------------------- (120) Obligation: Complexity Dependency Tuples Problem Rules: a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(0) -> 0 mark(nil) -> nil mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(from(z0), x1)) -> c6(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c6(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(x0, from(x1))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), from(x1))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(first(x0, cons(from(z0), x2))) -> c5(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(0, x2))) -> c5(A__FIRST(mark(x0), cons(0, x2)), MARK(x0)) MARK(first(x0, cons(nil, x2))) -> c5(A__FIRST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(first(x0, cons(s(z0), x2))) -> c5(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(first(first(z0, z1), cons(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(first(z0, z1))) MARK(first(from(z0), cons(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(first(s(z0), cons(x1, x2))) -> c5(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(s(z0))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(first(x0, first(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(first(x0, first(z0, z1)))) MARK(first(first(x0, from(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(first(x0, from(z0)))) MARK(first(first(x0, 0), x2)) -> c5(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(first(x0, 0))) MARK(first(first(x0, nil), x2)) -> c5(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(first(x0, nil))) MARK(first(first(x0, s(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(first(x0, s(z0)))) MARK(first(first(x0, cons(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(first(x0, cons(z0, z1)))) MARK(first(first(first(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(first(first(z0, z1), x1))) MARK(first(first(from(z0), x1), x2)) -> c5(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(first(from(z0), x1))) MARK(first(first(0, x1), x2)) -> c5(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(first(0, x1))) MARK(first(first(nil, x1), x2)) -> c5(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(first(nil, x1))) MARK(first(first(s(z0), x1), x2)) -> c5(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(first(s(z0), x1))) MARK(first(first(cons(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(first(cons(z0, z1), x1))) MARK(first(first(x0, x1), 0)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), nil)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), s(z0))) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), x2)) -> c5(MARK(first(x0, x1))) MARK(first(from(first(z0, z1)), x1)) -> c5(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(from(first(z0, z1)))) MARK(first(from(from(z0)), x1)) -> c5(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(first(from(0), x1)) -> c5(A__FIRST(a__from(0), mark(x1)), MARK(from(0))) MARK(first(from(nil), x1)) -> c5(A__FIRST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(first(from(s(z0)), x1)) -> c5(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(from(s(z0)))) MARK(first(from(cons(z0, z1)), x1)) -> c5(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(first(from(x0), x1)) -> c5(MARK(from(x0))) MARK(first(from(x0), 0)) -> c5(MARK(from(x0))) MARK(first(from(x0), nil)) -> c5(MARK(from(x0))) MARK(first(from(x0), s(z0))) -> c5(MARK(from(x0))) MARK(first(s(first(z0, z1)), x1)) -> c5(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(s(first(z0, z1)))) MARK(first(s(from(z0)), x1)) -> c5(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(s(from(z0)))) MARK(first(s(0), x1)) -> c5(A__FIRST(s(0), mark(x1)), MARK(s(0))) MARK(first(s(nil), x1)) -> c5(A__FIRST(s(nil), mark(x1)), MARK(s(nil))) MARK(first(s(s(z0)), x1)) -> c5(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(s(s(z0)))) MARK(first(s(cons(z0, z1)), x1)) -> c5(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(s(cons(z0, z1)))) MARK(first(s(x0), x1)) -> c5(MARK(s(x0))) MARK(first(s(x0), 0)) -> c5(MARK(s(x0))) MARK(first(s(x0), nil)) -> c5(MARK(s(x0))) MARK(first(s(x0), s(z0))) -> c5(MARK(s(x0))) MARK(first(x0, first(x1, first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(first(x1, first(z0, z1)))) MARK(first(x0, first(x1, from(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(first(x1, from(z0)))) MARK(first(x0, first(x1, 0))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(first(x1, 0))) MARK(first(x0, first(x1, nil))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(first(x1, nil))) MARK(first(x0, first(x1, s(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(first(x1, s(z0)))) MARK(first(x0, first(x1, cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(first(x1, cons(z0, z1)))) MARK(first(x0, first(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(first(first(z0, z1), x2))) MARK(first(x0, first(from(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(first(from(z0), x2))) MARK(first(x0, first(0, x2))) -> c6(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(first(0, x2))) MARK(first(x0, first(nil, x2))) -> c6(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(first(nil, x2))) MARK(first(x0, first(s(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(first(s(z0), x2))) MARK(first(x0, first(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(first(cons(z0, z1), x2))) MARK(first(first(z0, z1), first(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(from(z0), first(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(s(z0), first(x1, x2))) -> c6(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(x0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(nil, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(cons(z0, z1), first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(x0, from(x1))) -> c6(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(first(x0, from(first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(from(first(z0, z1)))) MARK(first(x0, from(from(z0)))) -> c6(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(first(x0, from(0))) -> c6(A__FIRST(mark(x0), a__from(0)), MARK(from(0))) MARK(first(x0, from(nil))) -> c6(A__FIRST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(first(x0, from(s(z0)))) -> c6(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(from(s(z0)))) MARK(first(x0, from(cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(first(first(z0, z1), from(x1))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(first(from(z0), from(x1))) -> c6(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(s(z0), from(x1))) -> c6(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(x0, from(x1))) -> c6(MARK(from(x1))) MARK(first(0, from(x1))) -> c6(MARK(from(x1))) MARK(first(nil, from(x1))) -> c6(MARK(from(x1))) MARK(first(cons(z0, z1), from(x1))) -> c6(MARK(from(x1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(cons(first(z0, z1), x2))) MARK(first(x0, cons(from(z0), x2))) -> c6(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(first(x0, cons(0, x2))) -> c6(A__FIRST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(first(x0, cons(nil, x2))) -> c6(A__FIRST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(first(x0, cons(s(z0), x2))) -> c6(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(cons(s(z0), x2))) MARK(first(x0, cons(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(first(first(z0, z1), cons(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(from(z0), cons(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(s(z0), cons(x1, x2))) -> c6(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(x0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(nil, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(first(x0, x1), s(z0))) -> c6(A__FIRST(a__first(mark(x0), mark(x1)), s(mark(z0))), MARK(s(z0))) MARK(first(first(x0, x1), x2)) -> c6(A__FIRST(first(mark(x0), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(x0, first(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(first(first(x0, from(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, 0), x2)) -> c6(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(x2)) MARK(first(first(x0, nil), x2)) -> c6(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(x2)) MARK(first(first(x0, s(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, cons(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(first(first(first(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(from(z0), x1), x2)) -> c6(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(0, x1), x2)) -> c6(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(nil, x1), x2)) -> c6(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(s(z0), x1), x2)) -> c6(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(cons(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) S tuples: A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(from(z0), x1)) -> c6(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c6(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(x0, from(x1))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), from(x1))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(first(x0, cons(from(z0), x2))) -> c5(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(0, x2))) -> c5(A__FIRST(mark(x0), cons(0, x2)), MARK(x0)) MARK(first(x0, cons(nil, x2))) -> c5(A__FIRST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(first(x0, cons(s(z0), x2))) -> c5(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(first(first(z0, z1), cons(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(first(z0, z1))) MARK(first(from(z0), cons(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(first(s(z0), cons(x1, x2))) -> c5(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(s(z0))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(first(x0, first(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(first(x0, first(z0, z1)))) MARK(first(first(x0, from(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(first(x0, from(z0)))) MARK(first(first(x0, 0), x2)) -> c5(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(first(x0, 0))) MARK(first(first(x0, nil), x2)) -> c5(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(first(x0, nil))) MARK(first(first(x0, s(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(first(x0, s(z0)))) MARK(first(first(x0, cons(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(first(x0, cons(z0, z1)))) MARK(first(first(first(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(first(first(z0, z1), x1))) MARK(first(first(from(z0), x1), x2)) -> c5(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(first(from(z0), x1))) MARK(first(first(0, x1), x2)) -> c5(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(first(0, x1))) MARK(first(first(nil, x1), x2)) -> c5(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(first(nil, x1))) MARK(first(first(s(z0), x1), x2)) -> c5(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(first(s(z0), x1))) MARK(first(first(cons(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(first(cons(z0, z1), x1))) MARK(first(first(x0, x1), 0)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), nil)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), s(z0))) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), x2)) -> c5(MARK(first(x0, x1))) MARK(first(from(first(z0, z1)), x1)) -> c5(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(from(first(z0, z1)))) MARK(first(from(from(z0)), x1)) -> c5(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(first(from(0), x1)) -> c5(A__FIRST(a__from(0), mark(x1)), MARK(from(0))) MARK(first(from(nil), x1)) -> c5(A__FIRST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(first(from(s(z0)), x1)) -> c5(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(from(s(z0)))) MARK(first(from(cons(z0, z1)), x1)) -> c5(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(first(from(x0), x1)) -> c5(MARK(from(x0))) MARK(first(from(x0), 0)) -> c5(MARK(from(x0))) MARK(first(from(x0), nil)) -> c5(MARK(from(x0))) MARK(first(from(x0), s(z0))) -> c5(MARK(from(x0))) MARK(first(s(first(z0, z1)), x1)) -> c5(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(s(first(z0, z1)))) MARK(first(s(from(z0)), x1)) -> c5(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(s(from(z0)))) MARK(first(s(0), x1)) -> c5(A__FIRST(s(0), mark(x1)), MARK(s(0))) MARK(first(s(nil), x1)) -> c5(A__FIRST(s(nil), mark(x1)), MARK(s(nil))) MARK(first(s(s(z0)), x1)) -> c5(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(s(s(z0)))) MARK(first(s(cons(z0, z1)), x1)) -> c5(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(s(cons(z0, z1)))) MARK(first(s(x0), x1)) -> c5(MARK(s(x0))) MARK(first(s(x0), 0)) -> c5(MARK(s(x0))) MARK(first(s(x0), nil)) -> c5(MARK(s(x0))) MARK(first(s(x0), s(z0))) -> c5(MARK(s(x0))) MARK(first(x0, first(x1, first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(first(x1, first(z0, z1)))) MARK(first(x0, first(x1, from(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(first(x1, from(z0)))) MARK(first(x0, first(x1, 0))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(first(x1, 0))) MARK(first(x0, first(x1, nil))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(first(x1, nil))) MARK(first(x0, first(x1, s(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(first(x1, s(z0)))) MARK(first(x0, first(x1, cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(first(x1, cons(z0, z1)))) MARK(first(x0, first(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(first(first(z0, z1), x2))) MARK(first(x0, first(from(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(first(from(z0), x2))) MARK(first(x0, first(0, x2))) -> c6(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(first(0, x2))) MARK(first(x0, first(nil, x2))) -> c6(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(first(nil, x2))) MARK(first(x0, first(s(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(first(s(z0), x2))) MARK(first(x0, first(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(first(cons(z0, z1), x2))) MARK(first(first(z0, z1), first(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(from(z0), first(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(s(z0), first(x1, x2))) -> c6(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(x0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(nil, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(cons(z0, z1), first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(x0, from(x1))) -> c6(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(first(x0, from(first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(from(first(z0, z1)))) MARK(first(x0, from(from(z0)))) -> c6(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(first(x0, from(0))) -> c6(A__FIRST(mark(x0), a__from(0)), MARK(from(0))) MARK(first(x0, from(nil))) -> c6(A__FIRST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(first(x0, from(s(z0)))) -> c6(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(from(s(z0)))) MARK(first(x0, from(cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(first(first(z0, z1), from(x1))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(first(from(z0), from(x1))) -> c6(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(s(z0), from(x1))) -> c6(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(x0, from(x1))) -> c6(MARK(from(x1))) MARK(first(0, from(x1))) -> c6(MARK(from(x1))) MARK(first(nil, from(x1))) -> c6(MARK(from(x1))) MARK(first(cons(z0, z1), from(x1))) -> c6(MARK(from(x1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(cons(first(z0, z1), x2))) MARK(first(x0, cons(from(z0), x2))) -> c6(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(first(x0, cons(0, x2))) -> c6(A__FIRST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(first(x0, cons(nil, x2))) -> c6(A__FIRST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(first(x0, cons(s(z0), x2))) -> c6(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(cons(s(z0), x2))) MARK(first(x0, cons(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(first(first(z0, z1), cons(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(from(z0), cons(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(s(z0), cons(x1, x2))) -> c6(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(x0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(nil, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(first(x0, x1), s(z0))) -> c6(A__FIRST(a__first(mark(x0), mark(x1)), s(mark(z0))), MARK(s(z0))) MARK(first(first(x0, x1), x2)) -> c6(A__FIRST(first(mark(x0), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(x0, first(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(first(first(x0, from(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, 0), x2)) -> c6(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(x2)) MARK(first(first(x0, nil), x2)) -> c6(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(x2)) MARK(first(first(x0, s(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, cons(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(first(first(first(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(from(z0), x1), x2)) -> c6(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(0, x1), x2)) -> c6(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(nil, x1), x2)) -> c6(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(s(z0), x1), x2)) -> c6(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(cons(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) K tuples:none Defined Rule Symbols: a__first_2, a__from_1, mark_1 Defined Pair Symbols: A__FIRST_2, A__FROM_1, MARK_1 Compound Symbols: c1_1, c3_1, c7_2, c10_1, c11_1, c5_1, c6_2, c6_1, c5_2 ---------------------------------------- (121) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (122) Obligation: Complexity Dependency Tuples Problem Rules: a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(0) -> 0 mark(nil) -> nil mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(from(z0), x1)) -> c6(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c6(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(x0, from(x1))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), from(x1))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(first(x0, cons(from(z0), x2))) -> c5(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(0, x2))) -> c5(A__FIRST(mark(x0), cons(0, x2)), MARK(x0)) MARK(first(x0, cons(nil, x2))) -> c5(A__FIRST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(first(x0, cons(s(z0), x2))) -> c5(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(first(first(z0, z1), cons(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(first(z0, z1))) MARK(first(from(z0), cons(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(first(s(z0), cons(x1, x2))) -> c5(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(s(z0))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(first(x0, first(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(first(x0, first(z0, z1)))) MARK(first(first(x0, from(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(first(x0, from(z0)))) MARK(first(first(x0, 0), x2)) -> c5(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(first(x0, 0))) MARK(first(first(x0, nil), x2)) -> c5(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(first(x0, nil))) MARK(first(first(x0, s(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(first(x0, s(z0)))) MARK(first(first(x0, cons(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(first(x0, cons(z0, z1)))) MARK(first(first(first(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(first(first(z0, z1), x1))) MARK(first(first(from(z0), x1), x2)) -> c5(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(first(from(z0), x1))) MARK(first(first(0, x1), x2)) -> c5(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(first(0, x1))) MARK(first(first(nil, x1), x2)) -> c5(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(first(nil, x1))) MARK(first(first(s(z0), x1), x2)) -> c5(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(first(s(z0), x1))) MARK(first(first(cons(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(first(cons(z0, z1), x1))) MARK(first(first(x0, x1), 0)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), nil)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), s(z0))) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), x2)) -> c5(MARK(first(x0, x1))) MARK(first(from(first(z0, z1)), x1)) -> c5(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(from(first(z0, z1)))) MARK(first(from(from(z0)), x1)) -> c5(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(first(from(0), x1)) -> c5(A__FIRST(a__from(0), mark(x1)), MARK(from(0))) MARK(first(from(nil), x1)) -> c5(A__FIRST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(first(from(s(z0)), x1)) -> c5(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(from(s(z0)))) MARK(first(from(cons(z0, z1)), x1)) -> c5(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(first(from(x0), x1)) -> c5(MARK(from(x0))) MARK(first(from(x0), 0)) -> c5(MARK(from(x0))) MARK(first(from(x0), nil)) -> c5(MARK(from(x0))) MARK(first(from(x0), s(z0))) -> c5(MARK(from(x0))) MARK(first(s(first(z0, z1)), x1)) -> c5(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(s(first(z0, z1)))) MARK(first(s(from(z0)), x1)) -> c5(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(s(from(z0)))) MARK(first(s(0), x1)) -> c5(A__FIRST(s(0), mark(x1)), MARK(s(0))) MARK(first(s(nil), x1)) -> c5(A__FIRST(s(nil), mark(x1)), MARK(s(nil))) MARK(first(s(s(z0)), x1)) -> c5(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(s(s(z0)))) MARK(first(s(cons(z0, z1)), x1)) -> c5(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(s(cons(z0, z1)))) MARK(first(s(x0), x1)) -> c5(MARK(s(x0))) MARK(first(s(x0), 0)) -> c5(MARK(s(x0))) MARK(first(s(x0), nil)) -> c5(MARK(s(x0))) MARK(first(s(x0), s(z0))) -> c5(MARK(s(x0))) MARK(first(x0, first(x1, first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(first(x1, first(z0, z1)))) MARK(first(x0, first(x1, from(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(first(x1, from(z0)))) MARK(first(x0, first(x1, 0))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(first(x1, 0))) MARK(first(x0, first(x1, nil))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(first(x1, nil))) MARK(first(x0, first(x1, s(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(first(x1, s(z0)))) MARK(first(x0, first(x1, cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(first(x1, cons(z0, z1)))) MARK(first(x0, first(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(first(first(z0, z1), x2))) MARK(first(x0, first(from(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(first(from(z0), x2))) MARK(first(x0, first(0, x2))) -> c6(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(first(0, x2))) MARK(first(x0, first(nil, x2))) -> c6(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(first(nil, x2))) MARK(first(x0, first(s(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(first(s(z0), x2))) MARK(first(x0, first(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(first(cons(z0, z1), x2))) MARK(first(first(z0, z1), first(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(from(z0), first(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(s(z0), first(x1, x2))) -> c6(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(x0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(nil, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(cons(z0, z1), first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(x0, from(x1))) -> c6(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(first(x0, from(first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(from(first(z0, z1)))) MARK(first(x0, from(from(z0)))) -> c6(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(first(x0, from(0))) -> c6(A__FIRST(mark(x0), a__from(0)), MARK(from(0))) MARK(first(x0, from(nil))) -> c6(A__FIRST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(first(x0, from(s(z0)))) -> c6(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(from(s(z0)))) MARK(first(x0, from(cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(first(first(z0, z1), from(x1))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(first(from(z0), from(x1))) -> c6(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(s(z0), from(x1))) -> c6(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(x0, from(x1))) -> c6(MARK(from(x1))) MARK(first(0, from(x1))) -> c6(MARK(from(x1))) MARK(first(nil, from(x1))) -> c6(MARK(from(x1))) MARK(first(cons(z0, z1), from(x1))) -> c6(MARK(from(x1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(cons(first(z0, z1), x2))) MARK(first(x0, cons(from(z0), x2))) -> c6(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(first(x0, cons(0, x2))) -> c6(A__FIRST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(first(x0, cons(nil, x2))) -> c6(A__FIRST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(first(x0, cons(s(z0), x2))) -> c6(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(cons(s(z0), x2))) MARK(first(x0, cons(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(first(first(z0, z1), cons(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(from(z0), cons(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(s(z0), cons(x1, x2))) -> c6(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(x0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(nil, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(first(x0, first(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(first(first(x0, from(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, 0), x2)) -> c6(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(x2)) MARK(first(first(x0, nil), x2)) -> c6(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(x2)) MARK(first(first(x0, s(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, cons(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(first(first(first(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(from(z0), x1), x2)) -> c6(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(0, x1), x2)) -> c6(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(nil, x1), x2)) -> c6(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(s(z0), x1), x2)) -> c6(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(cons(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(x0, x1), s(z0))) -> c6(MARK(s(z0))) MARK(first(first(x0, x1), x2)) -> c6(MARK(x2)) S tuples: A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(from(z0), x1)) -> c6(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c6(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(x0, from(x1))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), from(x1))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(first(x0, cons(from(z0), x2))) -> c5(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(0, x2))) -> c5(A__FIRST(mark(x0), cons(0, x2)), MARK(x0)) MARK(first(x0, cons(nil, x2))) -> c5(A__FIRST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(first(x0, cons(s(z0), x2))) -> c5(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(first(first(z0, z1), cons(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(first(z0, z1))) MARK(first(from(z0), cons(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(first(s(z0), cons(x1, x2))) -> c5(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(s(z0))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(first(x0, first(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(first(x0, first(z0, z1)))) MARK(first(first(x0, from(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(first(x0, from(z0)))) MARK(first(first(x0, 0), x2)) -> c5(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(first(x0, 0))) MARK(first(first(x0, nil), x2)) -> c5(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(first(x0, nil))) MARK(first(first(x0, s(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(first(x0, s(z0)))) MARK(first(first(x0, cons(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(first(x0, cons(z0, z1)))) MARK(first(first(first(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(first(first(z0, z1), x1))) MARK(first(first(from(z0), x1), x2)) -> c5(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(first(from(z0), x1))) MARK(first(first(0, x1), x2)) -> c5(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(first(0, x1))) MARK(first(first(nil, x1), x2)) -> c5(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(first(nil, x1))) MARK(first(first(s(z0), x1), x2)) -> c5(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(first(s(z0), x1))) MARK(first(first(cons(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(first(cons(z0, z1), x1))) MARK(first(first(x0, x1), 0)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), nil)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), s(z0))) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), x2)) -> c5(MARK(first(x0, x1))) MARK(first(from(first(z0, z1)), x1)) -> c5(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(from(first(z0, z1)))) MARK(first(from(from(z0)), x1)) -> c5(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(first(from(0), x1)) -> c5(A__FIRST(a__from(0), mark(x1)), MARK(from(0))) MARK(first(from(nil), x1)) -> c5(A__FIRST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(first(from(s(z0)), x1)) -> c5(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(from(s(z0)))) MARK(first(from(cons(z0, z1)), x1)) -> c5(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(first(from(x0), x1)) -> c5(MARK(from(x0))) MARK(first(from(x0), 0)) -> c5(MARK(from(x0))) MARK(first(from(x0), nil)) -> c5(MARK(from(x0))) MARK(first(from(x0), s(z0))) -> c5(MARK(from(x0))) MARK(first(s(first(z0, z1)), x1)) -> c5(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(s(first(z0, z1)))) MARK(first(s(from(z0)), x1)) -> c5(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(s(from(z0)))) MARK(first(s(0), x1)) -> c5(A__FIRST(s(0), mark(x1)), MARK(s(0))) MARK(first(s(nil), x1)) -> c5(A__FIRST(s(nil), mark(x1)), MARK(s(nil))) MARK(first(s(s(z0)), x1)) -> c5(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(s(s(z0)))) MARK(first(s(cons(z0, z1)), x1)) -> c5(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(s(cons(z0, z1)))) MARK(first(s(x0), x1)) -> c5(MARK(s(x0))) MARK(first(s(x0), 0)) -> c5(MARK(s(x0))) MARK(first(s(x0), nil)) -> c5(MARK(s(x0))) MARK(first(s(x0), s(z0))) -> c5(MARK(s(x0))) MARK(first(x0, first(x1, first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(first(x1, first(z0, z1)))) MARK(first(x0, first(x1, from(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(first(x1, from(z0)))) MARK(first(x0, first(x1, 0))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(first(x1, 0))) MARK(first(x0, first(x1, nil))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(first(x1, nil))) MARK(first(x0, first(x1, s(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(first(x1, s(z0)))) MARK(first(x0, first(x1, cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(first(x1, cons(z0, z1)))) MARK(first(x0, first(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(first(first(z0, z1), x2))) MARK(first(x0, first(from(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(first(from(z0), x2))) MARK(first(x0, first(0, x2))) -> c6(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(first(0, x2))) MARK(first(x0, first(nil, x2))) -> c6(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(first(nil, x2))) MARK(first(x0, first(s(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(first(s(z0), x2))) MARK(first(x0, first(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(first(cons(z0, z1), x2))) MARK(first(first(z0, z1), first(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(from(z0), first(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(s(z0), first(x1, x2))) -> c6(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(x0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(nil, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(cons(z0, z1), first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(x0, from(x1))) -> c6(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(first(x0, from(first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(from(first(z0, z1)))) MARK(first(x0, from(from(z0)))) -> c6(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(first(x0, from(0))) -> c6(A__FIRST(mark(x0), a__from(0)), MARK(from(0))) MARK(first(x0, from(nil))) -> c6(A__FIRST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(first(x0, from(s(z0)))) -> c6(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(from(s(z0)))) MARK(first(x0, from(cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(first(first(z0, z1), from(x1))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(first(from(z0), from(x1))) -> c6(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(s(z0), from(x1))) -> c6(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(x0, from(x1))) -> c6(MARK(from(x1))) MARK(first(0, from(x1))) -> c6(MARK(from(x1))) MARK(first(nil, from(x1))) -> c6(MARK(from(x1))) MARK(first(cons(z0, z1), from(x1))) -> c6(MARK(from(x1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(cons(first(z0, z1), x2))) MARK(first(x0, cons(from(z0), x2))) -> c6(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(first(x0, cons(0, x2))) -> c6(A__FIRST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(first(x0, cons(nil, x2))) -> c6(A__FIRST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(first(x0, cons(s(z0), x2))) -> c6(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(cons(s(z0), x2))) MARK(first(x0, cons(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(first(first(z0, z1), cons(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(from(z0), cons(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(s(z0), cons(x1, x2))) -> c6(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(x0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(nil, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(first(x0, first(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(first(first(x0, from(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, 0), x2)) -> c6(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(x2)) MARK(first(first(x0, nil), x2)) -> c6(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(x2)) MARK(first(first(x0, s(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, cons(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(first(first(first(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(from(z0), x1), x2)) -> c6(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(0, x1), x2)) -> c6(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(nil, x1), x2)) -> c6(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(s(z0), x1), x2)) -> c6(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(cons(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(x0, x1), s(z0))) -> c6(MARK(s(z0))) MARK(first(first(x0, x1), x2)) -> c6(MARK(x2)) K tuples:none Defined Rule Symbols: a__first_2, a__from_1, mark_1 Defined Pair Symbols: A__FIRST_2, A__FROM_1, MARK_1 Compound Symbols: c1_1, c3_1, c7_2, c10_1, c11_1, c5_1, c6_2, c6_1, c5_2 ---------------------------------------- (123) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(first(from(z0), x1)) -> c6(A__FIRST(a__from(mark(z0)), mark(x1)), MARK(x1)) by MARK(first(from(x0), first(z0, z1))) -> c6(A__FIRST(a__from(mark(x0)), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(from(x0), from(z0))) -> c6(A__FIRST(a__from(mark(x0)), a__from(mark(z0))), MARK(from(z0))) MARK(first(from(x0), 0)) -> c6(A__FIRST(a__from(mark(x0)), 0), MARK(0)) MARK(first(from(x0), nil)) -> c6(A__FIRST(a__from(mark(x0)), nil), MARK(nil)) MARK(first(from(x0), s(z0))) -> c6(A__FIRST(a__from(mark(x0)), s(mark(z0))), MARK(s(z0))) MARK(first(from(x0), cons(z0, z1))) -> c6(A__FIRST(a__from(mark(x0)), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(from(x0), x1)) -> c6(A__FIRST(cons(mark(mark(x0)), from(s(mark(x0)))), mark(x1)), MARK(x1)) MARK(first(from(x0), x1)) -> c6(A__FIRST(from(mark(x0)), mark(x1)), MARK(x1)) MARK(first(from(first(z0, z1)), x1)) -> c6(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(first(from(from(z0)), x1)) -> c6(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(first(from(0), x1)) -> c6(A__FIRST(a__from(0), mark(x1)), MARK(x1)) MARK(first(from(nil), x1)) -> c6(A__FIRST(a__from(nil), mark(x1)), MARK(x1)) MARK(first(from(s(z0)), x1)) -> c6(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(x1)) MARK(first(from(cons(z0, z1)), x1)) -> c6(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) ---------------------------------------- (124) Obligation: Complexity Dependency Tuples Problem Rules: a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(0) -> 0 mark(nil) -> nil mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(s(z0), x1)) -> c6(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(x0, from(x1))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), from(x1))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(first(x0, cons(from(z0), x2))) -> c5(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(0, x2))) -> c5(A__FIRST(mark(x0), cons(0, x2)), MARK(x0)) MARK(first(x0, cons(nil, x2))) -> c5(A__FIRST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(first(x0, cons(s(z0), x2))) -> c5(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(first(first(z0, z1), cons(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(first(z0, z1))) MARK(first(from(z0), cons(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(first(s(z0), cons(x1, x2))) -> c5(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(s(z0))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(first(x0, first(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(first(x0, first(z0, z1)))) MARK(first(first(x0, from(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(first(x0, from(z0)))) MARK(first(first(x0, 0), x2)) -> c5(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(first(x0, 0))) MARK(first(first(x0, nil), x2)) -> c5(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(first(x0, nil))) MARK(first(first(x0, s(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(first(x0, s(z0)))) MARK(first(first(x0, cons(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(first(x0, cons(z0, z1)))) MARK(first(first(first(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(first(first(z0, z1), x1))) MARK(first(first(from(z0), x1), x2)) -> c5(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(first(from(z0), x1))) MARK(first(first(0, x1), x2)) -> c5(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(first(0, x1))) MARK(first(first(nil, x1), x2)) -> c5(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(first(nil, x1))) MARK(first(first(s(z0), x1), x2)) -> c5(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(first(s(z0), x1))) MARK(first(first(cons(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(first(cons(z0, z1), x1))) MARK(first(first(x0, x1), 0)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), nil)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), s(z0))) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), x2)) -> c5(MARK(first(x0, x1))) MARK(first(from(first(z0, z1)), x1)) -> c5(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(from(first(z0, z1)))) MARK(first(from(from(z0)), x1)) -> c5(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(first(from(0), x1)) -> c5(A__FIRST(a__from(0), mark(x1)), MARK(from(0))) MARK(first(from(nil), x1)) -> c5(A__FIRST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(first(from(s(z0)), x1)) -> c5(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(from(s(z0)))) MARK(first(from(cons(z0, z1)), x1)) -> c5(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(first(from(x0), x1)) -> c5(MARK(from(x0))) MARK(first(from(x0), 0)) -> c5(MARK(from(x0))) MARK(first(from(x0), nil)) -> c5(MARK(from(x0))) MARK(first(from(x0), s(z0))) -> c5(MARK(from(x0))) MARK(first(s(first(z0, z1)), x1)) -> c5(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(s(first(z0, z1)))) MARK(first(s(from(z0)), x1)) -> c5(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(s(from(z0)))) MARK(first(s(0), x1)) -> c5(A__FIRST(s(0), mark(x1)), MARK(s(0))) MARK(first(s(nil), x1)) -> c5(A__FIRST(s(nil), mark(x1)), MARK(s(nil))) MARK(first(s(s(z0)), x1)) -> c5(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(s(s(z0)))) MARK(first(s(cons(z0, z1)), x1)) -> c5(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(s(cons(z0, z1)))) MARK(first(s(x0), x1)) -> c5(MARK(s(x0))) MARK(first(s(x0), 0)) -> c5(MARK(s(x0))) MARK(first(s(x0), nil)) -> c5(MARK(s(x0))) MARK(first(s(x0), s(z0))) -> c5(MARK(s(x0))) MARK(first(x0, first(x1, first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(first(x1, first(z0, z1)))) MARK(first(x0, first(x1, from(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(first(x1, from(z0)))) MARK(first(x0, first(x1, 0))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(first(x1, 0))) MARK(first(x0, first(x1, nil))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(first(x1, nil))) MARK(first(x0, first(x1, s(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(first(x1, s(z0)))) MARK(first(x0, first(x1, cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(first(x1, cons(z0, z1)))) MARK(first(x0, first(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(first(first(z0, z1), x2))) MARK(first(x0, first(from(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(first(from(z0), x2))) MARK(first(x0, first(0, x2))) -> c6(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(first(0, x2))) MARK(first(x0, first(nil, x2))) -> c6(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(first(nil, x2))) MARK(first(x0, first(s(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(first(s(z0), x2))) MARK(first(x0, first(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(first(cons(z0, z1), x2))) MARK(first(first(z0, z1), first(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(from(z0), first(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(s(z0), first(x1, x2))) -> c6(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(x0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(nil, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(cons(z0, z1), first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(x0, from(x1))) -> c6(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(first(x0, from(first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(from(first(z0, z1)))) MARK(first(x0, from(from(z0)))) -> c6(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(first(x0, from(0))) -> c6(A__FIRST(mark(x0), a__from(0)), MARK(from(0))) MARK(first(x0, from(nil))) -> c6(A__FIRST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(first(x0, from(s(z0)))) -> c6(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(from(s(z0)))) MARK(first(x0, from(cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(first(first(z0, z1), from(x1))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(first(from(z0), from(x1))) -> c6(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(s(z0), from(x1))) -> c6(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(x0, from(x1))) -> c6(MARK(from(x1))) MARK(first(0, from(x1))) -> c6(MARK(from(x1))) MARK(first(nil, from(x1))) -> c6(MARK(from(x1))) MARK(first(cons(z0, z1), from(x1))) -> c6(MARK(from(x1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(cons(first(z0, z1), x2))) MARK(first(x0, cons(from(z0), x2))) -> c6(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(first(x0, cons(0, x2))) -> c6(A__FIRST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(first(x0, cons(nil, x2))) -> c6(A__FIRST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(first(x0, cons(s(z0), x2))) -> c6(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(cons(s(z0), x2))) MARK(first(x0, cons(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(first(first(z0, z1), cons(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(from(z0), cons(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(s(z0), cons(x1, x2))) -> c6(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(x0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(nil, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(first(x0, first(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(first(first(x0, from(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, 0), x2)) -> c6(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(x2)) MARK(first(first(x0, nil), x2)) -> c6(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(x2)) MARK(first(first(x0, s(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, cons(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(first(first(first(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(from(z0), x1), x2)) -> c6(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(0, x1), x2)) -> c6(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(nil, x1), x2)) -> c6(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(s(z0), x1), x2)) -> c6(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(cons(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(x0, x1), s(z0))) -> c6(MARK(s(z0))) MARK(first(first(x0, x1), x2)) -> c6(MARK(x2)) MARK(first(from(x0), 0)) -> c6(A__FIRST(a__from(mark(x0)), 0), MARK(0)) MARK(first(from(x0), nil)) -> c6(A__FIRST(a__from(mark(x0)), nil), MARK(nil)) MARK(first(from(x0), s(z0))) -> c6(A__FIRST(a__from(mark(x0)), s(mark(z0))), MARK(s(z0))) MARK(first(from(x0), x1)) -> c6(A__FIRST(cons(mark(mark(x0)), from(s(mark(x0)))), mark(x1)), MARK(x1)) MARK(first(from(x0), x1)) -> c6(A__FIRST(from(mark(x0)), mark(x1)), MARK(x1)) MARK(first(from(first(z0, z1)), x1)) -> c6(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(first(from(from(z0)), x1)) -> c6(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(first(from(0), x1)) -> c6(A__FIRST(a__from(0), mark(x1)), MARK(x1)) MARK(first(from(nil), x1)) -> c6(A__FIRST(a__from(nil), mark(x1)), MARK(x1)) MARK(first(from(s(z0)), x1)) -> c6(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(x1)) MARK(first(from(cons(z0, z1)), x1)) -> c6(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) S tuples: A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(s(z0), x1)) -> c6(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(x0, from(x1))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), from(x1))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(first(x0, cons(from(z0), x2))) -> c5(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(0, x2))) -> c5(A__FIRST(mark(x0), cons(0, x2)), MARK(x0)) MARK(first(x0, cons(nil, x2))) -> c5(A__FIRST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(first(x0, cons(s(z0), x2))) -> c5(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(first(first(z0, z1), cons(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(first(z0, z1))) MARK(first(from(z0), cons(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(first(s(z0), cons(x1, x2))) -> c5(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(s(z0))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(first(x0, first(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(first(x0, first(z0, z1)))) MARK(first(first(x0, from(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(first(x0, from(z0)))) MARK(first(first(x0, 0), x2)) -> c5(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(first(x0, 0))) MARK(first(first(x0, nil), x2)) -> c5(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(first(x0, nil))) MARK(first(first(x0, s(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(first(x0, s(z0)))) MARK(first(first(x0, cons(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(first(x0, cons(z0, z1)))) MARK(first(first(first(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(first(first(z0, z1), x1))) MARK(first(first(from(z0), x1), x2)) -> c5(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(first(from(z0), x1))) MARK(first(first(0, x1), x2)) -> c5(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(first(0, x1))) MARK(first(first(nil, x1), x2)) -> c5(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(first(nil, x1))) MARK(first(first(s(z0), x1), x2)) -> c5(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(first(s(z0), x1))) MARK(first(first(cons(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(first(cons(z0, z1), x1))) MARK(first(first(x0, x1), 0)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), nil)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), s(z0))) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), x2)) -> c5(MARK(first(x0, x1))) MARK(first(from(first(z0, z1)), x1)) -> c5(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(from(first(z0, z1)))) MARK(first(from(from(z0)), x1)) -> c5(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(first(from(0), x1)) -> c5(A__FIRST(a__from(0), mark(x1)), MARK(from(0))) MARK(first(from(nil), x1)) -> c5(A__FIRST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(first(from(s(z0)), x1)) -> c5(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(from(s(z0)))) MARK(first(from(cons(z0, z1)), x1)) -> c5(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(first(from(x0), x1)) -> c5(MARK(from(x0))) MARK(first(from(x0), 0)) -> c5(MARK(from(x0))) MARK(first(from(x0), nil)) -> c5(MARK(from(x0))) MARK(first(from(x0), s(z0))) -> c5(MARK(from(x0))) MARK(first(s(first(z0, z1)), x1)) -> c5(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(s(first(z0, z1)))) MARK(first(s(from(z0)), x1)) -> c5(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(s(from(z0)))) MARK(first(s(0), x1)) -> c5(A__FIRST(s(0), mark(x1)), MARK(s(0))) MARK(first(s(nil), x1)) -> c5(A__FIRST(s(nil), mark(x1)), MARK(s(nil))) MARK(first(s(s(z0)), x1)) -> c5(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(s(s(z0)))) MARK(first(s(cons(z0, z1)), x1)) -> c5(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(s(cons(z0, z1)))) MARK(first(s(x0), x1)) -> c5(MARK(s(x0))) MARK(first(s(x0), 0)) -> c5(MARK(s(x0))) MARK(first(s(x0), nil)) -> c5(MARK(s(x0))) MARK(first(s(x0), s(z0))) -> c5(MARK(s(x0))) MARK(first(x0, first(x1, first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(first(x1, first(z0, z1)))) MARK(first(x0, first(x1, from(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(first(x1, from(z0)))) MARK(first(x0, first(x1, 0))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(first(x1, 0))) MARK(first(x0, first(x1, nil))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(first(x1, nil))) MARK(first(x0, first(x1, s(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(first(x1, s(z0)))) MARK(first(x0, first(x1, cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(first(x1, cons(z0, z1)))) MARK(first(x0, first(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(first(first(z0, z1), x2))) MARK(first(x0, first(from(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(first(from(z0), x2))) MARK(first(x0, first(0, x2))) -> c6(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(first(0, x2))) MARK(first(x0, first(nil, x2))) -> c6(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(first(nil, x2))) MARK(first(x0, first(s(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(first(s(z0), x2))) MARK(first(x0, first(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(first(cons(z0, z1), x2))) MARK(first(first(z0, z1), first(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(from(z0), first(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(s(z0), first(x1, x2))) -> c6(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(x0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(nil, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(cons(z0, z1), first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(x0, from(x1))) -> c6(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(first(x0, from(first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(from(first(z0, z1)))) MARK(first(x0, from(from(z0)))) -> c6(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(first(x0, from(0))) -> c6(A__FIRST(mark(x0), a__from(0)), MARK(from(0))) MARK(first(x0, from(nil))) -> c6(A__FIRST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(first(x0, from(s(z0)))) -> c6(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(from(s(z0)))) MARK(first(x0, from(cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(first(first(z0, z1), from(x1))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(first(from(z0), from(x1))) -> c6(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(s(z0), from(x1))) -> c6(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(x0, from(x1))) -> c6(MARK(from(x1))) MARK(first(0, from(x1))) -> c6(MARK(from(x1))) MARK(first(nil, from(x1))) -> c6(MARK(from(x1))) MARK(first(cons(z0, z1), from(x1))) -> c6(MARK(from(x1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(cons(first(z0, z1), x2))) MARK(first(x0, cons(from(z0), x2))) -> c6(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(first(x0, cons(0, x2))) -> c6(A__FIRST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(first(x0, cons(nil, x2))) -> c6(A__FIRST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(first(x0, cons(s(z0), x2))) -> c6(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(cons(s(z0), x2))) MARK(first(x0, cons(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(first(first(z0, z1), cons(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(from(z0), cons(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(s(z0), cons(x1, x2))) -> c6(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(x0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(nil, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(first(x0, first(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(first(first(x0, from(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, 0), x2)) -> c6(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(x2)) MARK(first(first(x0, nil), x2)) -> c6(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(x2)) MARK(first(first(x0, s(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, cons(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(first(first(first(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(from(z0), x1), x2)) -> c6(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(0, x1), x2)) -> c6(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(nil, x1), x2)) -> c6(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(s(z0), x1), x2)) -> c6(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(cons(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(x0, x1), s(z0))) -> c6(MARK(s(z0))) MARK(first(first(x0, x1), x2)) -> c6(MARK(x2)) MARK(first(from(x0), 0)) -> c6(A__FIRST(a__from(mark(x0)), 0), MARK(0)) MARK(first(from(x0), nil)) -> c6(A__FIRST(a__from(mark(x0)), nil), MARK(nil)) MARK(first(from(x0), s(z0))) -> c6(A__FIRST(a__from(mark(x0)), s(mark(z0))), MARK(s(z0))) MARK(first(from(x0), x1)) -> c6(A__FIRST(cons(mark(mark(x0)), from(s(mark(x0)))), mark(x1)), MARK(x1)) MARK(first(from(x0), x1)) -> c6(A__FIRST(from(mark(x0)), mark(x1)), MARK(x1)) MARK(first(from(first(z0, z1)), x1)) -> c6(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(first(from(from(z0)), x1)) -> c6(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(first(from(0), x1)) -> c6(A__FIRST(a__from(0), mark(x1)), MARK(x1)) MARK(first(from(nil), x1)) -> c6(A__FIRST(a__from(nil), mark(x1)), MARK(x1)) MARK(first(from(s(z0)), x1)) -> c6(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(x1)) MARK(first(from(cons(z0, z1)), x1)) -> c6(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) K tuples:none Defined Rule Symbols: a__first_2, a__from_1, mark_1 Defined Pair Symbols: A__FIRST_2, A__FROM_1, MARK_1 Compound Symbols: c1_1, c3_1, c7_2, c10_1, c11_1, c5_1, c6_2, c6_1, c5_2 ---------------------------------------- (125) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing nodes: MARK(first(from(x0), nil)) -> c6(A__FIRST(a__from(mark(x0)), nil), MARK(nil)) MARK(first(from(x0), 0)) -> c6(A__FIRST(a__from(mark(x0)), 0), MARK(0)) ---------------------------------------- (126) Obligation: Complexity Dependency Tuples Problem Rules: a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(0) -> 0 mark(nil) -> nil mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(s(z0), x1)) -> c6(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(x0, from(x1))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), from(x1))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(first(x0, cons(from(z0), x2))) -> c5(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(0, x2))) -> c5(A__FIRST(mark(x0), cons(0, x2)), MARK(x0)) MARK(first(x0, cons(nil, x2))) -> c5(A__FIRST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(first(x0, cons(s(z0), x2))) -> c5(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(first(first(z0, z1), cons(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(first(z0, z1))) MARK(first(from(z0), cons(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(first(s(z0), cons(x1, x2))) -> c5(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(s(z0))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(first(x0, first(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(first(x0, first(z0, z1)))) MARK(first(first(x0, from(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(first(x0, from(z0)))) MARK(first(first(x0, 0), x2)) -> c5(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(first(x0, 0))) MARK(first(first(x0, nil), x2)) -> c5(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(first(x0, nil))) MARK(first(first(x0, s(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(first(x0, s(z0)))) MARK(first(first(x0, cons(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(first(x0, cons(z0, z1)))) MARK(first(first(first(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(first(first(z0, z1), x1))) MARK(first(first(from(z0), x1), x2)) -> c5(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(first(from(z0), x1))) MARK(first(first(0, x1), x2)) -> c5(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(first(0, x1))) MARK(first(first(nil, x1), x2)) -> c5(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(first(nil, x1))) MARK(first(first(s(z0), x1), x2)) -> c5(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(first(s(z0), x1))) MARK(first(first(cons(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(first(cons(z0, z1), x1))) MARK(first(first(x0, x1), 0)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), nil)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), s(z0))) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), x2)) -> c5(MARK(first(x0, x1))) MARK(first(from(first(z0, z1)), x1)) -> c5(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(from(first(z0, z1)))) MARK(first(from(from(z0)), x1)) -> c5(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(first(from(0), x1)) -> c5(A__FIRST(a__from(0), mark(x1)), MARK(from(0))) MARK(first(from(nil), x1)) -> c5(A__FIRST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(first(from(s(z0)), x1)) -> c5(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(from(s(z0)))) MARK(first(from(cons(z0, z1)), x1)) -> c5(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(first(from(x0), x1)) -> c5(MARK(from(x0))) MARK(first(from(x0), 0)) -> c5(MARK(from(x0))) MARK(first(from(x0), nil)) -> c5(MARK(from(x0))) MARK(first(from(x0), s(z0))) -> c5(MARK(from(x0))) MARK(first(s(first(z0, z1)), x1)) -> c5(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(s(first(z0, z1)))) MARK(first(s(from(z0)), x1)) -> c5(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(s(from(z0)))) MARK(first(s(0), x1)) -> c5(A__FIRST(s(0), mark(x1)), MARK(s(0))) MARK(first(s(nil), x1)) -> c5(A__FIRST(s(nil), mark(x1)), MARK(s(nil))) MARK(first(s(s(z0)), x1)) -> c5(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(s(s(z0)))) MARK(first(s(cons(z0, z1)), x1)) -> c5(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(s(cons(z0, z1)))) MARK(first(s(x0), x1)) -> c5(MARK(s(x0))) MARK(first(s(x0), 0)) -> c5(MARK(s(x0))) MARK(first(s(x0), nil)) -> c5(MARK(s(x0))) MARK(first(s(x0), s(z0))) -> c5(MARK(s(x0))) MARK(first(x0, first(x1, first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(first(x1, first(z0, z1)))) MARK(first(x0, first(x1, from(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(first(x1, from(z0)))) MARK(first(x0, first(x1, 0))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(first(x1, 0))) MARK(first(x0, first(x1, nil))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(first(x1, nil))) MARK(first(x0, first(x1, s(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(first(x1, s(z0)))) MARK(first(x0, first(x1, cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(first(x1, cons(z0, z1)))) MARK(first(x0, first(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(first(first(z0, z1), x2))) MARK(first(x0, first(from(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(first(from(z0), x2))) MARK(first(x0, first(0, x2))) -> c6(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(first(0, x2))) MARK(first(x0, first(nil, x2))) -> c6(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(first(nil, x2))) MARK(first(x0, first(s(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(first(s(z0), x2))) MARK(first(x0, first(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(first(cons(z0, z1), x2))) MARK(first(first(z0, z1), first(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(from(z0), first(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(s(z0), first(x1, x2))) -> c6(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(x0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(nil, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(cons(z0, z1), first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(x0, from(x1))) -> c6(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(first(x0, from(first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(from(first(z0, z1)))) MARK(first(x0, from(from(z0)))) -> c6(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(first(x0, from(0))) -> c6(A__FIRST(mark(x0), a__from(0)), MARK(from(0))) MARK(first(x0, from(nil))) -> c6(A__FIRST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(first(x0, from(s(z0)))) -> c6(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(from(s(z0)))) MARK(first(x0, from(cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(first(first(z0, z1), from(x1))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(first(from(z0), from(x1))) -> c6(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(s(z0), from(x1))) -> c6(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(x0, from(x1))) -> c6(MARK(from(x1))) MARK(first(0, from(x1))) -> c6(MARK(from(x1))) MARK(first(nil, from(x1))) -> c6(MARK(from(x1))) MARK(first(cons(z0, z1), from(x1))) -> c6(MARK(from(x1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(cons(first(z0, z1), x2))) MARK(first(x0, cons(from(z0), x2))) -> c6(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(first(x0, cons(0, x2))) -> c6(A__FIRST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(first(x0, cons(nil, x2))) -> c6(A__FIRST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(first(x0, cons(s(z0), x2))) -> c6(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(cons(s(z0), x2))) MARK(first(x0, cons(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(first(first(z0, z1), cons(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(from(z0), cons(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(s(z0), cons(x1, x2))) -> c6(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(x0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(nil, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(first(x0, first(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(first(first(x0, from(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, 0), x2)) -> c6(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(x2)) MARK(first(first(x0, nil), x2)) -> c6(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(x2)) MARK(first(first(x0, s(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, cons(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(first(first(first(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(from(z0), x1), x2)) -> c6(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(0, x1), x2)) -> c6(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(nil, x1), x2)) -> c6(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(s(z0), x1), x2)) -> c6(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(cons(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(x0, x1), s(z0))) -> c6(MARK(s(z0))) MARK(first(first(x0, x1), x2)) -> c6(MARK(x2)) MARK(first(from(x0), s(z0))) -> c6(A__FIRST(a__from(mark(x0)), s(mark(z0))), MARK(s(z0))) MARK(first(from(x0), x1)) -> c6(A__FIRST(cons(mark(mark(x0)), from(s(mark(x0)))), mark(x1)), MARK(x1)) MARK(first(from(x0), x1)) -> c6(A__FIRST(from(mark(x0)), mark(x1)), MARK(x1)) MARK(first(from(first(z0, z1)), x1)) -> c6(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(first(from(from(z0)), x1)) -> c6(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(first(from(0), x1)) -> c6(A__FIRST(a__from(0), mark(x1)), MARK(x1)) MARK(first(from(nil), x1)) -> c6(A__FIRST(a__from(nil), mark(x1)), MARK(x1)) MARK(first(from(s(z0)), x1)) -> c6(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(x1)) MARK(first(from(cons(z0, z1)), x1)) -> c6(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) S tuples: A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(s(z0), x1)) -> c6(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(x0, from(x1))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), from(x1))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(first(x0, cons(from(z0), x2))) -> c5(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(0, x2))) -> c5(A__FIRST(mark(x0), cons(0, x2)), MARK(x0)) MARK(first(x0, cons(nil, x2))) -> c5(A__FIRST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(first(x0, cons(s(z0), x2))) -> c5(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(first(first(z0, z1), cons(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(first(z0, z1))) MARK(first(from(z0), cons(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(first(s(z0), cons(x1, x2))) -> c5(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(s(z0))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(first(x0, first(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(first(x0, first(z0, z1)))) MARK(first(first(x0, from(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(first(x0, from(z0)))) MARK(first(first(x0, 0), x2)) -> c5(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(first(x0, 0))) MARK(first(first(x0, nil), x2)) -> c5(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(first(x0, nil))) MARK(first(first(x0, s(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(first(x0, s(z0)))) MARK(first(first(x0, cons(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(first(x0, cons(z0, z1)))) MARK(first(first(first(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(first(first(z0, z1), x1))) MARK(first(first(from(z0), x1), x2)) -> c5(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(first(from(z0), x1))) MARK(first(first(0, x1), x2)) -> c5(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(first(0, x1))) MARK(first(first(nil, x1), x2)) -> c5(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(first(nil, x1))) MARK(first(first(s(z0), x1), x2)) -> c5(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(first(s(z0), x1))) MARK(first(first(cons(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(first(cons(z0, z1), x1))) MARK(first(first(x0, x1), 0)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), nil)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), s(z0))) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), x2)) -> c5(MARK(first(x0, x1))) MARK(first(from(first(z0, z1)), x1)) -> c5(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(from(first(z0, z1)))) MARK(first(from(from(z0)), x1)) -> c5(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(first(from(0), x1)) -> c5(A__FIRST(a__from(0), mark(x1)), MARK(from(0))) MARK(first(from(nil), x1)) -> c5(A__FIRST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(first(from(s(z0)), x1)) -> c5(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(from(s(z0)))) MARK(first(from(cons(z0, z1)), x1)) -> c5(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(first(from(x0), x1)) -> c5(MARK(from(x0))) MARK(first(from(x0), 0)) -> c5(MARK(from(x0))) MARK(first(from(x0), nil)) -> c5(MARK(from(x0))) MARK(first(from(x0), s(z0))) -> c5(MARK(from(x0))) MARK(first(s(first(z0, z1)), x1)) -> c5(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(s(first(z0, z1)))) MARK(first(s(from(z0)), x1)) -> c5(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(s(from(z0)))) MARK(first(s(0), x1)) -> c5(A__FIRST(s(0), mark(x1)), MARK(s(0))) MARK(first(s(nil), x1)) -> c5(A__FIRST(s(nil), mark(x1)), MARK(s(nil))) MARK(first(s(s(z0)), x1)) -> c5(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(s(s(z0)))) MARK(first(s(cons(z0, z1)), x1)) -> c5(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(s(cons(z0, z1)))) MARK(first(s(x0), x1)) -> c5(MARK(s(x0))) MARK(first(s(x0), 0)) -> c5(MARK(s(x0))) MARK(first(s(x0), nil)) -> c5(MARK(s(x0))) MARK(first(s(x0), s(z0))) -> c5(MARK(s(x0))) MARK(first(x0, first(x1, first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(first(x1, first(z0, z1)))) MARK(first(x0, first(x1, from(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(first(x1, from(z0)))) MARK(first(x0, first(x1, 0))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(first(x1, 0))) MARK(first(x0, first(x1, nil))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(first(x1, nil))) MARK(first(x0, first(x1, s(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(first(x1, s(z0)))) MARK(first(x0, first(x1, cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(first(x1, cons(z0, z1)))) MARK(first(x0, first(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(first(first(z0, z1), x2))) MARK(first(x0, first(from(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(first(from(z0), x2))) MARK(first(x0, first(0, x2))) -> c6(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(first(0, x2))) MARK(first(x0, first(nil, x2))) -> c6(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(first(nil, x2))) MARK(first(x0, first(s(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(first(s(z0), x2))) MARK(first(x0, first(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(first(cons(z0, z1), x2))) MARK(first(first(z0, z1), first(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(from(z0), first(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(s(z0), first(x1, x2))) -> c6(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(x0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(nil, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(cons(z0, z1), first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(x0, from(x1))) -> c6(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(first(x0, from(first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(from(first(z0, z1)))) MARK(first(x0, from(from(z0)))) -> c6(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(first(x0, from(0))) -> c6(A__FIRST(mark(x0), a__from(0)), MARK(from(0))) MARK(first(x0, from(nil))) -> c6(A__FIRST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(first(x0, from(s(z0)))) -> c6(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(from(s(z0)))) MARK(first(x0, from(cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(first(first(z0, z1), from(x1))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(first(from(z0), from(x1))) -> c6(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(s(z0), from(x1))) -> c6(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(x0, from(x1))) -> c6(MARK(from(x1))) MARK(first(0, from(x1))) -> c6(MARK(from(x1))) MARK(first(nil, from(x1))) -> c6(MARK(from(x1))) MARK(first(cons(z0, z1), from(x1))) -> c6(MARK(from(x1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(cons(first(z0, z1), x2))) MARK(first(x0, cons(from(z0), x2))) -> c6(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(first(x0, cons(0, x2))) -> c6(A__FIRST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(first(x0, cons(nil, x2))) -> c6(A__FIRST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(first(x0, cons(s(z0), x2))) -> c6(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(cons(s(z0), x2))) MARK(first(x0, cons(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(first(first(z0, z1), cons(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(from(z0), cons(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(s(z0), cons(x1, x2))) -> c6(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(x0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(nil, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(first(x0, first(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(first(first(x0, from(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, 0), x2)) -> c6(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(x2)) MARK(first(first(x0, nil), x2)) -> c6(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(x2)) MARK(first(first(x0, s(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, cons(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(first(first(first(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(from(z0), x1), x2)) -> c6(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(0, x1), x2)) -> c6(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(nil, x1), x2)) -> c6(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(s(z0), x1), x2)) -> c6(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(cons(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(x0, x1), s(z0))) -> c6(MARK(s(z0))) MARK(first(first(x0, x1), x2)) -> c6(MARK(x2)) MARK(first(from(x0), s(z0))) -> c6(A__FIRST(a__from(mark(x0)), s(mark(z0))), MARK(s(z0))) MARK(first(from(x0), x1)) -> c6(A__FIRST(cons(mark(mark(x0)), from(s(mark(x0)))), mark(x1)), MARK(x1)) MARK(first(from(x0), x1)) -> c6(A__FIRST(from(mark(x0)), mark(x1)), MARK(x1)) MARK(first(from(first(z0, z1)), x1)) -> c6(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(first(from(from(z0)), x1)) -> c6(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(first(from(0), x1)) -> c6(A__FIRST(a__from(0), mark(x1)), MARK(x1)) MARK(first(from(nil), x1)) -> c6(A__FIRST(a__from(nil), mark(x1)), MARK(x1)) MARK(first(from(s(z0)), x1)) -> c6(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(x1)) MARK(first(from(cons(z0, z1)), x1)) -> c6(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) K tuples:none Defined Rule Symbols: a__first_2, a__from_1, mark_1 Defined Pair Symbols: A__FIRST_2, A__FROM_1, MARK_1 Compound Symbols: c1_1, c3_1, c7_2, c10_1, c11_1, c5_1, c6_2, c6_1, c5_2 ---------------------------------------- (127) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing tuple parts ---------------------------------------- (128) Obligation: Complexity Dependency Tuples Problem Rules: a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(0) -> 0 mark(nil) -> nil mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(s(z0), x1)) -> c6(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(x0, from(x1))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), from(x1))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(first(x0, cons(from(z0), x2))) -> c5(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(0, x2))) -> c5(A__FIRST(mark(x0), cons(0, x2)), MARK(x0)) MARK(first(x0, cons(nil, x2))) -> c5(A__FIRST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(first(x0, cons(s(z0), x2))) -> c5(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(first(first(z0, z1), cons(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(first(z0, z1))) MARK(first(from(z0), cons(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(first(s(z0), cons(x1, x2))) -> c5(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(s(z0))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(first(x0, first(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(first(x0, first(z0, z1)))) MARK(first(first(x0, from(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(first(x0, from(z0)))) MARK(first(first(x0, 0), x2)) -> c5(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(first(x0, 0))) MARK(first(first(x0, nil), x2)) -> c5(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(first(x0, nil))) MARK(first(first(x0, s(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(first(x0, s(z0)))) MARK(first(first(x0, cons(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(first(x0, cons(z0, z1)))) MARK(first(first(first(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(first(first(z0, z1), x1))) MARK(first(first(from(z0), x1), x2)) -> c5(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(first(from(z0), x1))) MARK(first(first(0, x1), x2)) -> c5(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(first(0, x1))) MARK(first(first(nil, x1), x2)) -> c5(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(first(nil, x1))) MARK(first(first(s(z0), x1), x2)) -> c5(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(first(s(z0), x1))) MARK(first(first(cons(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(first(cons(z0, z1), x1))) MARK(first(first(x0, x1), 0)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), nil)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), s(z0))) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), x2)) -> c5(MARK(first(x0, x1))) MARK(first(from(first(z0, z1)), x1)) -> c5(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(from(first(z0, z1)))) MARK(first(from(from(z0)), x1)) -> c5(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(first(from(0), x1)) -> c5(A__FIRST(a__from(0), mark(x1)), MARK(from(0))) MARK(first(from(nil), x1)) -> c5(A__FIRST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(first(from(s(z0)), x1)) -> c5(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(from(s(z0)))) MARK(first(from(cons(z0, z1)), x1)) -> c5(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(first(from(x0), x1)) -> c5(MARK(from(x0))) MARK(first(from(x0), 0)) -> c5(MARK(from(x0))) MARK(first(from(x0), nil)) -> c5(MARK(from(x0))) MARK(first(from(x0), s(z0))) -> c5(MARK(from(x0))) MARK(first(s(first(z0, z1)), x1)) -> c5(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(s(first(z0, z1)))) MARK(first(s(from(z0)), x1)) -> c5(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(s(from(z0)))) MARK(first(s(0), x1)) -> c5(A__FIRST(s(0), mark(x1)), MARK(s(0))) MARK(first(s(nil), x1)) -> c5(A__FIRST(s(nil), mark(x1)), MARK(s(nil))) MARK(first(s(s(z0)), x1)) -> c5(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(s(s(z0)))) MARK(first(s(cons(z0, z1)), x1)) -> c5(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(s(cons(z0, z1)))) MARK(first(s(x0), x1)) -> c5(MARK(s(x0))) MARK(first(s(x0), 0)) -> c5(MARK(s(x0))) MARK(first(s(x0), nil)) -> c5(MARK(s(x0))) MARK(first(s(x0), s(z0))) -> c5(MARK(s(x0))) MARK(first(x0, first(x1, first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(first(x1, first(z0, z1)))) MARK(first(x0, first(x1, from(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(first(x1, from(z0)))) MARK(first(x0, first(x1, 0))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(first(x1, 0))) MARK(first(x0, first(x1, nil))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(first(x1, nil))) MARK(first(x0, first(x1, s(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(first(x1, s(z0)))) MARK(first(x0, first(x1, cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(first(x1, cons(z0, z1)))) MARK(first(x0, first(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(first(first(z0, z1), x2))) MARK(first(x0, first(from(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(first(from(z0), x2))) MARK(first(x0, first(0, x2))) -> c6(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(first(0, x2))) MARK(first(x0, first(nil, x2))) -> c6(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(first(nil, x2))) MARK(first(x0, first(s(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(first(s(z0), x2))) MARK(first(x0, first(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(first(cons(z0, z1), x2))) MARK(first(first(z0, z1), first(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(from(z0), first(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(s(z0), first(x1, x2))) -> c6(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(x0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(nil, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(cons(z0, z1), first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(x0, from(x1))) -> c6(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(first(x0, from(first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(from(first(z0, z1)))) MARK(first(x0, from(from(z0)))) -> c6(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(first(x0, from(0))) -> c6(A__FIRST(mark(x0), a__from(0)), MARK(from(0))) MARK(first(x0, from(nil))) -> c6(A__FIRST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(first(x0, from(s(z0)))) -> c6(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(from(s(z0)))) MARK(first(x0, from(cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(first(first(z0, z1), from(x1))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(first(from(z0), from(x1))) -> c6(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(s(z0), from(x1))) -> c6(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(x0, from(x1))) -> c6(MARK(from(x1))) MARK(first(0, from(x1))) -> c6(MARK(from(x1))) MARK(first(nil, from(x1))) -> c6(MARK(from(x1))) MARK(first(cons(z0, z1), from(x1))) -> c6(MARK(from(x1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(cons(first(z0, z1), x2))) MARK(first(x0, cons(from(z0), x2))) -> c6(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(first(x0, cons(0, x2))) -> c6(A__FIRST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(first(x0, cons(nil, x2))) -> c6(A__FIRST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(first(x0, cons(s(z0), x2))) -> c6(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(cons(s(z0), x2))) MARK(first(x0, cons(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(first(first(z0, z1), cons(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(from(z0), cons(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(s(z0), cons(x1, x2))) -> c6(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(x0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(nil, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(first(x0, first(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(first(first(x0, from(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, 0), x2)) -> c6(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(x2)) MARK(first(first(x0, nil), x2)) -> c6(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(x2)) MARK(first(first(x0, s(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, cons(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(first(first(first(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(from(z0), x1), x2)) -> c6(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(0, x1), x2)) -> c6(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(nil, x1), x2)) -> c6(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(s(z0), x1), x2)) -> c6(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(cons(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(x0, x1), s(z0))) -> c6(MARK(s(z0))) MARK(first(first(x0, x1), x2)) -> c6(MARK(x2)) MARK(first(from(first(z0, z1)), x1)) -> c6(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(first(from(from(z0)), x1)) -> c6(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(first(from(0), x1)) -> c6(A__FIRST(a__from(0), mark(x1)), MARK(x1)) MARK(first(from(nil), x1)) -> c6(A__FIRST(a__from(nil), mark(x1)), MARK(x1)) MARK(first(from(s(z0)), x1)) -> c6(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(x1)) MARK(first(from(cons(z0, z1)), x1)) -> c6(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(first(from(x0), s(z0))) -> c6(MARK(s(z0))) MARK(first(from(x0), x1)) -> c6(MARK(x1)) S tuples: A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(s(z0), x1)) -> c6(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(x0, from(x1))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), from(x1))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(first(x0, cons(from(z0), x2))) -> c5(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(0, x2))) -> c5(A__FIRST(mark(x0), cons(0, x2)), MARK(x0)) MARK(first(x0, cons(nil, x2))) -> c5(A__FIRST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(first(x0, cons(s(z0), x2))) -> c5(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(first(first(z0, z1), cons(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(first(z0, z1))) MARK(first(from(z0), cons(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(first(s(z0), cons(x1, x2))) -> c5(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(s(z0))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(first(x0, first(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(first(x0, first(z0, z1)))) MARK(first(first(x0, from(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(first(x0, from(z0)))) MARK(first(first(x0, 0), x2)) -> c5(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(first(x0, 0))) MARK(first(first(x0, nil), x2)) -> c5(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(first(x0, nil))) MARK(first(first(x0, s(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(first(x0, s(z0)))) MARK(first(first(x0, cons(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(first(x0, cons(z0, z1)))) MARK(first(first(first(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(first(first(z0, z1), x1))) MARK(first(first(from(z0), x1), x2)) -> c5(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(first(from(z0), x1))) MARK(first(first(0, x1), x2)) -> c5(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(first(0, x1))) MARK(first(first(nil, x1), x2)) -> c5(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(first(nil, x1))) MARK(first(first(s(z0), x1), x2)) -> c5(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(first(s(z0), x1))) MARK(first(first(cons(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(first(cons(z0, z1), x1))) MARK(first(first(x0, x1), 0)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), nil)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), s(z0))) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), x2)) -> c5(MARK(first(x0, x1))) MARK(first(from(first(z0, z1)), x1)) -> c5(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(from(first(z0, z1)))) MARK(first(from(from(z0)), x1)) -> c5(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(first(from(0), x1)) -> c5(A__FIRST(a__from(0), mark(x1)), MARK(from(0))) MARK(first(from(nil), x1)) -> c5(A__FIRST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(first(from(s(z0)), x1)) -> c5(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(from(s(z0)))) MARK(first(from(cons(z0, z1)), x1)) -> c5(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(first(from(x0), x1)) -> c5(MARK(from(x0))) MARK(first(from(x0), 0)) -> c5(MARK(from(x0))) MARK(first(from(x0), nil)) -> c5(MARK(from(x0))) MARK(first(from(x0), s(z0))) -> c5(MARK(from(x0))) MARK(first(s(first(z0, z1)), x1)) -> c5(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(s(first(z0, z1)))) MARK(first(s(from(z0)), x1)) -> c5(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(s(from(z0)))) MARK(first(s(0), x1)) -> c5(A__FIRST(s(0), mark(x1)), MARK(s(0))) MARK(first(s(nil), x1)) -> c5(A__FIRST(s(nil), mark(x1)), MARK(s(nil))) MARK(first(s(s(z0)), x1)) -> c5(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(s(s(z0)))) MARK(first(s(cons(z0, z1)), x1)) -> c5(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(s(cons(z0, z1)))) MARK(first(s(x0), x1)) -> c5(MARK(s(x0))) MARK(first(s(x0), 0)) -> c5(MARK(s(x0))) MARK(first(s(x0), nil)) -> c5(MARK(s(x0))) MARK(first(s(x0), s(z0))) -> c5(MARK(s(x0))) MARK(first(x0, first(x1, first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(first(x1, first(z0, z1)))) MARK(first(x0, first(x1, from(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(first(x1, from(z0)))) MARK(first(x0, first(x1, 0))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(first(x1, 0))) MARK(first(x0, first(x1, nil))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(first(x1, nil))) MARK(first(x0, first(x1, s(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(first(x1, s(z0)))) MARK(first(x0, first(x1, cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(first(x1, cons(z0, z1)))) MARK(first(x0, first(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(first(first(z0, z1), x2))) MARK(first(x0, first(from(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(first(from(z0), x2))) MARK(first(x0, first(0, x2))) -> c6(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(first(0, x2))) MARK(first(x0, first(nil, x2))) -> c6(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(first(nil, x2))) MARK(first(x0, first(s(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(first(s(z0), x2))) MARK(first(x0, first(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(first(cons(z0, z1), x2))) MARK(first(first(z0, z1), first(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(from(z0), first(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(s(z0), first(x1, x2))) -> c6(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(x0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(nil, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(cons(z0, z1), first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(x0, from(x1))) -> c6(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(first(x0, from(first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(from(first(z0, z1)))) MARK(first(x0, from(from(z0)))) -> c6(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(first(x0, from(0))) -> c6(A__FIRST(mark(x0), a__from(0)), MARK(from(0))) MARK(first(x0, from(nil))) -> c6(A__FIRST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(first(x0, from(s(z0)))) -> c6(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(from(s(z0)))) MARK(first(x0, from(cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(first(first(z0, z1), from(x1))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(first(from(z0), from(x1))) -> c6(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(s(z0), from(x1))) -> c6(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(x0, from(x1))) -> c6(MARK(from(x1))) MARK(first(0, from(x1))) -> c6(MARK(from(x1))) MARK(first(nil, from(x1))) -> c6(MARK(from(x1))) MARK(first(cons(z0, z1), from(x1))) -> c6(MARK(from(x1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(cons(first(z0, z1), x2))) MARK(first(x0, cons(from(z0), x2))) -> c6(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(first(x0, cons(0, x2))) -> c6(A__FIRST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(first(x0, cons(nil, x2))) -> c6(A__FIRST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(first(x0, cons(s(z0), x2))) -> c6(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(cons(s(z0), x2))) MARK(first(x0, cons(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(first(first(z0, z1), cons(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(from(z0), cons(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(s(z0), cons(x1, x2))) -> c6(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(x0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(nil, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(first(x0, first(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(first(first(x0, from(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, 0), x2)) -> c6(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(x2)) MARK(first(first(x0, nil), x2)) -> c6(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(x2)) MARK(first(first(x0, s(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, cons(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(first(first(first(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(from(z0), x1), x2)) -> c6(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(0, x1), x2)) -> c6(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(nil, x1), x2)) -> c6(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(s(z0), x1), x2)) -> c6(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(cons(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(x0, x1), s(z0))) -> c6(MARK(s(z0))) MARK(first(first(x0, x1), x2)) -> c6(MARK(x2)) MARK(first(from(first(z0, z1)), x1)) -> c6(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(first(from(from(z0)), x1)) -> c6(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(first(from(0), x1)) -> c6(A__FIRST(a__from(0), mark(x1)), MARK(x1)) MARK(first(from(nil), x1)) -> c6(A__FIRST(a__from(nil), mark(x1)), MARK(x1)) MARK(first(from(s(z0)), x1)) -> c6(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(x1)) MARK(first(from(cons(z0, z1)), x1)) -> c6(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(first(from(x0), s(z0))) -> c6(MARK(s(z0))) MARK(first(from(x0), x1)) -> c6(MARK(x1)) K tuples:none Defined Rule Symbols: a__first_2, a__from_1, mark_1 Defined Pair Symbols: A__FIRST_2, A__FROM_1, MARK_1 Compound Symbols: c1_1, c3_1, c7_2, c10_1, c11_1, c5_1, c6_2, c6_1, c5_2 ---------------------------------------- (129) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(first(s(z0), x1)) -> c6(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) by MARK(first(s(x0), first(z0, z1))) -> c6(A__FIRST(s(mark(x0)), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(s(x0), from(z0))) -> c6(A__FIRST(s(mark(x0)), a__from(mark(z0))), MARK(from(z0))) MARK(first(s(x0), 0)) -> c6(A__FIRST(s(mark(x0)), 0), MARK(0)) MARK(first(s(x0), nil)) -> c6(A__FIRST(s(mark(x0)), nil), MARK(nil)) MARK(first(s(x0), s(z0))) -> c6(A__FIRST(s(mark(x0)), s(mark(z0))), MARK(s(z0))) MARK(first(s(x0), cons(z0, z1))) -> c6(A__FIRST(s(mark(x0)), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(s(first(z0, z1)), x1)) -> c6(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(first(s(from(z0)), x1)) -> c6(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(first(s(0), x1)) -> c6(A__FIRST(s(0), mark(x1)), MARK(x1)) MARK(first(s(nil), x1)) -> c6(A__FIRST(s(nil), mark(x1)), MARK(x1)) MARK(first(s(s(z0)), x1)) -> c6(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(x1)) MARK(first(s(cons(z0, z1)), x1)) -> c6(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(x1)) ---------------------------------------- (130) Obligation: Complexity Dependency Tuples Problem Rules: a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(0) -> 0 mark(nil) -> nil mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(x0, from(x1))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), from(x1))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(first(x0, cons(from(z0), x2))) -> c5(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(0, x2))) -> c5(A__FIRST(mark(x0), cons(0, x2)), MARK(x0)) MARK(first(x0, cons(nil, x2))) -> c5(A__FIRST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(first(x0, cons(s(z0), x2))) -> c5(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(first(first(z0, z1), cons(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(first(z0, z1))) MARK(first(from(z0), cons(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(first(s(z0), cons(x1, x2))) -> c5(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(s(z0))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(first(x0, first(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(first(x0, first(z0, z1)))) MARK(first(first(x0, from(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(first(x0, from(z0)))) MARK(first(first(x0, 0), x2)) -> c5(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(first(x0, 0))) MARK(first(first(x0, nil), x2)) -> c5(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(first(x0, nil))) MARK(first(first(x0, s(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(first(x0, s(z0)))) MARK(first(first(x0, cons(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(first(x0, cons(z0, z1)))) MARK(first(first(first(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(first(first(z0, z1), x1))) MARK(first(first(from(z0), x1), x2)) -> c5(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(first(from(z0), x1))) MARK(first(first(0, x1), x2)) -> c5(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(first(0, x1))) MARK(first(first(nil, x1), x2)) -> c5(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(first(nil, x1))) MARK(first(first(s(z0), x1), x2)) -> c5(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(first(s(z0), x1))) MARK(first(first(cons(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(first(cons(z0, z1), x1))) MARK(first(first(x0, x1), 0)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), nil)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), s(z0))) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), x2)) -> c5(MARK(first(x0, x1))) MARK(first(from(first(z0, z1)), x1)) -> c5(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(from(first(z0, z1)))) MARK(first(from(from(z0)), x1)) -> c5(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(first(from(0), x1)) -> c5(A__FIRST(a__from(0), mark(x1)), MARK(from(0))) MARK(first(from(nil), x1)) -> c5(A__FIRST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(first(from(s(z0)), x1)) -> c5(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(from(s(z0)))) MARK(first(from(cons(z0, z1)), x1)) -> c5(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(first(from(x0), x1)) -> c5(MARK(from(x0))) MARK(first(from(x0), 0)) -> c5(MARK(from(x0))) MARK(first(from(x0), nil)) -> c5(MARK(from(x0))) MARK(first(from(x0), s(z0))) -> c5(MARK(from(x0))) MARK(first(s(first(z0, z1)), x1)) -> c5(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(s(first(z0, z1)))) MARK(first(s(from(z0)), x1)) -> c5(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(s(from(z0)))) MARK(first(s(0), x1)) -> c5(A__FIRST(s(0), mark(x1)), MARK(s(0))) MARK(first(s(nil), x1)) -> c5(A__FIRST(s(nil), mark(x1)), MARK(s(nil))) MARK(first(s(s(z0)), x1)) -> c5(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(s(s(z0)))) MARK(first(s(cons(z0, z1)), x1)) -> c5(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(s(cons(z0, z1)))) MARK(first(s(x0), x1)) -> c5(MARK(s(x0))) MARK(first(s(x0), 0)) -> c5(MARK(s(x0))) MARK(first(s(x0), nil)) -> c5(MARK(s(x0))) MARK(first(s(x0), s(z0))) -> c5(MARK(s(x0))) MARK(first(x0, first(x1, first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(first(x1, first(z0, z1)))) MARK(first(x0, first(x1, from(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(first(x1, from(z0)))) MARK(first(x0, first(x1, 0))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(first(x1, 0))) MARK(first(x0, first(x1, nil))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(first(x1, nil))) MARK(first(x0, first(x1, s(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(first(x1, s(z0)))) MARK(first(x0, first(x1, cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(first(x1, cons(z0, z1)))) MARK(first(x0, first(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(first(first(z0, z1), x2))) MARK(first(x0, first(from(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(first(from(z0), x2))) MARK(first(x0, first(0, x2))) -> c6(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(first(0, x2))) MARK(first(x0, first(nil, x2))) -> c6(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(first(nil, x2))) MARK(first(x0, first(s(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(first(s(z0), x2))) MARK(first(x0, first(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(first(cons(z0, z1), x2))) MARK(first(first(z0, z1), first(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(from(z0), first(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(s(z0), first(x1, x2))) -> c6(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(x0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(nil, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(cons(z0, z1), first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(x0, from(x1))) -> c6(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(first(x0, from(first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(from(first(z0, z1)))) MARK(first(x0, from(from(z0)))) -> c6(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(first(x0, from(0))) -> c6(A__FIRST(mark(x0), a__from(0)), MARK(from(0))) MARK(first(x0, from(nil))) -> c6(A__FIRST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(first(x0, from(s(z0)))) -> c6(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(from(s(z0)))) MARK(first(x0, from(cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(first(first(z0, z1), from(x1))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(first(from(z0), from(x1))) -> c6(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(s(z0), from(x1))) -> c6(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(x0, from(x1))) -> c6(MARK(from(x1))) MARK(first(0, from(x1))) -> c6(MARK(from(x1))) MARK(first(nil, from(x1))) -> c6(MARK(from(x1))) MARK(first(cons(z0, z1), from(x1))) -> c6(MARK(from(x1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(cons(first(z0, z1), x2))) MARK(first(x0, cons(from(z0), x2))) -> c6(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(first(x0, cons(0, x2))) -> c6(A__FIRST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(first(x0, cons(nil, x2))) -> c6(A__FIRST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(first(x0, cons(s(z0), x2))) -> c6(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(cons(s(z0), x2))) MARK(first(x0, cons(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(first(first(z0, z1), cons(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(from(z0), cons(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(s(z0), cons(x1, x2))) -> c6(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(x0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(nil, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(first(x0, first(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(first(first(x0, from(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, 0), x2)) -> c6(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(x2)) MARK(first(first(x0, nil), x2)) -> c6(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(x2)) MARK(first(first(x0, s(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, cons(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(first(first(first(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(from(z0), x1), x2)) -> c6(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(0, x1), x2)) -> c6(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(nil, x1), x2)) -> c6(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(s(z0), x1), x2)) -> c6(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(cons(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(x0, x1), s(z0))) -> c6(MARK(s(z0))) MARK(first(first(x0, x1), x2)) -> c6(MARK(x2)) MARK(first(from(first(z0, z1)), x1)) -> c6(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(first(from(from(z0)), x1)) -> c6(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(first(from(0), x1)) -> c6(A__FIRST(a__from(0), mark(x1)), MARK(x1)) MARK(first(from(nil), x1)) -> c6(A__FIRST(a__from(nil), mark(x1)), MARK(x1)) MARK(first(from(s(z0)), x1)) -> c6(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(x1)) MARK(first(from(cons(z0, z1)), x1)) -> c6(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(first(from(x0), s(z0))) -> c6(MARK(s(z0))) MARK(first(from(x0), x1)) -> c6(MARK(x1)) MARK(first(s(x0), 0)) -> c6(A__FIRST(s(mark(x0)), 0), MARK(0)) MARK(first(s(x0), nil)) -> c6(A__FIRST(s(mark(x0)), nil), MARK(nil)) MARK(first(s(x0), s(z0))) -> c6(A__FIRST(s(mark(x0)), s(mark(z0))), MARK(s(z0))) MARK(first(s(first(z0, z1)), x1)) -> c6(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(first(s(from(z0)), x1)) -> c6(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(first(s(0), x1)) -> c6(A__FIRST(s(0), mark(x1)), MARK(x1)) MARK(first(s(nil), x1)) -> c6(A__FIRST(s(nil), mark(x1)), MARK(x1)) MARK(first(s(s(z0)), x1)) -> c6(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(x1)) MARK(first(s(cons(z0, z1)), x1)) -> c6(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(x1)) S tuples: A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(x0, from(x1))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), from(x1))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(first(x0, cons(from(z0), x2))) -> c5(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(0, x2))) -> c5(A__FIRST(mark(x0), cons(0, x2)), MARK(x0)) MARK(first(x0, cons(nil, x2))) -> c5(A__FIRST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(first(x0, cons(s(z0), x2))) -> c5(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(first(first(z0, z1), cons(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(first(z0, z1))) MARK(first(from(z0), cons(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(first(s(z0), cons(x1, x2))) -> c5(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(s(z0))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(first(x0, first(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(first(x0, first(z0, z1)))) MARK(first(first(x0, from(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(first(x0, from(z0)))) MARK(first(first(x0, 0), x2)) -> c5(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(first(x0, 0))) MARK(first(first(x0, nil), x2)) -> c5(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(first(x0, nil))) MARK(first(first(x0, s(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(first(x0, s(z0)))) MARK(first(first(x0, cons(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(first(x0, cons(z0, z1)))) MARK(first(first(first(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(first(first(z0, z1), x1))) MARK(first(first(from(z0), x1), x2)) -> c5(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(first(from(z0), x1))) MARK(first(first(0, x1), x2)) -> c5(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(first(0, x1))) MARK(first(first(nil, x1), x2)) -> c5(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(first(nil, x1))) MARK(first(first(s(z0), x1), x2)) -> c5(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(first(s(z0), x1))) MARK(first(first(cons(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(first(cons(z0, z1), x1))) MARK(first(first(x0, x1), 0)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), nil)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), s(z0))) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), x2)) -> c5(MARK(first(x0, x1))) MARK(first(from(first(z0, z1)), x1)) -> c5(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(from(first(z0, z1)))) MARK(first(from(from(z0)), x1)) -> c5(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(first(from(0), x1)) -> c5(A__FIRST(a__from(0), mark(x1)), MARK(from(0))) MARK(first(from(nil), x1)) -> c5(A__FIRST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(first(from(s(z0)), x1)) -> c5(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(from(s(z0)))) MARK(first(from(cons(z0, z1)), x1)) -> c5(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(first(from(x0), x1)) -> c5(MARK(from(x0))) MARK(first(from(x0), 0)) -> c5(MARK(from(x0))) MARK(first(from(x0), nil)) -> c5(MARK(from(x0))) MARK(first(from(x0), s(z0))) -> c5(MARK(from(x0))) MARK(first(s(first(z0, z1)), x1)) -> c5(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(s(first(z0, z1)))) MARK(first(s(from(z0)), x1)) -> c5(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(s(from(z0)))) MARK(first(s(0), x1)) -> c5(A__FIRST(s(0), mark(x1)), MARK(s(0))) MARK(first(s(nil), x1)) -> c5(A__FIRST(s(nil), mark(x1)), MARK(s(nil))) MARK(first(s(s(z0)), x1)) -> c5(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(s(s(z0)))) MARK(first(s(cons(z0, z1)), x1)) -> c5(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(s(cons(z0, z1)))) MARK(first(s(x0), x1)) -> c5(MARK(s(x0))) MARK(first(s(x0), 0)) -> c5(MARK(s(x0))) MARK(first(s(x0), nil)) -> c5(MARK(s(x0))) MARK(first(s(x0), s(z0))) -> c5(MARK(s(x0))) MARK(first(x0, first(x1, first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(first(x1, first(z0, z1)))) MARK(first(x0, first(x1, from(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(first(x1, from(z0)))) MARK(first(x0, first(x1, 0))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(first(x1, 0))) MARK(first(x0, first(x1, nil))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(first(x1, nil))) MARK(first(x0, first(x1, s(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(first(x1, s(z0)))) MARK(first(x0, first(x1, cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(first(x1, cons(z0, z1)))) MARK(first(x0, first(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(first(first(z0, z1), x2))) MARK(first(x0, first(from(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(first(from(z0), x2))) MARK(first(x0, first(0, x2))) -> c6(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(first(0, x2))) MARK(first(x0, first(nil, x2))) -> c6(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(first(nil, x2))) MARK(first(x0, first(s(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(first(s(z0), x2))) MARK(first(x0, first(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(first(cons(z0, z1), x2))) MARK(first(first(z0, z1), first(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(from(z0), first(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(s(z0), first(x1, x2))) -> c6(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(x0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(nil, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(cons(z0, z1), first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(x0, from(x1))) -> c6(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(first(x0, from(first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(from(first(z0, z1)))) MARK(first(x0, from(from(z0)))) -> c6(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(first(x0, from(0))) -> c6(A__FIRST(mark(x0), a__from(0)), MARK(from(0))) MARK(first(x0, from(nil))) -> c6(A__FIRST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(first(x0, from(s(z0)))) -> c6(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(from(s(z0)))) MARK(first(x0, from(cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(first(first(z0, z1), from(x1))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(first(from(z0), from(x1))) -> c6(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(s(z0), from(x1))) -> c6(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(x0, from(x1))) -> c6(MARK(from(x1))) MARK(first(0, from(x1))) -> c6(MARK(from(x1))) MARK(first(nil, from(x1))) -> c6(MARK(from(x1))) MARK(first(cons(z0, z1), from(x1))) -> c6(MARK(from(x1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(cons(first(z0, z1), x2))) MARK(first(x0, cons(from(z0), x2))) -> c6(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(first(x0, cons(0, x2))) -> c6(A__FIRST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(first(x0, cons(nil, x2))) -> c6(A__FIRST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(first(x0, cons(s(z0), x2))) -> c6(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(cons(s(z0), x2))) MARK(first(x0, cons(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(first(first(z0, z1), cons(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(from(z0), cons(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(s(z0), cons(x1, x2))) -> c6(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(x0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(nil, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(first(x0, first(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(first(first(x0, from(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, 0), x2)) -> c6(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(x2)) MARK(first(first(x0, nil), x2)) -> c6(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(x2)) MARK(first(first(x0, s(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, cons(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(first(first(first(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(from(z0), x1), x2)) -> c6(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(0, x1), x2)) -> c6(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(nil, x1), x2)) -> c6(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(s(z0), x1), x2)) -> c6(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(cons(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(x0, x1), s(z0))) -> c6(MARK(s(z0))) MARK(first(first(x0, x1), x2)) -> c6(MARK(x2)) MARK(first(from(first(z0, z1)), x1)) -> c6(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(first(from(from(z0)), x1)) -> c6(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(first(from(0), x1)) -> c6(A__FIRST(a__from(0), mark(x1)), MARK(x1)) MARK(first(from(nil), x1)) -> c6(A__FIRST(a__from(nil), mark(x1)), MARK(x1)) MARK(first(from(s(z0)), x1)) -> c6(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(x1)) MARK(first(from(cons(z0, z1)), x1)) -> c6(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(first(from(x0), s(z0))) -> c6(MARK(s(z0))) MARK(first(from(x0), x1)) -> c6(MARK(x1)) MARK(first(s(x0), 0)) -> c6(A__FIRST(s(mark(x0)), 0), MARK(0)) MARK(first(s(x0), nil)) -> c6(A__FIRST(s(mark(x0)), nil), MARK(nil)) MARK(first(s(x0), s(z0))) -> c6(A__FIRST(s(mark(x0)), s(mark(z0))), MARK(s(z0))) MARK(first(s(first(z0, z1)), x1)) -> c6(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(first(s(from(z0)), x1)) -> c6(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(first(s(0), x1)) -> c6(A__FIRST(s(0), mark(x1)), MARK(x1)) MARK(first(s(nil), x1)) -> c6(A__FIRST(s(nil), mark(x1)), MARK(x1)) MARK(first(s(s(z0)), x1)) -> c6(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(x1)) MARK(first(s(cons(z0, z1)), x1)) -> c6(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(x1)) K tuples:none Defined Rule Symbols: a__first_2, a__from_1, mark_1 Defined Pair Symbols: A__FIRST_2, A__FROM_1, MARK_1 Compound Symbols: c1_1, c3_1, c7_2, c10_1, c11_1, c5_1, c6_1, c5_2, c6_2 ---------------------------------------- (131) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing nodes: MARK(first(s(x0), nil)) -> c6(A__FIRST(s(mark(x0)), nil), MARK(nil)) MARK(first(s(x0), 0)) -> c6(A__FIRST(s(mark(x0)), 0), MARK(0)) ---------------------------------------- (132) Obligation: Complexity Dependency Tuples Problem Rules: a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(0) -> 0 mark(nil) -> nil mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(x0, from(x1))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), from(x1))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(first(x0, cons(from(z0), x2))) -> c5(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(0, x2))) -> c5(A__FIRST(mark(x0), cons(0, x2)), MARK(x0)) MARK(first(x0, cons(nil, x2))) -> c5(A__FIRST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(first(x0, cons(s(z0), x2))) -> c5(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(first(first(z0, z1), cons(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(first(z0, z1))) MARK(first(from(z0), cons(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(first(s(z0), cons(x1, x2))) -> c5(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(s(z0))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(first(x0, first(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(first(x0, first(z0, z1)))) MARK(first(first(x0, from(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(first(x0, from(z0)))) MARK(first(first(x0, 0), x2)) -> c5(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(first(x0, 0))) MARK(first(first(x0, nil), x2)) -> c5(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(first(x0, nil))) MARK(first(first(x0, s(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(first(x0, s(z0)))) MARK(first(first(x0, cons(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(first(x0, cons(z0, z1)))) MARK(first(first(first(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(first(first(z0, z1), x1))) MARK(first(first(from(z0), x1), x2)) -> c5(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(first(from(z0), x1))) MARK(first(first(0, x1), x2)) -> c5(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(first(0, x1))) MARK(first(first(nil, x1), x2)) -> c5(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(first(nil, x1))) MARK(first(first(s(z0), x1), x2)) -> c5(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(first(s(z0), x1))) MARK(first(first(cons(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(first(cons(z0, z1), x1))) MARK(first(first(x0, x1), 0)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), nil)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), s(z0))) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), x2)) -> c5(MARK(first(x0, x1))) MARK(first(from(first(z0, z1)), x1)) -> c5(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(from(first(z0, z1)))) MARK(first(from(from(z0)), x1)) -> c5(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(first(from(0), x1)) -> c5(A__FIRST(a__from(0), mark(x1)), MARK(from(0))) MARK(first(from(nil), x1)) -> c5(A__FIRST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(first(from(s(z0)), x1)) -> c5(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(from(s(z0)))) MARK(first(from(cons(z0, z1)), x1)) -> c5(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(first(from(x0), x1)) -> c5(MARK(from(x0))) MARK(first(from(x0), 0)) -> c5(MARK(from(x0))) MARK(first(from(x0), nil)) -> c5(MARK(from(x0))) MARK(first(from(x0), s(z0))) -> c5(MARK(from(x0))) MARK(first(s(first(z0, z1)), x1)) -> c5(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(s(first(z0, z1)))) MARK(first(s(from(z0)), x1)) -> c5(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(s(from(z0)))) MARK(first(s(0), x1)) -> c5(A__FIRST(s(0), mark(x1)), MARK(s(0))) MARK(first(s(nil), x1)) -> c5(A__FIRST(s(nil), mark(x1)), MARK(s(nil))) MARK(first(s(s(z0)), x1)) -> c5(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(s(s(z0)))) MARK(first(s(cons(z0, z1)), x1)) -> c5(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(s(cons(z0, z1)))) MARK(first(s(x0), x1)) -> c5(MARK(s(x0))) MARK(first(s(x0), 0)) -> c5(MARK(s(x0))) MARK(first(s(x0), nil)) -> c5(MARK(s(x0))) MARK(first(s(x0), s(z0))) -> c5(MARK(s(x0))) MARK(first(x0, first(x1, first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(first(x1, first(z0, z1)))) MARK(first(x0, first(x1, from(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(first(x1, from(z0)))) MARK(first(x0, first(x1, 0))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(first(x1, 0))) MARK(first(x0, first(x1, nil))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(first(x1, nil))) MARK(first(x0, first(x1, s(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(first(x1, s(z0)))) MARK(first(x0, first(x1, cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(first(x1, cons(z0, z1)))) MARK(first(x0, first(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(first(first(z0, z1), x2))) MARK(first(x0, first(from(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(first(from(z0), x2))) MARK(first(x0, first(0, x2))) -> c6(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(first(0, x2))) MARK(first(x0, first(nil, x2))) -> c6(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(first(nil, x2))) MARK(first(x0, first(s(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(first(s(z0), x2))) MARK(first(x0, first(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(first(cons(z0, z1), x2))) MARK(first(first(z0, z1), first(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(from(z0), first(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(s(z0), first(x1, x2))) -> c6(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(x0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(nil, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(cons(z0, z1), first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(x0, from(x1))) -> c6(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(first(x0, from(first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(from(first(z0, z1)))) MARK(first(x0, from(from(z0)))) -> c6(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(first(x0, from(0))) -> c6(A__FIRST(mark(x0), a__from(0)), MARK(from(0))) MARK(first(x0, from(nil))) -> c6(A__FIRST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(first(x0, from(s(z0)))) -> c6(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(from(s(z0)))) MARK(first(x0, from(cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(first(first(z0, z1), from(x1))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(first(from(z0), from(x1))) -> c6(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(s(z0), from(x1))) -> c6(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(x0, from(x1))) -> c6(MARK(from(x1))) MARK(first(0, from(x1))) -> c6(MARK(from(x1))) MARK(first(nil, from(x1))) -> c6(MARK(from(x1))) MARK(first(cons(z0, z1), from(x1))) -> c6(MARK(from(x1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(cons(first(z0, z1), x2))) MARK(first(x0, cons(from(z0), x2))) -> c6(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(first(x0, cons(0, x2))) -> c6(A__FIRST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(first(x0, cons(nil, x2))) -> c6(A__FIRST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(first(x0, cons(s(z0), x2))) -> c6(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(cons(s(z0), x2))) MARK(first(x0, cons(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(first(first(z0, z1), cons(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(from(z0), cons(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(s(z0), cons(x1, x2))) -> c6(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(x0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(nil, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(first(x0, first(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(first(first(x0, from(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, 0), x2)) -> c6(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(x2)) MARK(first(first(x0, nil), x2)) -> c6(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(x2)) MARK(first(first(x0, s(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, cons(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(first(first(first(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(from(z0), x1), x2)) -> c6(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(0, x1), x2)) -> c6(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(nil, x1), x2)) -> c6(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(s(z0), x1), x2)) -> c6(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(cons(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(x0, x1), s(z0))) -> c6(MARK(s(z0))) MARK(first(first(x0, x1), x2)) -> c6(MARK(x2)) MARK(first(from(first(z0, z1)), x1)) -> c6(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(first(from(from(z0)), x1)) -> c6(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(first(from(0), x1)) -> c6(A__FIRST(a__from(0), mark(x1)), MARK(x1)) MARK(first(from(nil), x1)) -> c6(A__FIRST(a__from(nil), mark(x1)), MARK(x1)) MARK(first(from(s(z0)), x1)) -> c6(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(x1)) MARK(first(from(cons(z0, z1)), x1)) -> c6(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(first(from(x0), s(z0))) -> c6(MARK(s(z0))) MARK(first(from(x0), x1)) -> c6(MARK(x1)) MARK(first(s(x0), s(z0))) -> c6(A__FIRST(s(mark(x0)), s(mark(z0))), MARK(s(z0))) MARK(first(s(first(z0, z1)), x1)) -> c6(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(first(s(from(z0)), x1)) -> c6(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(first(s(0), x1)) -> c6(A__FIRST(s(0), mark(x1)), MARK(x1)) MARK(first(s(nil), x1)) -> c6(A__FIRST(s(nil), mark(x1)), MARK(x1)) MARK(first(s(s(z0)), x1)) -> c6(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(x1)) MARK(first(s(cons(z0, z1)), x1)) -> c6(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(x1)) S tuples: A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(x0, from(x1))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), from(x1))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(first(x0, cons(from(z0), x2))) -> c5(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(0, x2))) -> c5(A__FIRST(mark(x0), cons(0, x2)), MARK(x0)) MARK(first(x0, cons(nil, x2))) -> c5(A__FIRST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(first(x0, cons(s(z0), x2))) -> c5(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(first(first(z0, z1), cons(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(first(z0, z1))) MARK(first(from(z0), cons(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(first(s(z0), cons(x1, x2))) -> c5(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(s(z0))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(first(x0, first(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(first(x0, first(z0, z1)))) MARK(first(first(x0, from(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(first(x0, from(z0)))) MARK(first(first(x0, 0), x2)) -> c5(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(first(x0, 0))) MARK(first(first(x0, nil), x2)) -> c5(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(first(x0, nil))) MARK(first(first(x0, s(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(first(x0, s(z0)))) MARK(first(first(x0, cons(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(first(x0, cons(z0, z1)))) MARK(first(first(first(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(first(first(z0, z1), x1))) MARK(first(first(from(z0), x1), x2)) -> c5(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(first(from(z0), x1))) MARK(first(first(0, x1), x2)) -> c5(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(first(0, x1))) MARK(first(first(nil, x1), x2)) -> c5(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(first(nil, x1))) MARK(first(first(s(z0), x1), x2)) -> c5(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(first(s(z0), x1))) MARK(first(first(cons(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(first(cons(z0, z1), x1))) MARK(first(first(x0, x1), 0)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), nil)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), s(z0))) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), x2)) -> c5(MARK(first(x0, x1))) MARK(first(from(first(z0, z1)), x1)) -> c5(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(from(first(z0, z1)))) MARK(first(from(from(z0)), x1)) -> c5(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(first(from(0), x1)) -> c5(A__FIRST(a__from(0), mark(x1)), MARK(from(0))) MARK(first(from(nil), x1)) -> c5(A__FIRST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(first(from(s(z0)), x1)) -> c5(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(from(s(z0)))) MARK(first(from(cons(z0, z1)), x1)) -> c5(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(first(from(x0), x1)) -> c5(MARK(from(x0))) MARK(first(from(x0), 0)) -> c5(MARK(from(x0))) MARK(first(from(x0), nil)) -> c5(MARK(from(x0))) MARK(first(from(x0), s(z0))) -> c5(MARK(from(x0))) MARK(first(s(first(z0, z1)), x1)) -> c5(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(s(first(z0, z1)))) MARK(first(s(from(z0)), x1)) -> c5(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(s(from(z0)))) MARK(first(s(0), x1)) -> c5(A__FIRST(s(0), mark(x1)), MARK(s(0))) MARK(first(s(nil), x1)) -> c5(A__FIRST(s(nil), mark(x1)), MARK(s(nil))) MARK(first(s(s(z0)), x1)) -> c5(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(s(s(z0)))) MARK(first(s(cons(z0, z1)), x1)) -> c5(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(s(cons(z0, z1)))) MARK(first(s(x0), x1)) -> c5(MARK(s(x0))) MARK(first(s(x0), 0)) -> c5(MARK(s(x0))) MARK(first(s(x0), nil)) -> c5(MARK(s(x0))) MARK(first(s(x0), s(z0))) -> c5(MARK(s(x0))) MARK(first(x0, first(x1, first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(first(x1, first(z0, z1)))) MARK(first(x0, first(x1, from(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(first(x1, from(z0)))) MARK(first(x0, first(x1, 0))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(first(x1, 0))) MARK(first(x0, first(x1, nil))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(first(x1, nil))) MARK(first(x0, first(x1, s(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(first(x1, s(z0)))) MARK(first(x0, first(x1, cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(first(x1, cons(z0, z1)))) MARK(first(x0, first(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(first(first(z0, z1), x2))) MARK(first(x0, first(from(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(first(from(z0), x2))) MARK(first(x0, first(0, x2))) -> c6(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(first(0, x2))) MARK(first(x0, first(nil, x2))) -> c6(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(first(nil, x2))) MARK(first(x0, first(s(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(first(s(z0), x2))) MARK(first(x0, first(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(first(cons(z0, z1), x2))) MARK(first(first(z0, z1), first(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(from(z0), first(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(s(z0), first(x1, x2))) -> c6(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(x0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(nil, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(cons(z0, z1), first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(x0, from(x1))) -> c6(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(first(x0, from(first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(from(first(z0, z1)))) MARK(first(x0, from(from(z0)))) -> c6(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(first(x0, from(0))) -> c6(A__FIRST(mark(x0), a__from(0)), MARK(from(0))) MARK(first(x0, from(nil))) -> c6(A__FIRST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(first(x0, from(s(z0)))) -> c6(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(from(s(z0)))) MARK(first(x0, from(cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(first(first(z0, z1), from(x1))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(first(from(z0), from(x1))) -> c6(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(s(z0), from(x1))) -> c6(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(x0, from(x1))) -> c6(MARK(from(x1))) MARK(first(0, from(x1))) -> c6(MARK(from(x1))) MARK(first(nil, from(x1))) -> c6(MARK(from(x1))) MARK(first(cons(z0, z1), from(x1))) -> c6(MARK(from(x1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(cons(first(z0, z1), x2))) MARK(first(x0, cons(from(z0), x2))) -> c6(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(first(x0, cons(0, x2))) -> c6(A__FIRST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(first(x0, cons(nil, x2))) -> c6(A__FIRST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(first(x0, cons(s(z0), x2))) -> c6(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(cons(s(z0), x2))) MARK(first(x0, cons(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(first(first(z0, z1), cons(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(from(z0), cons(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(s(z0), cons(x1, x2))) -> c6(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(x0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(nil, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(first(x0, first(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(first(first(x0, from(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, 0), x2)) -> c6(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(x2)) MARK(first(first(x0, nil), x2)) -> c6(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(x2)) MARK(first(first(x0, s(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, cons(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(first(first(first(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(from(z0), x1), x2)) -> c6(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(0, x1), x2)) -> c6(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(nil, x1), x2)) -> c6(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(s(z0), x1), x2)) -> c6(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(cons(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(x0, x1), s(z0))) -> c6(MARK(s(z0))) MARK(first(first(x0, x1), x2)) -> c6(MARK(x2)) MARK(first(from(first(z0, z1)), x1)) -> c6(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(first(from(from(z0)), x1)) -> c6(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(first(from(0), x1)) -> c6(A__FIRST(a__from(0), mark(x1)), MARK(x1)) MARK(first(from(nil), x1)) -> c6(A__FIRST(a__from(nil), mark(x1)), MARK(x1)) MARK(first(from(s(z0)), x1)) -> c6(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(x1)) MARK(first(from(cons(z0, z1)), x1)) -> c6(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(first(from(x0), s(z0))) -> c6(MARK(s(z0))) MARK(first(from(x0), x1)) -> c6(MARK(x1)) MARK(first(s(x0), s(z0))) -> c6(A__FIRST(s(mark(x0)), s(mark(z0))), MARK(s(z0))) MARK(first(s(first(z0, z1)), x1)) -> c6(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(first(s(from(z0)), x1)) -> c6(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(first(s(0), x1)) -> c6(A__FIRST(s(0), mark(x1)), MARK(x1)) MARK(first(s(nil), x1)) -> c6(A__FIRST(s(nil), mark(x1)), MARK(x1)) MARK(first(s(s(z0)), x1)) -> c6(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(x1)) MARK(first(s(cons(z0, z1)), x1)) -> c6(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(x1)) K tuples:none Defined Rule Symbols: a__first_2, a__from_1, mark_1 Defined Pair Symbols: A__FIRST_2, A__FROM_1, MARK_1 Compound Symbols: c1_1, c3_1, c7_2, c10_1, c11_1, c5_1, c6_1, c5_2, c6_2 ---------------------------------------- (133) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (134) Obligation: Complexity Dependency Tuples Problem Rules: a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(0) -> 0 mark(nil) -> nil mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(x0, from(x1))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), from(x1))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(first(x0, cons(from(z0), x2))) -> c5(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(0, x2))) -> c5(A__FIRST(mark(x0), cons(0, x2)), MARK(x0)) MARK(first(x0, cons(nil, x2))) -> c5(A__FIRST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(first(x0, cons(s(z0), x2))) -> c5(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(first(first(z0, z1), cons(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(first(z0, z1))) MARK(first(from(z0), cons(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(first(s(z0), cons(x1, x2))) -> c5(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(s(z0))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(first(x0, first(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(first(x0, first(z0, z1)))) MARK(first(first(x0, from(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(first(x0, from(z0)))) MARK(first(first(x0, 0), x2)) -> c5(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(first(x0, 0))) MARK(first(first(x0, nil), x2)) -> c5(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(first(x0, nil))) MARK(first(first(x0, s(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(first(x0, s(z0)))) MARK(first(first(x0, cons(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(first(x0, cons(z0, z1)))) MARK(first(first(first(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(first(first(z0, z1), x1))) MARK(first(first(from(z0), x1), x2)) -> c5(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(first(from(z0), x1))) MARK(first(first(0, x1), x2)) -> c5(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(first(0, x1))) MARK(first(first(nil, x1), x2)) -> c5(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(first(nil, x1))) MARK(first(first(s(z0), x1), x2)) -> c5(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(first(s(z0), x1))) MARK(first(first(cons(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(first(cons(z0, z1), x1))) MARK(first(first(x0, x1), 0)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), nil)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), s(z0))) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), x2)) -> c5(MARK(first(x0, x1))) MARK(first(from(first(z0, z1)), x1)) -> c5(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(from(first(z0, z1)))) MARK(first(from(from(z0)), x1)) -> c5(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(first(from(0), x1)) -> c5(A__FIRST(a__from(0), mark(x1)), MARK(from(0))) MARK(first(from(nil), x1)) -> c5(A__FIRST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(first(from(s(z0)), x1)) -> c5(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(from(s(z0)))) MARK(first(from(cons(z0, z1)), x1)) -> c5(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(first(from(x0), x1)) -> c5(MARK(from(x0))) MARK(first(from(x0), 0)) -> c5(MARK(from(x0))) MARK(first(from(x0), nil)) -> c5(MARK(from(x0))) MARK(first(from(x0), s(z0))) -> c5(MARK(from(x0))) MARK(first(s(first(z0, z1)), x1)) -> c5(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(s(first(z0, z1)))) MARK(first(s(from(z0)), x1)) -> c5(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(s(from(z0)))) MARK(first(s(0), x1)) -> c5(A__FIRST(s(0), mark(x1)), MARK(s(0))) MARK(first(s(nil), x1)) -> c5(A__FIRST(s(nil), mark(x1)), MARK(s(nil))) MARK(first(s(s(z0)), x1)) -> c5(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(s(s(z0)))) MARK(first(s(cons(z0, z1)), x1)) -> c5(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(s(cons(z0, z1)))) MARK(first(s(x0), x1)) -> c5(MARK(s(x0))) MARK(first(s(x0), 0)) -> c5(MARK(s(x0))) MARK(first(s(x0), nil)) -> c5(MARK(s(x0))) MARK(first(s(x0), s(z0))) -> c5(MARK(s(x0))) MARK(first(x0, first(x1, first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(first(x1, first(z0, z1)))) MARK(first(x0, first(x1, from(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(first(x1, from(z0)))) MARK(first(x0, first(x1, 0))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(first(x1, 0))) MARK(first(x0, first(x1, nil))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(first(x1, nil))) MARK(first(x0, first(x1, s(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(first(x1, s(z0)))) MARK(first(x0, first(x1, cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(first(x1, cons(z0, z1)))) MARK(first(x0, first(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(first(first(z0, z1), x2))) MARK(first(x0, first(from(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(first(from(z0), x2))) MARK(first(x0, first(0, x2))) -> c6(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(first(0, x2))) MARK(first(x0, first(nil, x2))) -> c6(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(first(nil, x2))) MARK(first(x0, first(s(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(first(s(z0), x2))) MARK(first(x0, first(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(first(cons(z0, z1), x2))) MARK(first(first(z0, z1), first(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(from(z0), first(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(s(z0), first(x1, x2))) -> c6(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(x0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(nil, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(cons(z0, z1), first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(x0, from(x1))) -> c6(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(first(x0, from(first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(from(first(z0, z1)))) MARK(first(x0, from(from(z0)))) -> c6(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(first(x0, from(0))) -> c6(A__FIRST(mark(x0), a__from(0)), MARK(from(0))) MARK(first(x0, from(nil))) -> c6(A__FIRST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(first(x0, from(s(z0)))) -> c6(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(from(s(z0)))) MARK(first(x0, from(cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(first(first(z0, z1), from(x1))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(first(from(z0), from(x1))) -> c6(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(s(z0), from(x1))) -> c6(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(x0, from(x1))) -> c6(MARK(from(x1))) MARK(first(0, from(x1))) -> c6(MARK(from(x1))) MARK(first(nil, from(x1))) -> c6(MARK(from(x1))) MARK(first(cons(z0, z1), from(x1))) -> c6(MARK(from(x1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(cons(first(z0, z1), x2))) MARK(first(x0, cons(from(z0), x2))) -> c6(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(first(x0, cons(0, x2))) -> c6(A__FIRST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(first(x0, cons(nil, x2))) -> c6(A__FIRST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(first(x0, cons(s(z0), x2))) -> c6(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(cons(s(z0), x2))) MARK(first(x0, cons(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(first(first(z0, z1), cons(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(from(z0), cons(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(s(z0), cons(x1, x2))) -> c6(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(x0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(nil, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(first(x0, first(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(first(first(x0, from(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, 0), x2)) -> c6(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(x2)) MARK(first(first(x0, nil), x2)) -> c6(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(x2)) MARK(first(first(x0, s(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, cons(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(first(first(first(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(from(z0), x1), x2)) -> c6(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(0, x1), x2)) -> c6(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(nil, x1), x2)) -> c6(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(s(z0), x1), x2)) -> c6(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(cons(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(x0, x1), s(z0))) -> c6(MARK(s(z0))) MARK(first(first(x0, x1), x2)) -> c6(MARK(x2)) MARK(first(from(first(z0, z1)), x1)) -> c6(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(first(from(from(z0)), x1)) -> c6(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(first(from(0), x1)) -> c6(A__FIRST(a__from(0), mark(x1)), MARK(x1)) MARK(first(from(nil), x1)) -> c6(A__FIRST(a__from(nil), mark(x1)), MARK(x1)) MARK(first(from(s(z0)), x1)) -> c6(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(x1)) MARK(first(from(cons(z0, z1)), x1)) -> c6(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(first(from(x0), s(z0))) -> c6(MARK(s(z0))) MARK(first(from(x0), x1)) -> c6(MARK(x1)) MARK(first(s(first(z0, z1)), x1)) -> c6(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(first(s(from(z0)), x1)) -> c6(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(first(s(0), x1)) -> c6(A__FIRST(s(0), mark(x1)), MARK(x1)) MARK(first(s(nil), x1)) -> c6(A__FIRST(s(nil), mark(x1)), MARK(x1)) MARK(first(s(s(z0)), x1)) -> c6(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(x1)) MARK(first(s(cons(z0, z1)), x1)) -> c6(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(first(s(x0), s(z0))) -> c6(MARK(s(z0))) S tuples: A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(x0, from(x1))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), from(x1))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(first(x0, cons(from(z0), x2))) -> c5(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(0, x2))) -> c5(A__FIRST(mark(x0), cons(0, x2)), MARK(x0)) MARK(first(x0, cons(nil, x2))) -> c5(A__FIRST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(first(x0, cons(s(z0), x2))) -> c5(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(first(first(z0, z1), cons(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(first(z0, z1))) MARK(first(from(z0), cons(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(first(s(z0), cons(x1, x2))) -> c5(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(s(z0))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(first(x0, first(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(first(x0, first(z0, z1)))) MARK(first(first(x0, from(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(first(x0, from(z0)))) MARK(first(first(x0, 0), x2)) -> c5(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(first(x0, 0))) MARK(first(first(x0, nil), x2)) -> c5(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(first(x0, nil))) MARK(first(first(x0, s(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(first(x0, s(z0)))) MARK(first(first(x0, cons(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(first(x0, cons(z0, z1)))) MARK(first(first(first(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(first(first(z0, z1), x1))) MARK(first(first(from(z0), x1), x2)) -> c5(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(first(from(z0), x1))) MARK(first(first(0, x1), x2)) -> c5(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(first(0, x1))) MARK(first(first(nil, x1), x2)) -> c5(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(first(nil, x1))) MARK(first(first(s(z0), x1), x2)) -> c5(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(first(s(z0), x1))) MARK(first(first(cons(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(first(cons(z0, z1), x1))) MARK(first(first(x0, x1), 0)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), nil)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), s(z0))) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), x2)) -> c5(MARK(first(x0, x1))) MARK(first(from(first(z0, z1)), x1)) -> c5(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(from(first(z0, z1)))) MARK(first(from(from(z0)), x1)) -> c5(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(first(from(0), x1)) -> c5(A__FIRST(a__from(0), mark(x1)), MARK(from(0))) MARK(first(from(nil), x1)) -> c5(A__FIRST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(first(from(s(z0)), x1)) -> c5(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(from(s(z0)))) MARK(first(from(cons(z0, z1)), x1)) -> c5(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(first(from(x0), x1)) -> c5(MARK(from(x0))) MARK(first(from(x0), 0)) -> c5(MARK(from(x0))) MARK(first(from(x0), nil)) -> c5(MARK(from(x0))) MARK(first(from(x0), s(z0))) -> c5(MARK(from(x0))) MARK(first(s(first(z0, z1)), x1)) -> c5(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(s(first(z0, z1)))) MARK(first(s(from(z0)), x1)) -> c5(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(s(from(z0)))) MARK(first(s(0), x1)) -> c5(A__FIRST(s(0), mark(x1)), MARK(s(0))) MARK(first(s(nil), x1)) -> c5(A__FIRST(s(nil), mark(x1)), MARK(s(nil))) MARK(first(s(s(z0)), x1)) -> c5(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(s(s(z0)))) MARK(first(s(cons(z0, z1)), x1)) -> c5(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(s(cons(z0, z1)))) MARK(first(s(x0), x1)) -> c5(MARK(s(x0))) MARK(first(s(x0), 0)) -> c5(MARK(s(x0))) MARK(first(s(x0), nil)) -> c5(MARK(s(x0))) MARK(first(s(x0), s(z0))) -> c5(MARK(s(x0))) MARK(first(x0, first(x1, first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(first(x1, first(z0, z1)))) MARK(first(x0, first(x1, from(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(first(x1, from(z0)))) MARK(first(x0, first(x1, 0))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(first(x1, 0))) MARK(first(x0, first(x1, nil))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(first(x1, nil))) MARK(first(x0, first(x1, s(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(first(x1, s(z0)))) MARK(first(x0, first(x1, cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(first(x1, cons(z0, z1)))) MARK(first(x0, first(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(first(first(z0, z1), x2))) MARK(first(x0, first(from(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(first(from(z0), x2))) MARK(first(x0, first(0, x2))) -> c6(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(first(0, x2))) MARK(first(x0, first(nil, x2))) -> c6(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(first(nil, x2))) MARK(first(x0, first(s(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(first(s(z0), x2))) MARK(first(x0, first(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(first(cons(z0, z1), x2))) MARK(first(first(z0, z1), first(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(from(z0), first(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(s(z0), first(x1, x2))) -> c6(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(x0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(nil, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(cons(z0, z1), first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(x0, from(x1))) -> c6(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(first(x0, from(first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(from(first(z0, z1)))) MARK(first(x0, from(from(z0)))) -> c6(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(first(x0, from(0))) -> c6(A__FIRST(mark(x0), a__from(0)), MARK(from(0))) MARK(first(x0, from(nil))) -> c6(A__FIRST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(first(x0, from(s(z0)))) -> c6(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(from(s(z0)))) MARK(first(x0, from(cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(first(first(z0, z1), from(x1))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(first(from(z0), from(x1))) -> c6(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(s(z0), from(x1))) -> c6(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(x0, from(x1))) -> c6(MARK(from(x1))) MARK(first(0, from(x1))) -> c6(MARK(from(x1))) MARK(first(nil, from(x1))) -> c6(MARK(from(x1))) MARK(first(cons(z0, z1), from(x1))) -> c6(MARK(from(x1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(cons(first(z0, z1), x2))) MARK(first(x0, cons(from(z0), x2))) -> c6(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(first(x0, cons(0, x2))) -> c6(A__FIRST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(first(x0, cons(nil, x2))) -> c6(A__FIRST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(first(x0, cons(s(z0), x2))) -> c6(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(cons(s(z0), x2))) MARK(first(x0, cons(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(first(first(z0, z1), cons(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(from(z0), cons(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(s(z0), cons(x1, x2))) -> c6(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(x0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(nil, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(first(x0, first(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(first(first(x0, from(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, 0), x2)) -> c6(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(x2)) MARK(first(first(x0, nil), x2)) -> c6(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(x2)) MARK(first(first(x0, s(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, cons(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(first(first(first(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(from(z0), x1), x2)) -> c6(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(0, x1), x2)) -> c6(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(nil, x1), x2)) -> c6(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(s(z0), x1), x2)) -> c6(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(cons(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(x0, x1), s(z0))) -> c6(MARK(s(z0))) MARK(first(first(x0, x1), x2)) -> c6(MARK(x2)) MARK(first(from(first(z0, z1)), x1)) -> c6(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(first(from(from(z0)), x1)) -> c6(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(first(from(0), x1)) -> c6(A__FIRST(a__from(0), mark(x1)), MARK(x1)) MARK(first(from(nil), x1)) -> c6(A__FIRST(a__from(nil), mark(x1)), MARK(x1)) MARK(first(from(s(z0)), x1)) -> c6(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(x1)) MARK(first(from(cons(z0, z1)), x1)) -> c6(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(first(from(x0), s(z0))) -> c6(MARK(s(z0))) MARK(first(from(x0), x1)) -> c6(MARK(x1)) MARK(first(s(first(z0, z1)), x1)) -> c6(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(first(s(from(z0)), x1)) -> c6(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(first(s(0), x1)) -> c6(A__FIRST(s(0), mark(x1)), MARK(x1)) MARK(first(s(nil), x1)) -> c6(A__FIRST(s(nil), mark(x1)), MARK(x1)) MARK(first(s(s(z0)), x1)) -> c6(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(x1)) MARK(first(s(cons(z0, z1)), x1)) -> c6(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(first(s(x0), s(z0))) -> c6(MARK(s(z0))) K tuples:none Defined Rule Symbols: a__first_2, a__from_1, mark_1 Defined Pair Symbols: A__FIRST_2, A__FROM_1, MARK_1 Compound Symbols: c1_1, c3_1, c7_2, c10_1, c11_1, c5_1, c6_1, c5_2, c6_2 ---------------------------------------- (135) CdtForwardInstantiationProof (BOTH BOUNDS(ID, ID)) Use forward instantiation to replace A__FIRST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) by A__FIRST(s(z0), cons(from(y0), z2)) -> c1(MARK(from(y0))) A__FIRST(s(z0), cons(s(y0), z2)) -> c1(MARK(s(y0))) A__FIRST(s(z0), cons(cons(y0, y1), z2)) -> c1(MARK(cons(y0, y1))) A__FIRST(s(z0), cons(first(y0, 0), z2)) -> c1(MARK(first(y0, 0))) A__FIRST(s(z0), cons(first(y0, nil), z2)) -> c1(MARK(first(y0, nil))) A__FIRST(s(z0), cons(first(y0, s(y1)), z2)) -> c1(MARK(first(y0, s(y1)))) A__FIRST(s(z0), cons(first(cons(y0, y1), y2), z2)) -> c1(MARK(first(cons(y0, y1), y2))) A__FIRST(s(z0), cons(first(0, y0), z2)) -> c1(MARK(first(0, y0))) A__FIRST(s(z0), cons(first(nil, y0), z2)) -> c1(MARK(first(nil, y0))) A__FIRST(s(z0), cons(first(y0, first(y1, first(y2, y3))), z2)) -> c1(MARK(first(y0, first(y1, first(y2, y3))))) A__FIRST(s(z0), cons(first(y0, first(y1, from(y2))), z2)) -> c1(MARK(first(y0, first(y1, from(y2))))) A__FIRST(s(z0), cons(first(y0, first(y1, 0)), z2)) -> c1(MARK(first(y0, first(y1, 0)))) A__FIRST(s(z0), cons(first(y0, first(y1, nil)), z2)) -> c1(MARK(first(y0, first(y1, nil)))) A__FIRST(s(z0), cons(first(y0, first(y1, s(y2))), z2)) -> c1(MARK(first(y0, first(y1, s(y2))))) A__FIRST(s(z0), cons(first(y0, first(y1, cons(y2, y3))), z2)) -> c1(MARK(first(y0, first(y1, cons(y2, y3))))) A__FIRST(s(z0), cons(first(y0, first(first(y1, y2), y3)), z2)) -> c1(MARK(first(y0, first(first(y1, y2), y3)))) A__FIRST(s(z0), cons(first(y0, first(from(y1), y2)), z2)) -> c1(MARK(first(y0, first(from(y1), y2)))) A__FIRST(s(z0), cons(first(y0, first(0, y1)), z2)) -> c1(MARK(first(y0, first(0, y1)))) A__FIRST(s(z0), cons(first(y0, first(nil, y1)), z2)) -> c1(MARK(first(y0, first(nil, y1)))) A__FIRST(s(z0), cons(first(y0, first(s(y1), y2)), z2)) -> c1(MARK(first(y0, first(s(y1), y2)))) A__FIRST(s(z0), cons(first(y0, first(cons(y1, y2), y3)), z2)) -> c1(MARK(first(y0, first(cons(y1, y2), y3)))) A__FIRST(s(z0), cons(first(first(y0, y1), first(y2, y3)), z2)) -> c1(MARK(first(first(y0, y1), first(y2, y3)))) A__FIRST(s(z0), cons(first(from(y0), first(y1, y2)), z2)) -> c1(MARK(first(from(y0), first(y1, y2)))) A__FIRST(s(z0), cons(first(s(y0), first(y1, y2)), z2)) -> c1(MARK(first(s(y0), first(y1, y2)))) A__FIRST(s(z0), cons(first(y0, first(y1, y2)), z2)) -> c1(MARK(first(y0, first(y1, y2)))) A__FIRST(s(z0), cons(first(cons(y0, y1), first(y2, y3)), z2)) -> c1(MARK(first(cons(y0, y1), first(y2, y3)))) A__FIRST(s(z0), cons(first(y0, from(y1)), z2)) -> c1(MARK(first(y0, from(y1)))) A__FIRST(s(z0), cons(first(y0, from(first(y1, y2))), z2)) -> c1(MARK(first(y0, from(first(y1, y2))))) A__FIRST(s(z0), cons(first(y0, from(from(y1))), z2)) -> c1(MARK(first(y0, from(from(y1))))) A__FIRST(s(z0), cons(first(y0, from(0)), z2)) -> c1(MARK(first(y0, from(0)))) A__FIRST(s(z0), cons(first(y0, from(nil)), z2)) -> c1(MARK(first(y0, from(nil)))) A__FIRST(s(z0), cons(first(y0, from(s(y1))), z2)) -> c1(MARK(first(y0, from(s(y1))))) A__FIRST(s(z0), cons(first(y0, from(cons(y1, y2))), z2)) -> c1(MARK(first(y0, from(cons(y1, y2))))) A__FIRST(s(z0), cons(first(first(y0, y1), from(y2)), z2)) -> c1(MARK(first(first(y0, y1), from(y2)))) A__FIRST(s(z0), cons(first(from(y0), from(y1)), z2)) -> c1(MARK(first(from(y0), from(y1)))) A__FIRST(s(z0), cons(first(s(y0), from(y1)), z2)) -> c1(MARK(first(s(y0), from(y1)))) A__FIRST(s(z0), cons(first(cons(y0, y1), from(y2)), z2)) -> c1(MARK(first(cons(y0, y1), from(y2)))) A__FIRST(s(z0), cons(first(y0, cons(first(y1, y2), y3)), z2)) -> c1(MARK(first(y0, cons(first(y1, y2), y3)))) A__FIRST(s(z0), cons(first(y0, cons(from(y1), y2)), z2)) -> c1(MARK(first(y0, cons(from(y1), y2)))) A__FIRST(s(z0), cons(first(y0, cons(0, y1)), z2)) -> c1(MARK(first(y0, cons(0, y1)))) A__FIRST(s(z0), cons(first(y0, cons(nil, y1)), z2)) -> c1(MARK(first(y0, cons(nil, y1)))) A__FIRST(s(z0), cons(first(y0, cons(s(y1), y2)), z2)) -> c1(MARK(first(y0, cons(s(y1), y2)))) A__FIRST(s(z0), cons(first(y0, cons(cons(y1, y2), y3)), z2)) -> c1(MARK(first(y0, cons(cons(y1, y2), y3)))) A__FIRST(s(z0), cons(first(first(y0, y1), cons(y2, y3)), z2)) -> c1(MARK(first(first(y0, y1), cons(y2, y3)))) A__FIRST(s(z0), cons(first(from(y0), cons(y1, y2)), z2)) -> c1(MARK(first(from(y0), cons(y1, y2)))) A__FIRST(s(z0), cons(first(s(y0), cons(y1, y2)), z2)) -> c1(MARK(first(s(y0), cons(y1, y2)))) A__FIRST(s(z0), cons(first(cons(y0, y1), cons(y2, y3)), z2)) -> c1(MARK(first(cons(y0, y1), cons(y2, y3)))) A__FIRST(s(z0), cons(first(first(y0, first(y1, y2)), y3), z2)) -> c1(MARK(first(first(y0, first(y1, y2)), y3))) A__FIRST(s(z0), cons(first(first(y0, from(y1)), y2), z2)) -> c1(MARK(first(first(y0, from(y1)), y2))) A__FIRST(s(z0), cons(first(first(y0, 0), y1), z2)) -> c1(MARK(first(first(y0, 0), y1))) A__FIRST(s(z0), cons(first(first(y0, nil), y1), z2)) -> c1(MARK(first(first(y0, nil), y1))) A__FIRST(s(z0), cons(first(first(y0, s(y1)), y2), z2)) -> c1(MARK(first(first(y0, s(y1)), y2))) A__FIRST(s(z0), cons(first(first(y0, cons(y1, y2)), y3), z2)) -> c1(MARK(first(first(y0, cons(y1, y2)), y3))) A__FIRST(s(z0), cons(first(first(first(y0, y1), y2), y3), z2)) -> c1(MARK(first(first(first(y0, y1), y2), y3))) A__FIRST(s(z0), cons(first(first(from(y0), y1), y2), z2)) -> c1(MARK(first(first(from(y0), y1), y2))) A__FIRST(s(z0), cons(first(first(0, y0), y1), z2)) -> c1(MARK(first(first(0, y0), y1))) A__FIRST(s(z0), cons(first(first(nil, y0), y1), z2)) -> c1(MARK(first(first(nil, y0), y1))) A__FIRST(s(z0), cons(first(first(s(y0), y1), y2), z2)) -> c1(MARK(first(first(s(y0), y1), y2))) A__FIRST(s(z0), cons(first(first(cons(y0, y1), y2), y3), z2)) -> c1(MARK(first(first(cons(y0, y1), y2), y3))) A__FIRST(s(z0), cons(first(first(y0, y1), 0), z2)) -> c1(MARK(first(first(y0, y1), 0))) A__FIRST(s(z0), cons(first(first(y0, y1), nil), z2)) -> c1(MARK(first(first(y0, y1), nil))) A__FIRST(s(z0), cons(first(first(y0, y1), s(y2)), z2)) -> c1(MARK(first(first(y0, y1), s(y2)))) A__FIRST(s(z0), cons(first(first(y0, y1), y2), z2)) -> c1(MARK(first(first(y0, y1), y2))) A__FIRST(s(z0), cons(first(from(first(y0, y1)), y2), z2)) -> c1(MARK(first(from(first(y0, y1)), y2))) A__FIRST(s(z0), cons(first(from(from(y0)), y1), z2)) -> c1(MARK(first(from(from(y0)), y1))) A__FIRST(s(z0), cons(first(from(0), y0), z2)) -> c1(MARK(first(from(0), y0))) A__FIRST(s(z0), cons(first(from(nil), y0), z2)) -> c1(MARK(first(from(nil), y0))) A__FIRST(s(z0), cons(first(from(s(y0)), y1), z2)) -> c1(MARK(first(from(s(y0)), y1))) A__FIRST(s(z0), cons(first(from(cons(y0, y1)), y2), z2)) -> c1(MARK(first(from(cons(y0, y1)), y2))) A__FIRST(s(z0), cons(first(from(y0), y1), z2)) -> c1(MARK(first(from(y0), y1))) A__FIRST(s(z0), cons(first(from(y0), 0), z2)) -> c1(MARK(first(from(y0), 0))) A__FIRST(s(z0), cons(first(from(y0), nil), z2)) -> c1(MARK(first(from(y0), nil))) A__FIRST(s(z0), cons(first(from(y0), s(y1)), z2)) -> c1(MARK(first(from(y0), s(y1)))) A__FIRST(s(z0), cons(first(s(first(y0, y1)), y2), z2)) -> c1(MARK(first(s(first(y0, y1)), y2))) A__FIRST(s(z0), cons(first(s(from(y0)), y1), z2)) -> c1(MARK(first(s(from(y0)), y1))) A__FIRST(s(z0), cons(first(s(0), y0), z2)) -> c1(MARK(first(s(0), y0))) A__FIRST(s(z0), cons(first(s(nil), y0), z2)) -> c1(MARK(first(s(nil), y0))) A__FIRST(s(z0), cons(first(s(s(y0)), y1), z2)) -> c1(MARK(first(s(s(y0)), y1))) A__FIRST(s(z0), cons(first(s(cons(y0, y1)), y2), z2)) -> c1(MARK(first(s(cons(y0, y1)), y2))) A__FIRST(s(z0), cons(first(s(y0), y1), z2)) -> c1(MARK(first(s(y0), y1))) A__FIRST(s(z0), cons(first(s(y0), 0), z2)) -> c1(MARK(first(s(y0), 0))) A__FIRST(s(z0), cons(first(s(y0), nil), z2)) -> c1(MARK(first(s(y0), nil))) A__FIRST(s(z0), cons(first(s(y0), s(y1)), z2)) -> c1(MARK(first(s(y0), s(y1)))) A__FIRST(s(z0), cons(first(0, first(y0, y1)), z2)) -> c1(MARK(first(0, first(y0, y1)))) A__FIRST(s(z0), cons(first(nil, first(y0, y1)), z2)) -> c1(MARK(first(nil, first(y0, y1)))) A__FIRST(s(z0), cons(first(0, from(y0)), z2)) -> c1(MARK(first(0, from(y0)))) A__FIRST(s(z0), cons(first(nil, from(y0)), z2)) -> c1(MARK(first(nil, from(y0)))) A__FIRST(s(z0), cons(first(y0, cons(y1, y2)), z2)) -> c1(MARK(first(y0, cons(y1, y2)))) A__FIRST(s(z0), cons(first(0, cons(y0, y1)), z2)) -> c1(MARK(first(0, cons(y0, y1)))) A__FIRST(s(z0), cons(first(nil, cons(y0, y1)), z2)) -> c1(MARK(first(nil, cons(y0, y1)))) ---------------------------------------- (136) Obligation: Complexity Dependency Tuples Problem Rules: a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(0) -> 0 mark(nil) -> nil mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FROM(z0) -> c3(MARK(z0)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(x0, from(x1))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), from(x1))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(first(x0, cons(from(z0), x2))) -> c5(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(0, x2))) -> c5(A__FIRST(mark(x0), cons(0, x2)), MARK(x0)) MARK(first(x0, cons(nil, x2))) -> c5(A__FIRST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(first(x0, cons(s(z0), x2))) -> c5(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(first(first(z0, z1), cons(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(first(z0, z1))) MARK(first(from(z0), cons(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(first(s(z0), cons(x1, x2))) -> c5(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(s(z0))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(first(x0, first(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(first(x0, first(z0, z1)))) MARK(first(first(x0, from(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(first(x0, from(z0)))) MARK(first(first(x0, 0), x2)) -> c5(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(first(x0, 0))) MARK(first(first(x0, nil), x2)) -> c5(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(first(x0, nil))) MARK(first(first(x0, s(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(first(x0, s(z0)))) MARK(first(first(x0, cons(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(first(x0, cons(z0, z1)))) MARK(first(first(first(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(first(first(z0, z1), x1))) MARK(first(first(from(z0), x1), x2)) -> c5(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(first(from(z0), x1))) MARK(first(first(0, x1), x2)) -> c5(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(first(0, x1))) MARK(first(first(nil, x1), x2)) -> c5(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(first(nil, x1))) MARK(first(first(s(z0), x1), x2)) -> c5(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(first(s(z0), x1))) MARK(first(first(cons(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(first(cons(z0, z1), x1))) MARK(first(first(x0, x1), 0)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), nil)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), s(z0))) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), x2)) -> c5(MARK(first(x0, x1))) MARK(first(from(first(z0, z1)), x1)) -> c5(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(from(first(z0, z1)))) MARK(first(from(from(z0)), x1)) -> c5(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(first(from(0), x1)) -> c5(A__FIRST(a__from(0), mark(x1)), MARK(from(0))) MARK(first(from(nil), x1)) -> c5(A__FIRST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(first(from(s(z0)), x1)) -> c5(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(from(s(z0)))) MARK(first(from(cons(z0, z1)), x1)) -> c5(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(first(from(x0), x1)) -> c5(MARK(from(x0))) MARK(first(from(x0), 0)) -> c5(MARK(from(x0))) MARK(first(from(x0), nil)) -> c5(MARK(from(x0))) MARK(first(from(x0), s(z0))) -> c5(MARK(from(x0))) MARK(first(s(first(z0, z1)), x1)) -> c5(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(s(first(z0, z1)))) MARK(first(s(from(z0)), x1)) -> c5(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(s(from(z0)))) MARK(first(s(0), x1)) -> c5(A__FIRST(s(0), mark(x1)), MARK(s(0))) MARK(first(s(nil), x1)) -> c5(A__FIRST(s(nil), mark(x1)), MARK(s(nil))) MARK(first(s(s(z0)), x1)) -> c5(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(s(s(z0)))) MARK(first(s(cons(z0, z1)), x1)) -> c5(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(s(cons(z0, z1)))) MARK(first(s(x0), x1)) -> c5(MARK(s(x0))) MARK(first(s(x0), 0)) -> c5(MARK(s(x0))) MARK(first(s(x0), nil)) -> c5(MARK(s(x0))) MARK(first(s(x0), s(z0))) -> c5(MARK(s(x0))) MARK(first(x0, first(x1, first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(first(x1, first(z0, z1)))) MARK(first(x0, first(x1, from(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(first(x1, from(z0)))) MARK(first(x0, first(x1, 0))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(first(x1, 0))) MARK(first(x0, first(x1, nil))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(first(x1, nil))) MARK(first(x0, first(x1, s(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(first(x1, s(z0)))) MARK(first(x0, first(x1, cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(first(x1, cons(z0, z1)))) MARK(first(x0, first(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(first(first(z0, z1), x2))) MARK(first(x0, first(from(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(first(from(z0), x2))) MARK(first(x0, first(0, x2))) -> c6(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(first(0, x2))) MARK(first(x0, first(nil, x2))) -> c6(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(first(nil, x2))) MARK(first(x0, first(s(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(first(s(z0), x2))) MARK(first(x0, first(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(first(cons(z0, z1), x2))) MARK(first(first(z0, z1), first(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(from(z0), first(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(s(z0), first(x1, x2))) -> c6(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(x0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(nil, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(cons(z0, z1), first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(x0, from(x1))) -> c6(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(first(x0, from(first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(from(first(z0, z1)))) MARK(first(x0, from(from(z0)))) -> c6(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(first(x0, from(0))) -> c6(A__FIRST(mark(x0), a__from(0)), MARK(from(0))) MARK(first(x0, from(nil))) -> c6(A__FIRST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(first(x0, from(s(z0)))) -> c6(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(from(s(z0)))) MARK(first(x0, from(cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(first(first(z0, z1), from(x1))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(first(from(z0), from(x1))) -> c6(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(s(z0), from(x1))) -> c6(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(x0, from(x1))) -> c6(MARK(from(x1))) MARK(first(0, from(x1))) -> c6(MARK(from(x1))) MARK(first(nil, from(x1))) -> c6(MARK(from(x1))) MARK(first(cons(z0, z1), from(x1))) -> c6(MARK(from(x1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(cons(first(z0, z1), x2))) MARK(first(x0, cons(from(z0), x2))) -> c6(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(first(x0, cons(0, x2))) -> c6(A__FIRST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(first(x0, cons(nil, x2))) -> c6(A__FIRST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(first(x0, cons(s(z0), x2))) -> c6(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(cons(s(z0), x2))) MARK(first(x0, cons(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(first(first(z0, z1), cons(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(from(z0), cons(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(s(z0), cons(x1, x2))) -> c6(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(x0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(nil, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(first(x0, first(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(first(first(x0, from(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, 0), x2)) -> c6(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(x2)) MARK(first(first(x0, nil), x2)) -> c6(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(x2)) MARK(first(first(x0, s(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, cons(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(first(first(first(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(from(z0), x1), x2)) -> c6(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(0, x1), x2)) -> c6(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(nil, x1), x2)) -> c6(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(s(z0), x1), x2)) -> c6(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(cons(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(x0, x1), s(z0))) -> c6(MARK(s(z0))) MARK(first(first(x0, x1), x2)) -> c6(MARK(x2)) MARK(first(from(first(z0, z1)), x1)) -> c6(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(first(from(from(z0)), x1)) -> c6(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(first(from(0), x1)) -> c6(A__FIRST(a__from(0), mark(x1)), MARK(x1)) MARK(first(from(nil), x1)) -> c6(A__FIRST(a__from(nil), mark(x1)), MARK(x1)) MARK(first(from(s(z0)), x1)) -> c6(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(x1)) MARK(first(from(cons(z0, z1)), x1)) -> c6(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(first(from(x0), s(z0))) -> c6(MARK(s(z0))) MARK(first(from(x0), x1)) -> c6(MARK(x1)) MARK(first(s(first(z0, z1)), x1)) -> c6(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(first(s(from(z0)), x1)) -> c6(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(first(s(0), x1)) -> c6(A__FIRST(s(0), mark(x1)), MARK(x1)) MARK(first(s(nil), x1)) -> c6(A__FIRST(s(nil), mark(x1)), MARK(x1)) MARK(first(s(s(z0)), x1)) -> c6(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(x1)) MARK(first(s(cons(z0, z1)), x1)) -> c6(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(first(s(x0), s(z0))) -> c6(MARK(s(z0))) A__FIRST(s(z0), cons(from(y0), z2)) -> c1(MARK(from(y0))) A__FIRST(s(z0), cons(s(y0), z2)) -> c1(MARK(s(y0))) A__FIRST(s(z0), cons(cons(y0, y1), z2)) -> c1(MARK(cons(y0, y1))) A__FIRST(s(z0), cons(first(y0, 0), z2)) -> c1(MARK(first(y0, 0))) A__FIRST(s(z0), cons(first(y0, nil), z2)) -> c1(MARK(first(y0, nil))) A__FIRST(s(z0), cons(first(y0, s(y1)), z2)) -> c1(MARK(first(y0, s(y1)))) A__FIRST(s(z0), cons(first(cons(y0, y1), y2), z2)) -> c1(MARK(first(cons(y0, y1), y2))) A__FIRST(s(z0), cons(first(0, y0), z2)) -> c1(MARK(first(0, y0))) A__FIRST(s(z0), cons(first(nil, y0), z2)) -> c1(MARK(first(nil, y0))) A__FIRST(s(z0), cons(first(y0, first(y1, first(y2, y3))), z2)) -> c1(MARK(first(y0, first(y1, first(y2, y3))))) A__FIRST(s(z0), cons(first(y0, first(y1, from(y2))), z2)) -> c1(MARK(first(y0, first(y1, from(y2))))) A__FIRST(s(z0), cons(first(y0, first(y1, 0)), z2)) -> c1(MARK(first(y0, first(y1, 0)))) A__FIRST(s(z0), cons(first(y0, first(y1, nil)), z2)) -> c1(MARK(first(y0, first(y1, nil)))) A__FIRST(s(z0), cons(first(y0, first(y1, s(y2))), z2)) -> c1(MARK(first(y0, first(y1, s(y2))))) A__FIRST(s(z0), cons(first(y0, first(y1, cons(y2, y3))), z2)) -> c1(MARK(first(y0, first(y1, cons(y2, y3))))) A__FIRST(s(z0), cons(first(y0, first(first(y1, y2), y3)), z2)) -> c1(MARK(first(y0, first(first(y1, y2), y3)))) A__FIRST(s(z0), cons(first(y0, first(from(y1), y2)), z2)) -> c1(MARK(first(y0, first(from(y1), y2)))) A__FIRST(s(z0), cons(first(y0, first(0, y1)), z2)) -> c1(MARK(first(y0, first(0, y1)))) A__FIRST(s(z0), cons(first(y0, first(nil, y1)), z2)) -> c1(MARK(first(y0, first(nil, y1)))) A__FIRST(s(z0), cons(first(y0, first(s(y1), y2)), z2)) -> c1(MARK(first(y0, first(s(y1), y2)))) A__FIRST(s(z0), cons(first(y0, first(cons(y1, y2), y3)), z2)) -> c1(MARK(first(y0, first(cons(y1, y2), y3)))) A__FIRST(s(z0), cons(first(first(y0, y1), first(y2, y3)), z2)) -> c1(MARK(first(first(y0, y1), first(y2, y3)))) A__FIRST(s(z0), cons(first(from(y0), first(y1, y2)), z2)) -> c1(MARK(first(from(y0), first(y1, y2)))) A__FIRST(s(z0), cons(first(s(y0), first(y1, y2)), z2)) -> c1(MARK(first(s(y0), first(y1, y2)))) A__FIRST(s(z0), cons(first(y0, first(y1, y2)), z2)) -> c1(MARK(first(y0, first(y1, y2)))) A__FIRST(s(z0), cons(first(cons(y0, y1), first(y2, y3)), z2)) -> c1(MARK(first(cons(y0, y1), first(y2, y3)))) A__FIRST(s(z0), cons(first(y0, from(y1)), z2)) -> c1(MARK(first(y0, from(y1)))) A__FIRST(s(z0), cons(first(y0, from(first(y1, y2))), z2)) -> c1(MARK(first(y0, from(first(y1, y2))))) A__FIRST(s(z0), cons(first(y0, from(from(y1))), z2)) -> c1(MARK(first(y0, from(from(y1))))) A__FIRST(s(z0), cons(first(y0, from(0)), z2)) -> c1(MARK(first(y0, from(0)))) A__FIRST(s(z0), cons(first(y0, from(nil)), z2)) -> c1(MARK(first(y0, from(nil)))) A__FIRST(s(z0), cons(first(y0, from(s(y1))), z2)) -> c1(MARK(first(y0, from(s(y1))))) A__FIRST(s(z0), cons(first(y0, from(cons(y1, y2))), z2)) -> c1(MARK(first(y0, from(cons(y1, y2))))) A__FIRST(s(z0), cons(first(first(y0, y1), from(y2)), z2)) -> c1(MARK(first(first(y0, y1), from(y2)))) A__FIRST(s(z0), cons(first(from(y0), from(y1)), z2)) -> c1(MARK(first(from(y0), from(y1)))) A__FIRST(s(z0), cons(first(s(y0), from(y1)), z2)) -> c1(MARK(first(s(y0), from(y1)))) A__FIRST(s(z0), cons(first(cons(y0, y1), from(y2)), z2)) -> c1(MARK(first(cons(y0, y1), from(y2)))) A__FIRST(s(z0), cons(first(y0, cons(first(y1, y2), y3)), z2)) -> c1(MARK(first(y0, cons(first(y1, y2), y3)))) A__FIRST(s(z0), cons(first(y0, cons(from(y1), y2)), z2)) -> c1(MARK(first(y0, cons(from(y1), y2)))) A__FIRST(s(z0), cons(first(y0, cons(0, y1)), z2)) -> c1(MARK(first(y0, cons(0, y1)))) A__FIRST(s(z0), cons(first(y0, cons(nil, y1)), z2)) -> c1(MARK(first(y0, cons(nil, y1)))) A__FIRST(s(z0), cons(first(y0, cons(s(y1), y2)), z2)) -> c1(MARK(first(y0, cons(s(y1), y2)))) A__FIRST(s(z0), cons(first(y0, cons(cons(y1, y2), y3)), z2)) -> c1(MARK(first(y0, cons(cons(y1, y2), y3)))) A__FIRST(s(z0), cons(first(first(y0, y1), cons(y2, y3)), z2)) -> c1(MARK(first(first(y0, y1), cons(y2, y3)))) A__FIRST(s(z0), cons(first(from(y0), cons(y1, y2)), z2)) -> c1(MARK(first(from(y0), cons(y1, y2)))) A__FIRST(s(z0), cons(first(s(y0), cons(y1, y2)), z2)) -> c1(MARK(first(s(y0), cons(y1, y2)))) A__FIRST(s(z0), cons(first(cons(y0, y1), cons(y2, y3)), z2)) -> c1(MARK(first(cons(y0, y1), cons(y2, y3)))) A__FIRST(s(z0), cons(first(first(y0, first(y1, y2)), y3), z2)) -> c1(MARK(first(first(y0, first(y1, y2)), y3))) A__FIRST(s(z0), cons(first(first(y0, from(y1)), y2), z2)) -> c1(MARK(first(first(y0, from(y1)), y2))) A__FIRST(s(z0), cons(first(first(y0, 0), y1), z2)) -> c1(MARK(first(first(y0, 0), y1))) A__FIRST(s(z0), cons(first(first(y0, nil), y1), z2)) -> c1(MARK(first(first(y0, nil), y1))) A__FIRST(s(z0), cons(first(first(y0, s(y1)), y2), z2)) -> c1(MARK(first(first(y0, s(y1)), y2))) A__FIRST(s(z0), cons(first(first(y0, cons(y1, y2)), y3), z2)) -> c1(MARK(first(first(y0, cons(y1, y2)), y3))) A__FIRST(s(z0), cons(first(first(first(y0, y1), y2), y3), z2)) -> c1(MARK(first(first(first(y0, y1), y2), y3))) A__FIRST(s(z0), cons(first(first(from(y0), y1), y2), z2)) -> c1(MARK(first(first(from(y0), y1), y2))) A__FIRST(s(z0), cons(first(first(0, y0), y1), z2)) -> c1(MARK(first(first(0, y0), y1))) A__FIRST(s(z0), cons(first(first(nil, y0), y1), z2)) -> c1(MARK(first(first(nil, y0), y1))) A__FIRST(s(z0), cons(first(first(s(y0), y1), y2), z2)) -> c1(MARK(first(first(s(y0), y1), y2))) A__FIRST(s(z0), cons(first(first(cons(y0, y1), y2), y3), z2)) -> c1(MARK(first(first(cons(y0, y1), y2), y3))) A__FIRST(s(z0), cons(first(first(y0, y1), 0), z2)) -> c1(MARK(first(first(y0, y1), 0))) A__FIRST(s(z0), cons(first(first(y0, y1), nil), z2)) -> c1(MARK(first(first(y0, y1), nil))) A__FIRST(s(z0), cons(first(first(y0, y1), s(y2)), z2)) -> c1(MARK(first(first(y0, y1), s(y2)))) A__FIRST(s(z0), cons(first(first(y0, y1), y2), z2)) -> c1(MARK(first(first(y0, y1), y2))) A__FIRST(s(z0), cons(first(from(first(y0, y1)), y2), z2)) -> c1(MARK(first(from(first(y0, y1)), y2))) A__FIRST(s(z0), cons(first(from(from(y0)), y1), z2)) -> c1(MARK(first(from(from(y0)), y1))) A__FIRST(s(z0), cons(first(from(0), y0), z2)) -> c1(MARK(first(from(0), y0))) A__FIRST(s(z0), cons(first(from(nil), y0), z2)) -> c1(MARK(first(from(nil), y0))) A__FIRST(s(z0), cons(first(from(s(y0)), y1), z2)) -> c1(MARK(first(from(s(y0)), y1))) A__FIRST(s(z0), cons(first(from(cons(y0, y1)), y2), z2)) -> c1(MARK(first(from(cons(y0, y1)), y2))) A__FIRST(s(z0), cons(first(from(y0), y1), z2)) -> c1(MARK(first(from(y0), y1))) A__FIRST(s(z0), cons(first(from(y0), 0), z2)) -> c1(MARK(first(from(y0), 0))) A__FIRST(s(z0), cons(first(from(y0), nil), z2)) -> c1(MARK(first(from(y0), nil))) A__FIRST(s(z0), cons(first(from(y0), s(y1)), z2)) -> c1(MARK(first(from(y0), s(y1)))) A__FIRST(s(z0), cons(first(s(first(y0, y1)), y2), z2)) -> c1(MARK(first(s(first(y0, y1)), y2))) A__FIRST(s(z0), cons(first(s(from(y0)), y1), z2)) -> c1(MARK(first(s(from(y0)), y1))) A__FIRST(s(z0), cons(first(s(0), y0), z2)) -> c1(MARK(first(s(0), y0))) A__FIRST(s(z0), cons(first(s(nil), y0), z2)) -> c1(MARK(first(s(nil), y0))) A__FIRST(s(z0), cons(first(s(s(y0)), y1), z2)) -> c1(MARK(first(s(s(y0)), y1))) A__FIRST(s(z0), cons(first(s(cons(y0, y1)), y2), z2)) -> c1(MARK(first(s(cons(y0, y1)), y2))) A__FIRST(s(z0), cons(first(s(y0), y1), z2)) -> c1(MARK(first(s(y0), y1))) A__FIRST(s(z0), cons(first(s(y0), 0), z2)) -> c1(MARK(first(s(y0), 0))) A__FIRST(s(z0), cons(first(s(y0), nil), z2)) -> c1(MARK(first(s(y0), nil))) A__FIRST(s(z0), cons(first(s(y0), s(y1)), z2)) -> c1(MARK(first(s(y0), s(y1)))) A__FIRST(s(z0), cons(first(0, first(y0, y1)), z2)) -> c1(MARK(first(0, first(y0, y1)))) A__FIRST(s(z0), cons(first(nil, first(y0, y1)), z2)) -> c1(MARK(first(nil, first(y0, y1)))) A__FIRST(s(z0), cons(first(0, from(y0)), z2)) -> c1(MARK(first(0, from(y0)))) A__FIRST(s(z0), cons(first(nil, from(y0)), z2)) -> c1(MARK(first(nil, from(y0)))) A__FIRST(s(z0), cons(first(y0, cons(y1, y2)), z2)) -> c1(MARK(first(y0, cons(y1, y2)))) A__FIRST(s(z0), cons(first(0, cons(y0, y1)), z2)) -> c1(MARK(first(0, cons(y0, y1)))) A__FIRST(s(z0), cons(first(nil, cons(y0, y1)), z2)) -> c1(MARK(first(nil, cons(y0, y1)))) S tuples: A__FROM(z0) -> c3(MARK(z0)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(x0, from(x1))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), from(x1))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(first(x0, cons(from(z0), x2))) -> c5(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(0, x2))) -> c5(A__FIRST(mark(x0), cons(0, x2)), MARK(x0)) MARK(first(x0, cons(nil, x2))) -> c5(A__FIRST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(first(x0, cons(s(z0), x2))) -> c5(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(first(first(z0, z1), cons(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(first(z0, z1))) MARK(first(from(z0), cons(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(first(s(z0), cons(x1, x2))) -> c5(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(s(z0))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(first(x0, first(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(first(x0, first(z0, z1)))) MARK(first(first(x0, from(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(first(x0, from(z0)))) MARK(first(first(x0, 0), x2)) -> c5(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(first(x0, 0))) MARK(first(first(x0, nil), x2)) -> c5(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(first(x0, nil))) MARK(first(first(x0, s(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(first(x0, s(z0)))) MARK(first(first(x0, cons(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(first(x0, cons(z0, z1)))) MARK(first(first(first(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(first(first(z0, z1), x1))) MARK(first(first(from(z0), x1), x2)) -> c5(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(first(from(z0), x1))) MARK(first(first(0, x1), x2)) -> c5(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(first(0, x1))) MARK(first(first(nil, x1), x2)) -> c5(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(first(nil, x1))) MARK(first(first(s(z0), x1), x2)) -> c5(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(first(s(z0), x1))) MARK(first(first(cons(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(first(cons(z0, z1), x1))) MARK(first(first(x0, x1), 0)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), nil)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), s(z0))) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), x2)) -> c5(MARK(first(x0, x1))) MARK(first(from(first(z0, z1)), x1)) -> c5(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(from(first(z0, z1)))) MARK(first(from(from(z0)), x1)) -> c5(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(first(from(0), x1)) -> c5(A__FIRST(a__from(0), mark(x1)), MARK(from(0))) MARK(first(from(nil), x1)) -> c5(A__FIRST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(first(from(s(z0)), x1)) -> c5(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(from(s(z0)))) MARK(first(from(cons(z0, z1)), x1)) -> c5(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(first(from(x0), x1)) -> c5(MARK(from(x0))) MARK(first(from(x0), 0)) -> c5(MARK(from(x0))) MARK(first(from(x0), nil)) -> c5(MARK(from(x0))) MARK(first(from(x0), s(z0))) -> c5(MARK(from(x0))) MARK(first(s(first(z0, z1)), x1)) -> c5(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(s(first(z0, z1)))) MARK(first(s(from(z0)), x1)) -> c5(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(s(from(z0)))) MARK(first(s(0), x1)) -> c5(A__FIRST(s(0), mark(x1)), MARK(s(0))) MARK(first(s(nil), x1)) -> c5(A__FIRST(s(nil), mark(x1)), MARK(s(nil))) MARK(first(s(s(z0)), x1)) -> c5(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(s(s(z0)))) MARK(first(s(cons(z0, z1)), x1)) -> c5(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(s(cons(z0, z1)))) MARK(first(s(x0), x1)) -> c5(MARK(s(x0))) MARK(first(s(x0), 0)) -> c5(MARK(s(x0))) MARK(first(s(x0), nil)) -> c5(MARK(s(x0))) MARK(first(s(x0), s(z0))) -> c5(MARK(s(x0))) MARK(first(x0, first(x1, first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(first(x1, first(z0, z1)))) MARK(first(x0, first(x1, from(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(first(x1, from(z0)))) MARK(first(x0, first(x1, 0))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(first(x1, 0))) MARK(first(x0, first(x1, nil))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(first(x1, nil))) MARK(first(x0, first(x1, s(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(first(x1, s(z0)))) MARK(first(x0, first(x1, cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(first(x1, cons(z0, z1)))) MARK(first(x0, first(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(first(first(z0, z1), x2))) MARK(first(x0, first(from(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(first(from(z0), x2))) MARK(first(x0, first(0, x2))) -> c6(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(first(0, x2))) MARK(first(x0, first(nil, x2))) -> c6(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(first(nil, x2))) MARK(first(x0, first(s(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(first(s(z0), x2))) MARK(first(x0, first(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(first(cons(z0, z1), x2))) MARK(first(first(z0, z1), first(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(from(z0), first(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(s(z0), first(x1, x2))) -> c6(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(x0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(nil, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(cons(z0, z1), first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(x0, from(x1))) -> c6(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(first(x0, from(first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(from(first(z0, z1)))) MARK(first(x0, from(from(z0)))) -> c6(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(first(x0, from(0))) -> c6(A__FIRST(mark(x0), a__from(0)), MARK(from(0))) MARK(first(x0, from(nil))) -> c6(A__FIRST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(first(x0, from(s(z0)))) -> c6(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(from(s(z0)))) MARK(first(x0, from(cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(first(first(z0, z1), from(x1))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(first(from(z0), from(x1))) -> c6(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(s(z0), from(x1))) -> c6(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(x0, from(x1))) -> c6(MARK(from(x1))) MARK(first(0, from(x1))) -> c6(MARK(from(x1))) MARK(first(nil, from(x1))) -> c6(MARK(from(x1))) MARK(first(cons(z0, z1), from(x1))) -> c6(MARK(from(x1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(cons(first(z0, z1), x2))) MARK(first(x0, cons(from(z0), x2))) -> c6(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(first(x0, cons(0, x2))) -> c6(A__FIRST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(first(x0, cons(nil, x2))) -> c6(A__FIRST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(first(x0, cons(s(z0), x2))) -> c6(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(cons(s(z0), x2))) MARK(first(x0, cons(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(first(first(z0, z1), cons(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(from(z0), cons(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(s(z0), cons(x1, x2))) -> c6(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(x0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(nil, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(first(x0, first(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(first(first(x0, from(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, 0), x2)) -> c6(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(x2)) MARK(first(first(x0, nil), x2)) -> c6(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(x2)) MARK(first(first(x0, s(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, cons(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(first(first(first(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(from(z0), x1), x2)) -> c6(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(0, x1), x2)) -> c6(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(nil, x1), x2)) -> c6(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(s(z0), x1), x2)) -> c6(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(cons(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(x0, x1), s(z0))) -> c6(MARK(s(z0))) MARK(first(first(x0, x1), x2)) -> c6(MARK(x2)) MARK(first(from(first(z0, z1)), x1)) -> c6(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(first(from(from(z0)), x1)) -> c6(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(first(from(0), x1)) -> c6(A__FIRST(a__from(0), mark(x1)), MARK(x1)) MARK(first(from(nil), x1)) -> c6(A__FIRST(a__from(nil), mark(x1)), MARK(x1)) MARK(first(from(s(z0)), x1)) -> c6(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(x1)) MARK(first(from(cons(z0, z1)), x1)) -> c6(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(first(from(x0), s(z0))) -> c6(MARK(s(z0))) MARK(first(from(x0), x1)) -> c6(MARK(x1)) MARK(first(s(first(z0, z1)), x1)) -> c6(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(first(s(from(z0)), x1)) -> c6(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(first(s(0), x1)) -> c6(A__FIRST(s(0), mark(x1)), MARK(x1)) MARK(first(s(nil), x1)) -> c6(A__FIRST(s(nil), mark(x1)), MARK(x1)) MARK(first(s(s(z0)), x1)) -> c6(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(x1)) MARK(first(s(cons(z0, z1)), x1)) -> c6(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(first(s(x0), s(z0))) -> c6(MARK(s(z0))) A__FIRST(s(z0), cons(from(y0), z2)) -> c1(MARK(from(y0))) A__FIRST(s(z0), cons(s(y0), z2)) -> c1(MARK(s(y0))) A__FIRST(s(z0), cons(cons(y0, y1), z2)) -> c1(MARK(cons(y0, y1))) A__FIRST(s(z0), cons(first(y0, 0), z2)) -> c1(MARK(first(y0, 0))) A__FIRST(s(z0), cons(first(y0, nil), z2)) -> c1(MARK(first(y0, nil))) A__FIRST(s(z0), cons(first(y0, s(y1)), z2)) -> c1(MARK(first(y0, s(y1)))) A__FIRST(s(z0), cons(first(cons(y0, y1), y2), z2)) -> c1(MARK(first(cons(y0, y1), y2))) A__FIRST(s(z0), cons(first(0, y0), z2)) -> c1(MARK(first(0, y0))) A__FIRST(s(z0), cons(first(nil, y0), z2)) -> c1(MARK(first(nil, y0))) A__FIRST(s(z0), cons(first(y0, first(y1, first(y2, y3))), z2)) -> c1(MARK(first(y0, first(y1, first(y2, y3))))) A__FIRST(s(z0), cons(first(y0, first(y1, from(y2))), z2)) -> c1(MARK(first(y0, first(y1, from(y2))))) A__FIRST(s(z0), cons(first(y0, first(y1, 0)), z2)) -> c1(MARK(first(y0, first(y1, 0)))) A__FIRST(s(z0), cons(first(y0, first(y1, nil)), z2)) -> c1(MARK(first(y0, first(y1, nil)))) A__FIRST(s(z0), cons(first(y0, first(y1, s(y2))), z2)) -> c1(MARK(first(y0, first(y1, s(y2))))) A__FIRST(s(z0), cons(first(y0, first(y1, cons(y2, y3))), z2)) -> c1(MARK(first(y0, first(y1, cons(y2, y3))))) A__FIRST(s(z0), cons(first(y0, first(first(y1, y2), y3)), z2)) -> c1(MARK(first(y0, first(first(y1, y2), y3)))) A__FIRST(s(z0), cons(first(y0, first(from(y1), y2)), z2)) -> c1(MARK(first(y0, first(from(y1), y2)))) A__FIRST(s(z0), cons(first(y0, first(0, y1)), z2)) -> c1(MARK(first(y0, first(0, y1)))) A__FIRST(s(z0), cons(first(y0, first(nil, y1)), z2)) -> c1(MARK(first(y0, first(nil, y1)))) A__FIRST(s(z0), cons(first(y0, first(s(y1), y2)), z2)) -> c1(MARK(first(y0, first(s(y1), y2)))) A__FIRST(s(z0), cons(first(y0, first(cons(y1, y2), y3)), z2)) -> c1(MARK(first(y0, first(cons(y1, y2), y3)))) A__FIRST(s(z0), cons(first(first(y0, y1), first(y2, y3)), z2)) -> c1(MARK(first(first(y0, y1), first(y2, y3)))) A__FIRST(s(z0), cons(first(from(y0), first(y1, y2)), z2)) -> c1(MARK(first(from(y0), first(y1, y2)))) A__FIRST(s(z0), cons(first(s(y0), first(y1, y2)), z2)) -> c1(MARK(first(s(y0), first(y1, y2)))) A__FIRST(s(z0), cons(first(y0, first(y1, y2)), z2)) -> c1(MARK(first(y0, first(y1, y2)))) A__FIRST(s(z0), cons(first(cons(y0, y1), first(y2, y3)), z2)) -> c1(MARK(first(cons(y0, y1), first(y2, y3)))) A__FIRST(s(z0), cons(first(y0, from(y1)), z2)) -> c1(MARK(first(y0, from(y1)))) A__FIRST(s(z0), cons(first(y0, from(first(y1, y2))), z2)) -> c1(MARK(first(y0, from(first(y1, y2))))) A__FIRST(s(z0), cons(first(y0, from(from(y1))), z2)) -> c1(MARK(first(y0, from(from(y1))))) A__FIRST(s(z0), cons(first(y0, from(0)), z2)) -> c1(MARK(first(y0, from(0)))) A__FIRST(s(z0), cons(first(y0, from(nil)), z2)) -> c1(MARK(first(y0, from(nil)))) A__FIRST(s(z0), cons(first(y0, from(s(y1))), z2)) -> c1(MARK(first(y0, from(s(y1))))) A__FIRST(s(z0), cons(first(y0, from(cons(y1, y2))), z2)) -> c1(MARK(first(y0, from(cons(y1, y2))))) A__FIRST(s(z0), cons(first(first(y0, y1), from(y2)), z2)) -> c1(MARK(first(first(y0, y1), from(y2)))) A__FIRST(s(z0), cons(first(from(y0), from(y1)), z2)) -> c1(MARK(first(from(y0), from(y1)))) A__FIRST(s(z0), cons(first(s(y0), from(y1)), z2)) -> c1(MARK(first(s(y0), from(y1)))) A__FIRST(s(z0), cons(first(cons(y0, y1), from(y2)), z2)) -> c1(MARK(first(cons(y0, y1), from(y2)))) A__FIRST(s(z0), cons(first(y0, cons(first(y1, y2), y3)), z2)) -> c1(MARK(first(y0, cons(first(y1, y2), y3)))) A__FIRST(s(z0), cons(first(y0, cons(from(y1), y2)), z2)) -> c1(MARK(first(y0, cons(from(y1), y2)))) A__FIRST(s(z0), cons(first(y0, cons(0, y1)), z2)) -> c1(MARK(first(y0, cons(0, y1)))) A__FIRST(s(z0), cons(first(y0, cons(nil, y1)), z2)) -> c1(MARK(first(y0, cons(nil, y1)))) A__FIRST(s(z0), cons(first(y0, cons(s(y1), y2)), z2)) -> c1(MARK(first(y0, cons(s(y1), y2)))) A__FIRST(s(z0), cons(first(y0, cons(cons(y1, y2), y3)), z2)) -> c1(MARK(first(y0, cons(cons(y1, y2), y3)))) A__FIRST(s(z0), cons(first(first(y0, y1), cons(y2, y3)), z2)) -> c1(MARK(first(first(y0, y1), cons(y2, y3)))) A__FIRST(s(z0), cons(first(from(y0), cons(y1, y2)), z2)) -> c1(MARK(first(from(y0), cons(y1, y2)))) A__FIRST(s(z0), cons(first(s(y0), cons(y1, y2)), z2)) -> c1(MARK(first(s(y0), cons(y1, y2)))) A__FIRST(s(z0), cons(first(cons(y0, y1), cons(y2, y3)), z2)) -> c1(MARK(first(cons(y0, y1), cons(y2, y3)))) A__FIRST(s(z0), cons(first(first(y0, first(y1, y2)), y3), z2)) -> c1(MARK(first(first(y0, first(y1, y2)), y3))) A__FIRST(s(z0), cons(first(first(y0, from(y1)), y2), z2)) -> c1(MARK(first(first(y0, from(y1)), y2))) A__FIRST(s(z0), cons(first(first(y0, 0), y1), z2)) -> c1(MARK(first(first(y0, 0), y1))) A__FIRST(s(z0), cons(first(first(y0, nil), y1), z2)) -> c1(MARK(first(first(y0, nil), y1))) A__FIRST(s(z0), cons(first(first(y0, s(y1)), y2), z2)) -> c1(MARK(first(first(y0, s(y1)), y2))) A__FIRST(s(z0), cons(first(first(y0, cons(y1, y2)), y3), z2)) -> c1(MARK(first(first(y0, cons(y1, y2)), y3))) A__FIRST(s(z0), cons(first(first(first(y0, y1), y2), y3), z2)) -> c1(MARK(first(first(first(y0, y1), y2), y3))) A__FIRST(s(z0), cons(first(first(from(y0), y1), y2), z2)) -> c1(MARK(first(first(from(y0), y1), y2))) A__FIRST(s(z0), cons(first(first(0, y0), y1), z2)) -> c1(MARK(first(first(0, y0), y1))) A__FIRST(s(z0), cons(first(first(nil, y0), y1), z2)) -> c1(MARK(first(first(nil, y0), y1))) A__FIRST(s(z0), cons(first(first(s(y0), y1), y2), z2)) -> c1(MARK(first(first(s(y0), y1), y2))) A__FIRST(s(z0), cons(first(first(cons(y0, y1), y2), y3), z2)) -> c1(MARK(first(first(cons(y0, y1), y2), y3))) A__FIRST(s(z0), cons(first(first(y0, y1), 0), z2)) -> c1(MARK(first(first(y0, y1), 0))) A__FIRST(s(z0), cons(first(first(y0, y1), nil), z2)) -> c1(MARK(first(first(y0, y1), nil))) A__FIRST(s(z0), cons(first(first(y0, y1), s(y2)), z2)) -> c1(MARK(first(first(y0, y1), s(y2)))) A__FIRST(s(z0), cons(first(first(y0, y1), y2), z2)) -> c1(MARK(first(first(y0, y1), y2))) A__FIRST(s(z0), cons(first(from(first(y0, y1)), y2), z2)) -> c1(MARK(first(from(first(y0, y1)), y2))) A__FIRST(s(z0), cons(first(from(from(y0)), y1), z2)) -> c1(MARK(first(from(from(y0)), y1))) A__FIRST(s(z0), cons(first(from(0), y0), z2)) -> c1(MARK(first(from(0), y0))) A__FIRST(s(z0), cons(first(from(nil), y0), z2)) -> c1(MARK(first(from(nil), y0))) A__FIRST(s(z0), cons(first(from(s(y0)), y1), z2)) -> c1(MARK(first(from(s(y0)), y1))) A__FIRST(s(z0), cons(first(from(cons(y0, y1)), y2), z2)) -> c1(MARK(first(from(cons(y0, y1)), y2))) A__FIRST(s(z0), cons(first(from(y0), y1), z2)) -> c1(MARK(first(from(y0), y1))) A__FIRST(s(z0), cons(first(from(y0), 0), z2)) -> c1(MARK(first(from(y0), 0))) A__FIRST(s(z0), cons(first(from(y0), nil), z2)) -> c1(MARK(first(from(y0), nil))) A__FIRST(s(z0), cons(first(from(y0), s(y1)), z2)) -> c1(MARK(first(from(y0), s(y1)))) A__FIRST(s(z0), cons(first(s(first(y0, y1)), y2), z2)) -> c1(MARK(first(s(first(y0, y1)), y2))) A__FIRST(s(z0), cons(first(s(from(y0)), y1), z2)) -> c1(MARK(first(s(from(y0)), y1))) A__FIRST(s(z0), cons(first(s(0), y0), z2)) -> c1(MARK(first(s(0), y0))) A__FIRST(s(z0), cons(first(s(nil), y0), z2)) -> c1(MARK(first(s(nil), y0))) A__FIRST(s(z0), cons(first(s(s(y0)), y1), z2)) -> c1(MARK(first(s(s(y0)), y1))) A__FIRST(s(z0), cons(first(s(cons(y0, y1)), y2), z2)) -> c1(MARK(first(s(cons(y0, y1)), y2))) A__FIRST(s(z0), cons(first(s(y0), y1), z2)) -> c1(MARK(first(s(y0), y1))) A__FIRST(s(z0), cons(first(s(y0), 0), z2)) -> c1(MARK(first(s(y0), 0))) A__FIRST(s(z0), cons(first(s(y0), nil), z2)) -> c1(MARK(first(s(y0), nil))) A__FIRST(s(z0), cons(first(s(y0), s(y1)), z2)) -> c1(MARK(first(s(y0), s(y1)))) A__FIRST(s(z0), cons(first(0, first(y0, y1)), z2)) -> c1(MARK(first(0, first(y0, y1)))) A__FIRST(s(z0), cons(first(nil, first(y0, y1)), z2)) -> c1(MARK(first(nil, first(y0, y1)))) A__FIRST(s(z0), cons(first(0, from(y0)), z2)) -> c1(MARK(first(0, from(y0)))) A__FIRST(s(z0), cons(first(nil, from(y0)), z2)) -> c1(MARK(first(nil, from(y0)))) A__FIRST(s(z0), cons(first(y0, cons(y1, y2)), z2)) -> c1(MARK(first(y0, cons(y1, y2)))) A__FIRST(s(z0), cons(first(0, cons(y0, y1)), z2)) -> c1(MARK(first(0, cons(y0, y1)))) A__FIRST(s(z0), cons(first(nil, cons(y0, y1)), z2)) -> c1(MARK(first(nil, cons(y0, y1)))) K tuples:none Defined Rule Symbols: a__first_2, a__from_1, mark_1 Defined Pair Symbols: A__FROM_1, MARK_1, A__FIRST_2 Compound Symbols: c3_1, c7_2, c10_1, c11_1, c5_1, c6_1, c5_2, c6_2, c1_1 ---------------------------------------- (137) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (138) Obligation: Complexity Dependency Tuples Problem Rules: a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(0) -> 0 mark(nil) -> nil mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FROM(z0) -> c3(MARK(z0)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(x0, from(x1))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), from(x1))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(first(x0, cons(from(z0), x2))) -> c5(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(s(z0), x2))) -> c5(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(first(first(z0, z1), cons(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(first(z0, z1))) MARK(first(from(z0), cons(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(first(s(z0), cons(x1, x2))) -> c5(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(s(z0))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(first(x0, first(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(first(x0, first(z0, z1)))) MARK(first(first(x0, from(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(first(x0, from(z0)))) MARK(first(first(x0, 0), x2)) -> c5(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(first(x0, 0))) MARK(first(first(x0, nil), x2)) -> c5(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(first(x0, nil))) MARK(first(first(x0, s(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(first(x0, s(z0)))) MARK(first(first(x0, cons(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(first(x0, cons(z0, z1)))) MARK(first(first(first(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(first(first(z0, z1), x1))) MARK(first(first(from(z0), x1), x2)) -> c5(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(first(from(z0), x1))) MARK(first(first(0, x1), x2)) -> c5(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(first(0, x1))) MARK(first(first(nil, x1), x2)) -> c5(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(first(nil, x1))) MARK(first(first(s(z0), x1), x2)) -> c5(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(first(s(z0), x1))) MARK(first(first(cons(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(first(cons(z0, z1), x1))) MARK(first(first(x0, x1), 0)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), nil)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), s(z0))) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), x2)) -> c5(MARK(first(x0, x1))) MARK(first(from(first(z0, z1)), x1)) -> c5(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(from(first(z0, z1)))) MARK(first(from(from(z0)), x1)) -> c5(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(first(from(0), x1)) -> c5(A__FIRST(a__from(0), mark(x1)), MARK(from(0))) MARK(first(from(nil), x1)) -> c5(A__FIRST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(first(from(s(z0)), x1)) -> c5(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(from(s(z0)))) MARK(first(from(cons(z0, z1)), x1)) -> c5(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(first(from(x0), x1)) -> c5(MARK(from(x0))) MARK(first(from(x0), 0)) -> c5(MARK(from(x0))) MARK(first(from(x0), nil)) -> c5(MARK(from(x0))) MARK(first(from(x0), s(z0))) -> c5(MARK(from(x0))) MARK(first(s(first(z0, z1)), x1)) -> c5(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(s(first(z0, z1)))) MARK(first(s(from(z0)), x1)) -> c5(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(s(from(z0)))) MARK(first(s(0), x1)) -> c5(A__FIRST(s(0), mark(x1)), MARK(s(0))) MARK(first(s(nil), x1)) -> c5(A__FIRST(s(nil), mark(x1)), MARK(s(nil))) MARK(first(s(s(z0)), x1)) -> c5(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(s(s(z0)))) MARK(first(s(cons(z0, z1)), x1)) -> c5(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(s(cons(z0, z1)))) MARK(first(s(x0), x1)) -> c5(MARK(s(x0))) MARK(first(s(x0), 0)) -> c5(MARK(s(x0))) MARK(first(s(x0), nil)) -> c5(MARK(s(x0))) MARK(first(s(x0), s(z0))) -> c5(MARK(s(x0))) MARK(first(x0, first(x1, first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(first(x1, first(z0, z1)))) MARK(first(x0, first(x1, from(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(first(x1, from(z0)))) MARK(first(x0, first(x1, 0))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(first(x1, 0))) MARK(first(x0, first(x1, nil))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(first(x1, nil))) MARK(first(x0, first(x1, s(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(first(x1, s(z0)))) MARK(first(x0, first(x1, cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(first(x1, cons(z0, z1)))) MARK(first(x0, first(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(first(first(z0, z1), x2))) MARK(first(x0, first(from(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(first(from(z0), x2))) MARK(first(x0, first(0, x2))) -> c6(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(first(0, x2))) MARK(first(x0, first(nil, x2))) -> c6(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(first(nil, x2))) MARK(first(x0, first(s(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(first(s(z0), x2))) MARK(first(x0, first(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(first(cons(z0, z1), x2))) MARK(first(first(z0, z1), first(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(from(z0), first(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(s(z0), first(x1, x2))) -> c6(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(x0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(nil, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(cons(z0, z1), first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(x0, from(x1))) -> c6(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(first(x0, from(first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(from(first(z0, z1)))) MARK(first(x0, from(from(z0)))) -> c6(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(first(x0, from(0))) -> c6(A__FIRST(mark(x0), a__from(0)), MARK(from(0))) MARK(first(x0, from(nil))) -> c6(A__FIRST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(first(x0, from(s(z0)))) -> c6(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(from(s(z0)))) MARK(first(x0, from(cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(first(first(z0, z1), from(x1))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(first(from(z0), from(x1))) -> c6(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(s(z0), from(x1))) -> c6(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(x0, from(x1))) -> c6(MARK(from(x1))) MARK(first(0, from(x1))) -> c6(MARK(from(x1))) MARK(first(nil, from(x1))) -> c6(MARK(from(x1))) MARK(first(cons(z0, z1), from(x1))) -> c6(MARK(from(x1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(cons(first(z0, z1), x2))) MARK(first(x0, cons(from(z0), x2))) -> c6(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(first(x0, cons(s(z0), x2))) -> c6(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(cons(s(z0), x2))) MARK(first(x0, cons(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(first(first(z0, z1), cons(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(from(z0), cons(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(s(z0), cons(x1, x2))) -> c6(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(x0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(nil, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(first(x0, first(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(first(first(x0, from(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, 0), x2)) -> c6(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(x2)) MARK(first(first(x0, nil), x2)) -> c6(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(x2)) MARK(first(first(x0, s(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, cons(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(first(first(first(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(from(z0), x1), x2)) -> c6(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(0, x1), x2)) -> c6(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(nil, x1), x2)) -> c6(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(s(z0), x1), x2)) -> c6(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(cons(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(x0, x1), s(z0))) -> c6(MARK(s(z0))) MARK(first(first(x0, x1), x2)) -> c6(MARK(x2)) MARK(first(from(first(z0, z1)), x1)) -> c6(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(first(from(from(z0)), x1)) -> c6(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(first(from(0), x1)) -> c6(A__FIRST(a__from(0), mark(x1)), MARK(x1)) MARK(first(from(nil), x1)) -> c6(A__FIRST(a__from(nil), mark(x1)), MARK(x1)) MARK(first(from(s(z0)), x1)) -> c6(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(x1)) MARK(first(from(cons(z0, z1)), x1)) -> c6(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(first(from(x0), s(z0))) -> c6(MARK(s(z0))) MARK(first(from(x0), x1)) -> c6(MARK(x1)) MARK(first(s(first(z0, z1)), x1)) -> c6(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(first(s(from(z0)), x1)) -> c6(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(first(s(0), x1)) -> c6(A__FIRST(s(0), mark(x1)), MARK(x1)) MARK(first(s(nil), x1)) -> c6(A__FIRST(s(nil), mark(x1)), MARK(x1)) MARK(first(s(s(z0)), x1)) -> c6(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(x1)) MARK(first(s(cons(z0, z1)), x1)) -> c6(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(first(s(x0), s(z0))) -> c6(MARK(s(z0))) A__FIRST(s(z0), cons(from(y0), z2)) -> c1(MARK(from(y0))) A__FIRST(s(z0), cons(s(y0), z2)) -> c1(MARK(s(y0))) A__FIRST(s(z0), cons(cons(y0, y1), z2)) -> c1(MARK(cons(y0, y1))) A__FIRST(s(z0), cons(first(y0, 0), z2)) -> c1(MARK(first(y0, 0))) A__FIRST(s(z0), cons(first(y0, nil), z2)) -> c1(MARK(first(y0, nil))) A__FIRST(s(z0), cons(first(y0, s(y1)), z2)) -> c1(MARK(first(y0, s(y1)))) A__FIRST(s(z0), cons(first(cons(y0, y1), y2), z2)) -> c1(MARK(first(cons(y0, y1), y2))) A__FIRST(s(z0), cons(first(0, y0), z2)) -> c1(MARK(first(0, y0))) A__FIRST(s(z0), cons(first(nil, y0), z2)) -> c1(MARK(first(nil, y0))) A__FIRST(s(z0), cons(first(y0, first(y1, first(y2, y3))), z2)) -> c1(MARK(first(y0, first(y1, first(y2, y3))))) A__FIRST(s(z0), cons(first(y0, first(y1, from(y2))), z2)) -> c1(MARK(first(y0, first(y1, from(y2))))) A__FIRST(s(z0), cons(first(y0, first(y1, 0)), z2)) -> c1(MARK(first(y0, first(y1, 0)))) A__FIRST(s(z0), cons(first(y0, first(y1, nil)), z2)) -> c1(MARK(first(y0, first(y1, nil)))) A__FIRST(s(z0), cons(first(y0, first(y1, s(y2))), z2)) -> c1(MARK(first(y0, first(y1, s(y2))))) A__FIRST(s(z0), cons(first(y0, first(y1, cons(y2, y3))), z2)) -> c1(MARK(first(y0, first(y1, cons(y2, y3))))) A__FIRST(s(z0), cons(first(y0, first(first(y1, y2), y3)), z2)) -> c1(MARK(first(y0, first(first(y1, y2), y3)))) A__FIRST(s(z0), cons(first(y0, first(from(y1), y2)), z2)) -> c1(MARK(first(y0, first(from(y1), y2)))) A__FIRST(s(z0), cons(first(y0, first(0, y1)), z2)) -> c1(MARK(first(y0, first(0, y1)))) A__FIRST(s(z0), cons(first(y0, first(nil, y1)), z2)) -> c1(MARK(first(y0, first(nil, y1)))) A__FIRST(s(z0), cons(first(y0, first(s(y1), y2)), z2)) -> c1(MARK(first(y0, first(s(y1), y2)))) A__FIRST(s(z0), cons(first(y0, first(cons(y1, y2), y3)), z2)) -> c1(MARK(first(y0, first(cons(y1, y2), y3)))) A__FIRST(s(z0), cons(first(first(y0, y1), first(y2, y3)), z2)) -> c1(MARK(first(first(y0, y1), first(y2, y3)))) A__FIRST(s(z0), cons(first(from(y0), first(y1, y2)), z2)) -> c1(MARK(first(from(y0), first(y1, y2)))) A__FIRST(s(z0), cons(first(s(y0), first(y1, y2)), z2)) -> c1(MARK(first(s(y0), first(y1, y2)))) A__FIRST(s(z0), cons(first(y0, first(y1, y2)), z2)) -> c1(MARK(first(y0, first(y1, y2)))) A__FIRST(s(z0), cons(first(cons(y0, y1), first(y2, y3)), z2)) -> c1(MARK(first(cons(y0, y1), first(y2, y3)))) A__FIRST(s(z0), cons(first(y0, from(y1)), z2)) -> c1(MARK(first(y0, from(y1)))) A__FIRST(s(z0), cons(first(y0, from(first(y1, y2))), z2)) -> c1(MARK(first(y0, from(first(y1, y2))))) A__FIRST(s(z0), cons(first(y0, from(from(y1))), z2)) -> c1(MARK(first(y0, from(from(y1))))) A__FIRST(s(z0), cons(first(y0, from(0)), z2)) -> c1(MARK(first(y0, from(0)))) A__FIRST(s(z0), cons(first(y0, from(nil)), z2)) -> c1(MARK(first(y0, from(nil)))) A__FIRST(s(z0), cons(first(y0, from(s(y1))), z2)) -> c1(MARK(first(y0, from(s(y1))))) A__FIRST(s(z0), cons(first(y0, from(cons(y1, y2))), z2)) -> c1(MARK(first(y0, from(cons(y1, y2))))) A__FIRST(s(z0), cons(first(first(y0, y1), from(y2)), z2)) -> c1(MARK(first(first(y0, y1), from(y2)))) A__FIRST(s(z0), cons(first(from(y0), from(y1)), z2)) -> c1(MARK(first(from(y0), from(y1)))) A__FIRST(s(z0), cons(first(s(y0), from(y1)), z2)) -> c1(MARK(first(s(y0), from(y1)))) A__FIRST(s(z0), cons(first(cons(y0, y1), from(y2)), z2)) -> c1(MARK(first(cons(y0, y1), from(y2)))) A__FIRST(s(z0), cons(first(y0, cons(first(y1, y2), y3)), z2)) -> c1(MARK(first(y0, cons(first(y1, y2), y3)))) A__FIRST(s(z0), cons(first(y0, cons(from(y1), y2)), z2)) -> c1(MARK(first(y0, cons(from(y1), y2)))) A__FIRST(s(z0), cons(first(y0, cons(0, y1)), z2)) -> c1(MARK(first(y0, cons(0, y1)))) A__FIRST(s(z0), cons(first(y0, cons(nil, y1)), z2)) -> c1(MARK(first(y0, cons(nil, y1)))) A__FIRST(s(z0), cons(first(y0, cons(s(y1), y2)), z2)) -> c1(MARK(first(y0, cons(s(y1), y2)))) A__FIRST(s(z0), cons(first(y0, cons(cons(y1, y2), y3)), z2)) -> c1(MARK(first(y0, cons(cons(y1, y2), y3)))) A__FIRST(s(z0), cons(first(first(y0, y1), cons(y2, y3)), z2)) -> c1(MARK(first(first(y0, y1), cons(y2, y3)))) A__FIRST(s(z0), cons(first(from(y0), cons(y1, y2)), z2)) -> c1(MARK(first(from(y0), cons(y1, y2)))) A__FIRST(s(z0), cons(first(s(y0), cons(y1, y2)), z2)) -> c1(MARK(first(s(y0), cons(y1, y2)))) A__FIRST(s(z0), cons(first(cons(y0, y1), cons(y2, y3)), z2)) -> c1(MARK(first(cons(y0, y1), cons(y2, y3)))) A__FIRST(s(z0), cons(first(first(y0, first(y1, y2)), y3), z2)) -> c1(MARK(first(first(y0, first(y1, y2)), y3))) A__FIRST(s(z0), cons(first(first(y0, from(y1)), y2), z2)) -> c1(MARK(first(first(y0, from(y1)), y2))) A__FIRST(s(z0), cons(first(first(y0, 0), y1), z2)) -> c1(MARK(first(first(y0, 0), y1))) A__FIRST(s(z0), cons(first(first(y0, nil), y1), z2)) -> c1(MARK(first(first(y0, nil), y1))) A__FIRST(s(z0), cons(first(first(y0, s(y1)), y2), z2)) -> c1(MARK(first(first(y0, s(y1)), y2))) A__FIRST(s(z0), cons(first(first(y0, cons(y1, y2)), y3), z2)) -> c1(MARK(first(first(y0, cons(y1, y2)), y3))) A__FIRST(s(z0), cons(first(first(first(y0, y1), y2), y3), z2)) -> c1(MARK(first(first(first(y0, y1), y2), y3))) A__FIRST(s(z0), cons(first(first(from(y0), y1), y2), z2)) -> c1(MARK(first(first(from(y0), y1), y2))) A__FIRST(s(z0), cons(first(first(0, y0), y1), z2)) -> c1(MARK(first(first(0, y0), y1))) A__FIRST(s(z0), cons(first(first(nil, y0), y1), z2)) -> c1(MARK(first(first(nil, y0), y1))) A__FIRST(s(z0), cons(first(first(s(y0), y1), y2), z2)) -> c1(MARK(first(first(s(y0), y1), y2))) A__FIRST(s(z0), cons(first(first(cons(y0, y1), y2), y3), z2)) -> c1(MARK(first(first(cons(y0, y1), y2), y3))) A__FIRST(s(z0), cons(first(first(y0, y1), 0), z2)) -> c1(MARK(first(first(y0, y1), 0))) A__FIRST(s(z0), cons(first(first(y0, y1), nil), z2)) -> c1(MARK(first(first(y0, y1), nil))) A__FIRST(s(z0), cons(first(first(y0, y1), s(y2)), z2)) -> c1(MARK(first(first(y0, y1), s(y2)))) A__FIRST(s(z0), cons(first(first(y0, y1), y2), z2)) -> c1(MARK(first(first(y0, y1), y2))) A__FIRST(s(z0), cons(first(from(first(y0, y1)), y2), z2)) -> c1(MARK(first(from(first(y0, y1)), y2))) A__FIRST(s(z0), cons(first(from(from(y0)), y1), z2)) -> c1(MARK(first(from(from(y0)), y1))) A__FIRST(s(z0), cons(first(from(0), y0), z2)) -> c1(MARK(first(from(0), y0))) A__FIRST(s(z0), cons(first(from(nil), y0), z2)) -> c1(MARK(first(from(nil), y0))) A__FIRST(s(z0), cons(first(from(s(y0)), y1), z2)) -> c1(MARK(first(from(s(y0)), y1))) A__FIRST(s(z0), cons(first(from(cons(y0, y1)), y2), z2)) -> c1(MARK(first(from(cons(y0, y1)), y2))) A__FIRST(s(z0), cons(first(from(y0), y1), z2)) -> c1(MARK(first(from(y0), y1))) A__FIRST(s(z0), cons(first(from(y0), 0), z2)) -> c1(MARK(first(from(y0), 0))) A__FIRST(s(z0), cons(first(from(y0), nil), z2)) -> c1(MARK(first(from(y0), nil))) A__FIRST(s(z0), cons(first(from(y0), s(y1)), z2)) -> c1(MARK(first(from(y0), s(y1)))) A__FIRST(s(z0), cons(first(s(first(y0, y1)), y2), z2)) -> c1(MARK(first(s(first(y0, y1)), y2))) A__FIRST(s(z0), cons(first(s(from(y0)), y1), z2)) -> c1(MARK(first(s(from(y0)), y1))) A__FIRST(s(z0), cons(first(s(0), y0), z2)) -> c1(MARK(first(s(0), y0))) A__FIRST(s(z0), cons(first(s(nil), y0), z2)) -> c1(MARK(first(s(nil), y0))) A__FIRST(s(z0), cons(first(s(s(y0)), y1), z2)) -> c1(MARK(first(s(s(y0)), y1))) A__FIRST(s(z0), cons(first(s(cons(y0, y1)), y2), z2)) -> c1(MARK(first(s(cons(y0, y1)), y2))) A__FIRST(s(z0), cons(first(s(y0), y1), z2)) -> c1(MARK(first(s(y0), y1))) A__FIRST(s(z0), cons(first(s(y0), 0), z2)) -> c1(MARK(first(s(y0), 0))) A__FIRST(s(z0), cons(first(s(y0), nil), z2)) -> c1(MARK(first(s(y0), nil))) A__FIRST(s(z0), cons(first(s(y0), s(y1)), z2)) -> c1(MARK(first(s(y0), s(y1)))) A__FIRST(s(z0), cons(first(0, first(y0, y1)), z2)) -> c1(MARK(first(0, first(y0, y1)))) A__FIRST(s(z0), cons(first(nil, first(y0, y1)), z2)) -> c1(MARK(first(nil, first(y0, y1)))) A__FIRST(s(z0), cons(first(0, from(y0)), z2)) -> c1(MARK(first(0, from(y0)))) A__FIRST(s(z0), cons(first(nil, from(y0)), z2)) -> c1(MARK(first(nil, from(y0)))) A__FIRST(s(z0), cons(first(y0, cons(y1, y2)), z2)) -> c1(MARK(first(y0, cons(y1, y2)))) A__FIRST(s(z0), cons(first(0, cons(y0, y1)), z2)) -> c1(MARK(first(0, cons(y0, y1)))) A__FIRST(s(z0), cons(first(nil, cons(y0, y1)), z2)) -> c1(MARK(first(nil, cons(y0, y1)))) MARK(first(x0, cons(0, x2))) -> c5(MARK(x0)) MARK(first(x0, cons(nil, x2))) -> c5(MARK(x0)) MARK(first(x0, cons(0, x2))) -> c6(MARK(cons(0, x2))) MARK(first(x0, cons(nil, x2))) -> c6(MARK(cons(nil, x2))) S tuples: A__FROM(z0) -> c3(MARK(z0)) MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(x0, from(x1))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), from(x1))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(first(x0, cons(from(z0), x2))) -> c5(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(s(z0), x2))) -> c5(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(first(first(z0, z1), cons(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(first(z0, z1))) MARK(first(from(z0), cons(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(first(s(z0), cons(x1, x2))) -> c5(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(s(z0))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(first(x0, first(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(first(x0, first(z0, z1)))) MARK(first(first(x0, from(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(first(x0, from(z0)))) MARK(first(first(x0, 0), x2)) -> c5(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(first(x0, 0))) MARK(first(first(x0, nil), x2)) -> c5(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(first(x0, nil))) MARK(first(first(x0, s(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(first(x0, s(z0)))) MARK(first(first(x0, cons(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(first(x0, cons(z0, z1)))) MARK(first(first(first(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(first(first(z0, z1), x1))) MARK(first(first(from(z0), x1), x2)) -> c5(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(first(from(z0), x1))) MARK(first(first(0, x1), x2)) -> c5(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(first(0, x1))) MARK(first(first(nil, x1), x2)) -> c5(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(first(nil, x1))) MARK(first(first(s(z0), x1), x2)) -> c5(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(first(s(z0), x1))) MARK(first(first(cons(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(first(cons(z0, z1), x1))) MARK(first(first(x0, x1), 0)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), nil)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), s(z0))) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), x2)) -> c5(MARK(first(x0, x1))) MARK(first(from(first(z0, z1)), x1)) -> c5(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(from(first(z0, z1)))) MARK(first(from(from(z0)), x1)) -> c5(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(first(from(0), x1)) -> c5(A__FIRST(a__from(0), mark(x1)), MARK(from(0))) MARK(first(from(nil), x1)) -> c5(A__FIRST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(first(from(s(z0)), x1)) -> c5(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(from(s(z0)))) MARK(first(from(cons(z0, z1)), x1)) -> c5(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(first(from(x0), x1)) -> c5(MARK(from(x0))) MARK(first(from(x0), 0)) -> c5(MARK(from(x0))) MARK(first(from(x0), nil)) -> c5(MARK(from(x0))) MARK(first(from(x0), s(z0))) -> c5(MARK(from(x0))) MARK(first(s(first(z0, z1)), x1)) -> c5(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(s(first(z0, z1)))) MARK(first(s(from(z0)), x1)) -> c5(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(s(from(z0)))) MARK(first(s(0), x1)) -> c5(A__FIRST(s(0), mark(x1)), MARK(s(0))) MARK(first(s(nil), x1)) -> c5(A__FIRST(s(nil), mark(x1)), MARK(s(nil))) MARK(first(s(s(z0)), x1)) -> c5(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(s(s(z0)))) MARK(first(s(cons(z0, z1)), x1)) -> c5(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(s(cons(z0, z1)))) MARK(first(s(x0), x1)) -> c5(MARK(s(x0))) MARK(first(s(x0), 0)) -> c5(MARK(s(x0))) MARK(first(s(x0), nil)) -> c5(MARK(s(x0))) MARK(first(s(x0), s(z0))) -> c5(MARK(s(x0))) MARK(first(x0, first(x1, first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(first(x1, first(z0, z1)))) MARK(first(x0, first(x1, from(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(first(x1, from(z0)))) MARK(first(x0, first(x1, 0))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(first(x1, 0))) MARK(first(x0, first(x1, nil))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(first(x1, nil))) MARK(first(x0, first(x1, s(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(first(x1, s(z0)))) MARK(first(x0, first(x1, cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(first(x1, cons(z0, z1)))) MARK(first(x0, first(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(first(first(z0, z1), x2))) MARK(first(x0, first(from(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(first(from(z0), x2))) MARK(first(x0, first(0, x2))) -> c6(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(first(0, x2))) MARK(first(x0, first(nil, x2))) -> c6(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(first(nil, x2))) MARK(first(x0, first(s(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(first(s(z0), x2))) MARK(first(x0, first(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(first(cons(z0, z1), x2))) MARK(first(first(z0, z1), first(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(from(z0), first(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(s(z0), first(x1, x2))) -> c6(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(x0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(nil, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(cons(z0, z1), first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(x0, from(x1))) -> c6(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(first(x0, from(first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(from(first(z0, z1)))) MARK(first(x0, from(from(z0)))) -> c6(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(first(x0, from(0))) -> c6(A__FIRST(mark(x0), a__from(0)), MARK(from(0))) MARK(first(x0, from(nil))) -> c6(A__FIRST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(first(x0, from(s(z0)))) -> c6(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(from(s(z0)))) MARK(first(x0, from(cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(first(first(z0, z1), from(x1))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(first(from(z0), from(x1))) -> c6(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(s(z0), from(x1))) -> c6(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(x0, from(x1))) -> c6(MARK(from(x1))) MARK(first(0, from(x1))) -> c6(MARK(from(x1))) MARK(first(nil, from(x1))) -> c6(MARK(from(x1))) MARK(first(cons(z0, z1), from(x1))) -> c6(MARK(from(x1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(cons(first(z0, z1), x2))) MARK(first(x0, cons(from(z0), x2))) -> c6(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(first(x0, cons(s(z0), x2))) -> c6(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(cons(s(z0), x2))) MARK(first(x0, cons(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(first(first(z0, z1), cons(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(from(z0), cons(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(s(z0), cons(x1, x2))) -> c6(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(x0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(nil, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(first(x0, first(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(first(first(x0, from(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, 0), x2)) -> c6(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(x2)) MARK(first(first(x0, nil), x2)) -> c6(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(x2)) MARK(first(first(x0, s(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, cons(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(first(first(first(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(from(z0), x1), x2)) -> c6(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(0, x1), x2)) -> c6(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(nil, x1), x2)) -> c6(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(s(z0), x1), x2)) -> c6(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(cons(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(x0, x1), s(z0))) -> c6(MARK(s(z0))) MARK(first(first(x0, x1), x2)) -> c6(MARK(x2)) MARK(first(from(first(z0, z1)), x1)) -> c6(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(first(from(from(z0)), x1)) -> c6(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(first(from(0), x1)) -> c6(A__FIRST(a__from(0), mark(x1)), MARK(x1)) MARK(first(from(nil), x1)) -> c6(A__FIRST(a__from(nil), mark(x1)), MARK(x1)) MARK(first(from(s(z0)), x1)) -> c6(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(x1)) MARK(first(from(cons(z0, z1)), x1)) -> c6(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(first(from(x0), s(z0))) -> c6(MARK(s(z0))) MARK(first(from(x0), x1)) -> c6(MARK(x1)) MARK(first(s(first(z0, z1)), x1)) -> c6(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(first(s(from(z0)), x1)) -> c6(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(first(s(0), x1)) -> c6(A__FIRST(s(0), mark(x1)), MARK(x1)) MARK(first(s(nil), x1)) -> c6(A__FIRST(s(nil), mark(x1)), MARK(x1)) MARK(first(s(s(z0)), x1)) -> c6(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(x1)) MARK(first(s(cons(z0, z1)), x1)) -> c6(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(first(s(x0), s(z0))) -> c6(MARK(s(z0))) A__FIRST(s(z0), cons(from(y0), z2)) -> c1(MARK(from(y0))) A__FIRST(s(z0), cons(s(y0), z2)) -> c1(MARK(s(y0))) A__FIRST(s(z0), cons(cons(y0, y1), z2)) -> c1(MARK(cons(y0, y1))) A__FIRST(s(z0), cons(first(y0, 0), z2)) -> c1(MARK(first(y0, 0))) A__FIRST(s(z0), cons(first(y0, nil), z2)) -> c1(MARK(first(y0, nil))) A__FIRST(s(z0), cons(first(y0, s(y1)), z2)) -> c1(MARK(first(y0, s(y1)))) A__FIRST(s(z0), cons(first(cons(y0, y1), y2), z2)) -> c1(MARK(first(cons(y0, y1), y2))) A__FIRST(s(z0), cons(first(0, y0), z2)) -> c1(MARK(first(0, y0))) A__FIRST(s(z0), cons(first(nil, y0), z2)) -> c1(MARK(first(nil, y0))) A__FIRST(s(z0), cons(first(y0, first(y1, first(y2, y3))), z2)) -> c1(MARK(first(y0, first(y1, first(y2, y3))))) A__FIRST(s(z0), cons(first(y0, first(y1, from(y2))), z2)) -> c1(MARK(first(y0, first(y1, from(y2))))) A__FIRST(s(z0), cons(first(y0, first(y1, 0)), z2)) -> c1(MARK(first(y0, first(y1, 0)))) A__FIRST(s(z0), cons(first(y0, first(y1, nil)), z2)) -> c1(MARK(first(y0, first(y1, nil)))) A__FIRST(s(z0), cons(first(y0, first(y1, s(y2))), z2)) -> c1(MARK(first(y0, first(y1, s(y2))))) A__FIRST(s(z0), cons(first(y0, first(y1, cons(y2, y3))), z2)) -> c1(MARK(first(y0, first(y1, cons(y2, y3))))) A__FIRST(s(z0), cons(first(y0, first(first(y1, y2), y3)), z2)) -> c1(MARK(first(y0, first(first(y1, y2), y3)))) A__FIRST(s(z0), cons(first(y0, first(from(y1), y2)), z2)) -> c1(MARK(first(y0, first(from(y1), y2)))) A__FIRST(s(z0), cons(first(y0, first(0, y1)), z2)) -> c1(MARK(first(y0, first(0, y1)))) A__FIRST(s(z0), cons(first(y0, first(nil, y1)), z2)) -> c1(MARK(first(y0, first(nil, y1)))) A__FIRST(s(z0), cons(first(y0, first(s(y1), y2)), z2)) -> c1(MARK(first(y0, first(s(y1), y2)))) A__FIRST(s(z0), cons(first(y0, first(cons(y1, y2), y3)), z2)) -> c1(MARK(first(y0, first(cons(y1, y2), y3)))) A__FIRST(s(z0), cons(first(first(y0, y1), first(y2, y3)), z2)) -> c1(MARK(first(first(y0, y1), first(y2, y3)))) A__FIRST(s(z0), cons(first(from(y0), first(y1, y2)), z2)) -> c1(MARK(first(from(y0), first(y1, y2)))) A__FIRST(s(z0), cons(first(s(y0), first(y1, y2)), z2)) -> c1(MARK(first(s(y0), first(y1, y2)))) A__FIRST(s(z0), cons(first(y0, first(y1, y2)), z2)) -> c1(MARK(first(y0, first(y1, y2)))) A__FIRST(s(z0), cons(first(cons(y0, y1), first(y2, y3)), z2)) -> c1(MARK(first(cons(y0, y1), first(y2, y3)))) A__FIRST(s(z0), cons(first(y0, from(y1)), z2)) -> c1(MARK(first(y0, from(y1)))) A__FIRST(s(z0), cons(first(y0, from(first(y1, y2))), z2)) -> c1(MARK(first(y0, from(first(y1, y2))))) A__FIRST(s(z0), cons(first(y0, from(from(y1))), z2)) -> c1(MARK(first(y0, from(from(y1))))) A__FIRST(s(z0), cons(first(y0, from(0)), z2)) -> c1(MARK(first(y0, from(0)))) A__FIRST(s(z0), cons(first(y0, from(nil)), z2)) -> c1(MARK(first(y0, from(nil)))) A__FIRST(s(z0), cons(first(y0, from(s(y1))), z2)) -> c1(MARK(first(y0, from(s(y1))))) A__FIRST(s(z0), cons(first(y0, from(cons(y1, y2))), z2)) -> c1(MARK(first(y0, from(cons(y1, y2))))) A__FIRST(s(z0), cons(first(first(y0, y1), from(y2)), z2)) -> c1(MARK(first(first(y0, y1), from(y2)))) A__FIRST(s(z0), cons(first(from(y0), from(y1)), z2)) -> c1(MARK(first(from(y0), from(y1)))) A__FIRST(s(z0), cons(first(s(y0), from(y1)), z2)) -> c1(MARK(first(s(y0), from(y1)))) A__FIRST(s(z0), cons(first(cons(y0, y1), from(y2)), z2)) -> c1(MARK(first(cons(y0, y1), from(y2)))) A__FIRST(s(z0), cons(first(y0, cons(first(y1, y2), y3)), z2)) -> c1(MARK(first(y0, cons(first(y1, y2), y3)))) A__FIRST(s(z0), cons(first(y0, cons(from(y1), y2)), z2)) -> c1(MARK(first(y0, cons(from(y1), y2)))) A__FIRST(s(z0), cons(first(y0, cons(0, y1)), z2)) -> c1(MARK(first(y0, cons(0, y1)))) A__FIRST(s(z0), cons(first(y0, cons(nil, y1)), z2)) -> c1(MARK(first(y0, cons(nil, y1)))) A__FIRST(s(z0), cons(first(y0, cons(s(y1), y2)), z2)) -> c1(MARK(first(y0, cons(s(y1), y2)))) A__FIRST(s(z0), cons(first(y0, cons(cons(y1, y2), y3)), z2)) -> c1(MARK(first(y0, cons(cons(y1, y2), y3)))) A__FIRST(s(z0), cons(first(first(y0, y1), cons(y2, y3)), z2)) -> c1(MARK(first(first(y0, y1), cons(y2, y3)))) A__FIRST(s(z0), cons(first(from(y0), cons(y1, y2)), z2)) -> c1(MARK(first(from(y0), cons(y1, y2)))) A__FIRST(s(z0), cons(first(s(y0), cons(y1, y2)), z2)) -> c1(MARK(first(s(y0), cons(y1, y2)))) A__FIRST(s(z0), cons(first(cons(y0, y1), cons(y2, y3)), z2)) -> c1(MARK(first(cons(y0, y1), cons(y2, y3)))) A__FIRST(s(z0), cons(first(first(y0, first(y1, y2)), y3), z2)) -> c1(MARK(first(first(y0, first(y1, y2)), y3))) A__FIRST(s(z0), cons(first(first(y0, from(y1)), y2), z2)) -> c1(MARK(first(first(y0, from(y1)), y2))) A__FIRST(s(z0), cons(first(first(y0, 0), y1), z2)) -> c1(MARK(first(first(y0, 0), y1))) A__FIRST(s(z0), cons(first(first(y0, nil), y1), z2)) -> c1(MARK(first(first(y0, nil), y1))) A__FIRST(s(z0), cons(first(first(y0, s(y1)), y2), z2)) -> c1(MARK(first(first(y0, s(y1)), y2))) A__FIRST(s(z0), cons(first(first(y0, cons(y1, y2)), y3), z2)) -> c1(MARK(first(first(y0, cons(y1, y2)), y3))) A__FIRST(s(z0), cons(first(first(first(y0, y1), y2), y3), z2)) -> c1(MARK(first(first(first(y0, y1), y2), y3))) A__FIRST(s(z0), cons(first(first(from(y0), y1), y2), z2)) -> c1(MARK(first(first(from(y0), y1), y2))) A__FIRST(s(z0), cons(first(first(0, y0), y1), z2)) -> c1(MARK(first(first(0, y0), y1))) A__FIRST(s(z0), cons(first(first(nil, y0), y1), z2)) -> c1(MARK(first(first(nil, y0), y1))) A__FIRST(s(z0), cons(first(first(s(y0), y1), y2), z2)) -> c1(MARK(first(first(s(y0), y1), y2))) A__FIRST(s(z0), cons(first(first(cons(y0, y1), y2), y3), z2)) -> c1(MARK(first(first(cons(y0, y1), y2), y3))) A__FIRST(s(z0), cons(first(first(y0, y1), 0), z2)) -> c1(MARK(first(first(y0, y1), 0))) A__FIRST(s(z0), cons(first(first(y0, y1), nil), z2)) -> c1(MARK(first(first(y0, y1), nil))) A__FIRST(s(z0), cons(first(first(y0, y1), s(y2)), z2)) -> c1(MARK(first(first(y0, y1), s(y2)))) A__FIRST(s(z0), cons(first(first(y0, y1), y2), z2)) -> c1(MARK(first(first(y0, y1), y2))) A__FIRST(s(z0), cons(first(from(first(y0, y1)), y2), z2)) -> c1(MARK(first(from(first(y0, y1)), y2))) A__FIRST(s(z0), cons(first(from(from(y0)), y1), z2)) -> c1(MARK(first(from(from(y0)), y1))) A__FIRST(s(z0), cons(first(from(0), y0), z2)) -> c1(MARK(first(from(0), y0))) A__FIRST(s(z0), cons(first(from(nil), y0), z2)) -> c1(MARK(first(from(nil), y0))) A__FIRST(s(z0), cons(first(from(s(y0)), y1), z2)) -> c1(MARK(first(from(s(y0)), y1))) A__FIRST(s(z0), cons(first(from(cons(y0, y1)), y2), z2)) -> c1(MARK(first(from(cons(y0, y1)), y2))) A__FIRST(s(z0), cons(first(from(y0), y1), z2)) -> c1(MARK(first(from(y0), y1))) A__FIRST(s(z0), cons(first(from(y0), 0), z2)) -> c1(MARK(first(from(y0), 0))) A__FIRST(s(z0), cons(first(from(y0), nil), z2)) -> c1(MARK(first(from(y0), nil))) A__FIRST(s(z0), cons(first(from(y0), s(y1)), z2)) -> c1(MARK(first(from(y0), s(y1)))) A__FIRST(s(z0), cons(first(s(first(y0, y1)), y2), z2)) -> c1(MARK(first(s(first(y0, y1)), y2))) A__FIRST(s(z0), cons(first(s(from(y0)), y1), z2)) -> c1(MARK(first(s(from(y0)), y1))) A__FIRST(s(z0), cons(first(s(0), y0), z2)) -> c1(MARK(first(s(0), y0))) A__FIRST(s(z0), cons(first(s(nil), y0), z2)) -> c1(MARK(first(s(nil), y0))) A__FIRST(s(z0), cons(first(s(s(y0)), y1), z2)) -> c1(MARK(first(s(s(y0)), y1))) A__FIRST(s(z0), cons(first(s(cons(y0, y1)), y2), z2)) -> c1(MARK(first(s(cons(y0, y1)), y2))) A__FIRST(s(z0), cons(first(s(y0), y1), z2)) -> c1(MARK(first(s(y0), y1))) A__FIRST(s(z0), cons(first(s(y0), 0), z2)) -> c1(MARK(first(s(y0), 0))) A__FIRST(s(z0), cons(first(s(y0), nil), z2)) -> c1(MARK(first(s(y0), nil))) A__FIRST(s(z0), cons(first(s(y0), s(y1)), z2)) -> c1(MARK(first(s(y0), s(y1)))) A__FIRST(s(z0), cons(first(0, first(y0, y1)), z2)) -> c1(MARK(first(0, first(y0, y1)))) A__FIRST(s(z0), cons(first(nil, first(y0, y1)), z2)) -> c1(MARK(first(nil, first(y0, y1)))) A__FIRST(s(z0), cons(first(0, from(y0)), z2)) -> c1(MARK(first(0, from(y0)))) A__FIRST(s(z0), cons(first(nil, from(y0)), z2)) -> c1(MARK(first(nil, from(y0)))) A__FIRST(s(z0), cons(first(y0, cons(y1, y2)), z2)) -> c1(MARK(first(y0, cons(y1, y2)))) A__FIRST(s(z0), cons(first(0, cons(y0, y1)), z2)) -> c1(MARK(first(0, cons(y0, y1)))) A__FIRST(s(z0), cons(first(nil, cons(y0, y1)), z2)) -> c1(MARK(first(nil, cons(y0, y1)))) MARK(first(x0, cons(0, x2))) -> c5(MARK(x0)) MARK(first(x0, cons(nil, x2))) -> c5(MARK(x0)) MARK(first(x0, cons(0, x2))) -> c6(MARK(cons(0, x2))) MARK(first(x0, cons(nil, x2))) -> c6(MARK(cons(nil, x2))) K tuples:none Defined Rule Symbols: a__first_2, a__from_1, mark_1 Defined Pair Symbols: A__FROM_1, MARK_1, A__FIRST_2 Compound Symbols: c3_1, c7_2, c10_1, c11_1, c5_1, c6_1, c5_2, c6_2, c1_1 ---------------------------------------- (139) CdtForwardInstantiationProof (BOTH BOUNDS(ID, ID)) Use forward instantiation to replace A__FROM(z0) -> c3(MARK(z0)) by A__FROM(from(y0)) -> c3(MARK(from(y0))) A__FROM(s(y0)) -> c3(MARK(s(y0))) A__FROM(cons(y0, y1)) -> c3(MARK(cons(y0, y1))) A__FROM(first(y0, 0)) -> c3(MARK(first(y0, 0))) A__FROM(first(y0, nil)) -> c3(MARK(first(y0, nil))) A__FROM(first(y0, s(y1))) -> c3(MARK(first(y0, s(y1)))) A__FROM(first(cons(y0, y1), y2)) -> c3(MARK(first(cons(y0, y1), y2))) A__FROM(first(0, y0)) -> c3(MARK(first(0, y0))) A__FROM(first(nil, y0)) -> c3(MARK(first(nil, y0))) A__FROM(first(y0, first(y1, first(y2, y3)))) -> c3(MARK(first(y0, first(y1, first(y2, y3))))) A__FROM(first(y0, first(y1, from(y2)))) -> c3(MARK(first(y0, first(y1, from(y2))))) A__FROM(first(y0, first(y1, 0))) -> c3(MARK(first(y0, first(y1, 0)))) A__FROM(first(y0, first(y1, nil))) -> c3(MARK(first(y0, first(y1, nil)))) A__FROM(first(y0, first(y1, s(y2)))) -> c3(MARK(first(y0, first(y1, s(y2))))) A__FROM(first(y0, first(y1, cons(y2, y3)))) -> c3(MARK(first(y0, first(y1, cons(y2, y3))))) A__FROM(first(y0, first(first(y1, y2), y3))) -> c3(MARK(first(y0, first(first(y1, y2), y3)))) A__FROM(first(y0, first(from(y1), y2))) -> c3(MARK(first(y0, first(from(y1), y2)))) A__FROM(first(y0, first(0, y1))) -> c3(MARK(first(y0, first(0, y1)))) A__FROM(first(y0, first(nil, y1))) -> c3(MARK(first(y0, first(nil, y1)))) A__FROM(first(y0, first(s(y1), y2))) -> c3(MARK(first(y0, first(s(y1), y2)))) A__FROM(first(y0, first(cons(y1, y2), y3))) -> c3(MARK(first(y0, first(cons(y1, y2), y3)))) A__FROM(first(first(y0, y1), first(y2, y3))) -> c3(MARK(first(first(y0, y1), first(y2, y3)))) A__FROM(first(from(y0), first(y1, y2))) -> c3(MARK(first(from(y0), first(y1, y2)))) A__FROM(first(s(y0), first(y1, y2))) -> c3(MARK(first(s(y0), first(y1, y2)))) A__FROM(first(y0, first(y1, y2))) -> c3(MARK(first(y0, first(y1, y2)))) A__FROM(first(cons(y0, y1), first(y2, y3))) -> c3(MARK(first(cons(y0, y1), first(y2, y3)))) A__FROM(first(y0, from(y1))) -> c3(MARK(first(y0, from(y1)))) A__FROM(first(y0, from(first(y1, y2)))) -> c3(MARK(first(y0, from(first(y1, y2))))) A__FROM(first(y0, from(from(y1)))) -> c3(MARK(first(y0, from(from(y1))))) A__FROM(first(y0, from(0))) -> c3(MARK(first(y0, from(0)))) A__FROM(first(y0, from(nil))) -> c3(MARK(first(y0, from(nil)))) A__FROM(first(y0, from(s(y1)))) -> c3(MARK(first(y0, from(s(y1))))) A__FROM(first(y0, from(cons(y1, y2)))) -> c3(MARK(first(y0, from(cons(y1, y2))))) A__FROM(first(first(y0, y1), from(y2))) -> c3(MARK(first(first(y0, y1), from(y2)))) A__FROM(first(from(y0), from(y1))) -> c3(MARK(first(from(y0), from(y1)))) A__FROM(first(s(y0), from(y1))) -> c3(MARK(first(s(y0), from(y1)))) A__FROM(first(cons(y0, y1), from(y2))) -> c3(MARK(first(cons(y0, y1), from(y2)))) A__FROM(first(y0, cons(first(y1, y2), y3))) -> c3(MARK(first(y0, cons(first(y1, y2), y3)))) A__FROM(first(y0, cons(from(y1), y2))) -> c3(MARK(first(y0, cons(from(y1), y2)))) A__FROM(first(y0, cons(s(y1), y2))) -> c3(MARK(first(y0, cons(s(y1), y2)))) A__FROM(first(y0, cons(cons(y1, y2), y3))) -> c3(MARK(first(y0, cons(cons(y1, y2), y3)))) A__FROM(first(first(y0, y1), cons(y2, y3))) -> c3(MARK(first(first(y0, y1), cons(y2, y3)))) A__FROM(first(from(y0), cons(y1, y2))) -> c3(MARK(first(from(y0), cons(y1, y2)))) A__FROM(first(s(y0), cons(y1, y2))) -> c3(MARK(first(s(y0), cons(y1, y2)))) A__FROM(first(cons(y0, y1), cons(y2, y3))) -> c3(MARK(first(cons(y0, y1), cons(y2, y3)))) A__FROM(first(first(y0, first(y1, y2)), y3)) -> c3(MARK(first(first(y0, first(y1, y2)), y3))) A__FROM(first(first(y0, from(y1)), y2)) -> c3(MARK(first(first(y0, from(y1)), y2))) A__FROM(first(first(y0, 0), y1)) -> c3(MARK(first(first(y0, 0), y1))) A__FROM(first(first(y0, nil), y1)) -> c3(MARK(first(first(y0, nil), y1))) A__FROM(first(first(y0, s(y1)), y2)) -> c3(MARK(first(first(y0, s(y1)), y2))) A__FROM(first(first(y0, cons(y1, y2)), y3)) -> c3(MARK(first(first(y0, cons(y1, y2)), y3))) A__FROM(first(first(first(y0, y1), y2), y3)) -> c3(MARK(first(first(first(y0, y1), y2), y3))) A__FROM(first(first(from(y0), y1), y2)) -> c3(MARK(first(first(from(y0), y1), y2))) A__FROM(first(first(0, y0), y1)) -> c3(MARK(first(first(0, y0), y1))) A__FROM(first(first(nil, y0), y1)) -> c3(MARK(first(first(nil, y0), y1))) A__FROM(first(first(s(y0), y1), y2)) -> c3(MARK(first(first(s(y0), y1), y2))) A__FROM(first(first(cons(y0, y1), y2), y3)) -> c3(MARK(first(first(cons(y0, y1), y2), y3))) A__FROM(first(first(y0, y1), 0)) -> c3(MARK(first(first(y0, y1), 0))) A__FROM(first(first(y0, y1), nil)) -> c3(MARK(first(first(y0, y1), nil))) A__FROM(first(first(y0, y1), s(y2))) -> c3(MARK(first(first(y0, y1), s(y2)))) A__FROM(first(first(y0, y1), y2)) -> c3(MARK(first(first(y0, y1), y2))) A__FROM(first(from(first(y0, y1)), y2)) -> c3(MARK(first(from(first(y0, y1)), y2))) A__FROM(first(from(from(y0)), y1)) -> c3(MARK(first(from(from(y0)), y1))) A__FROM(first(from(0), y0)) -> c3(MARK(first(from(0), y0))) A__FROM(first(from(nil), y0)) -> c3(MARK(first(from(nil), y0))) A__FROM(first(from(s(y0)), y1)) -> c3(MARK(first(from(s(y0)), y1))) A__FROM(first(from(cons(y0, y1)), y2)) -> c3(MARK(first(from(cons(y0, y1)), y2))) A__FROM(first(from(y0), y1)) -> c3(MARK(first(from(y0), y1))) A__FROM(first(from(y0), 0)) -> c3(MARK(first(from(y0), 0))) A__FROM(first(from(y0), nil)) -> c3(MARK(first(from(y0), nil))) A__FROM(first(from(y0), s(y1))) -> c3(MARK(first(from(y0), s(y1)))) A__FROM(first(s(first(y0, y1)), y2)) -> c3(MARK(first(s(first(y0, y1)), y2))) A__FROM(first(s(from(y0)), y1)) -> c3(MARK(first(s(from(y0)), y1))) A__FROM(first(s(0), y0)) -> c3(MARK(first(s(0), y0))) A__FROM(first(s(nil), y0)) -> c3(MARK(first(s(nil), y0))) A__FROM(first(s(s(y0)), y1)) -> c3(MARK(first(s(s(y0)), y1))) A__FROM(first(s(cons(y0, y1)), y2)) -> c3(MARK(first(s(cons(y0, y1)), y2))) A__FROM(first(s(y0), y1)) -> c3(MARK(first(s(y0), y1))) A__FROM(first(s(y0), 0)) -> c3(MARK(first(s(y0), 0))) A__FROM(first(s(y0), nil)) -> c3(MARK(first(s(y0), nil))) A__FROM(first(s(y0), s(y1))) -> c3(MARK(first(s(y0), s(y1)))) A__FROM(first(0, first(y0, y1))) -> c3(MARK(first(0, first(y0, y1)))) A__FROM(first(nil, first(y0, y1))) -> c3(MARK(first(nil, first(y0, y1)))) A__FROM(first(0, from(y0))) -> c3(MARK(first(0, from(y0)))) A__FROM(first(nil, from(y0))) -> c3(MARK(first(nil, from(y0)))) A__FROM(first(y0, cons(y1, y2))) -> c3(MARK(first(y0, cons(y1, y2)))) A__FROM(first(0, cons(y0, y1))) -> c3(MARK(first(0, cons(y0, y1)))) A__FROM(first(nil, cons(y0, y1))) -> c3(MARK(first(nil, cons(y0, y1)))) A__FROM(first(y0, cons(0, y1))) -> c3(MARK(first(y0, cons(0, y1)))) A__FROM(first(y0, cons(nil, y1))) -> c3(MARK(first(y0, cons(nil, y1)))) ---------------------------------------- (140) Obligation: Complexity Dependency Tuples Problem Rules: a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(0) -> 0 mark(nil) -> nil mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(x0, from(x1))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), from(x1))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(first(x0, cons(from(z0), x2))) -> c5(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(s(z0), x2))) -> c5(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(first(first(z0, z1), cons(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(first(z0, z1))) MARK(first(from(z0), cons(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(first(s(z0), cons(x1, x2))) -> c5(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(s(z0))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(first(x0, first(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(first(x0, first(z0, z1)))) MARK(first(first(x0, from(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(first(x0, from(z0)))) MARK(first(first(x0, 0), x2)) -> c5(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(first(x0, 0))) MARK(first(first(x0, nil), x2)) -> c5(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(first(x0, nil))) MARK(first(first(x0, s(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(first(x0, s(z0)))) MARK(first(first(x0, cons(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(first(x0, cons(z0, z1)))) MARK(first(first(first(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(first(first(z0, z1), x1))) MARK(first(first(from(z0), x1), x2)) -> c5(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(first(from(z0), x1))) MARK(first(first(0, x1), x2)) -> c5(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(first(0, x1))) MARK(first(first(nil, x1), x2)) -> c5(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(first(nil, x1))) MARK(first(first(s(z0), x1), x2)) -> c5(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(first(s(z0), x1))) MARK(first(first(cons(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(first(cons(z0, z1), x1))) MARK(first(first(x0, x1), 0)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), nil)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), s(z0))) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), x2)) -> c5(MARK(first(x0, x1))) MARK(first(from(first(z0, z1)), x1)) -> c5(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(from(first(z0, z1)))) MARK(first(from(from(z0)), x1)) -> c5(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(first(from(0), x1)) -> c5(A__FIRST(a__from(0), mark(x1)), MARK(from(0))) MARK(first(from(nil), x1)) -> c5(A__FIRST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(first(from(s(z0)), x1)) -> c5(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(from(s(z0)))) MARK(first(from(cons(z0, z1)), x1)) -> c5(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(first(from(x0), x1)) -> c5(MARK(from(x0))) MARK(first(from(x0), 0)) -> c5(MARK(from(x0))) MARK(first(from(x0), nil)) -> c5(MARK(from(x0))) MARK(first(from(x0), s(z0))) -> c5(MARK(from(x0))) MARK(first(s(first(z0, z1)), x1)) -> c5(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(s(first(z0, z1)))) MARK(first(s(from(z0)), x1)) -> c5(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(s(from(z0)))) MARK(first(s(0), x1)) -> c5(A__FIRST(s(0), mark(x1)), MARK(s(0))) MARK(first(s(nil), x1)) -> c5(A__FIRST(s(nil), mark(x1)), MARK(s(nil))) MARK(first(s(s(z0)), x1)) -> c5(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(s(s(z0)))) MARK(first(s(cons(z0, z1)), x1)) -> c5(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(s(cons(z0, z1)))) MARK(first(s(x0), x1)) -> c5(MARK(s(x0))) MARK(first(s(x0), 0)) -> c5(MARK(s(x0))) MARK(first(s(x0), nil)) -> c5(MARK(s(x0))) MARK(first(s(x0), s(z0))) -> c5(MARK(s(x0))) MARK(first(x0, first(x1, first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(first(x1, first(z0, z1)))) MARK(first(x0, first(x1, from(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(first(x1, from(z0)))) MARK(first(x0, first(x1, 0))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(first(x1, 0))) MARK(first(x0, first(x1, nil))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(first(x1, nil))) MARK(first(x0, first(x1, s(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(first(x1, s(z0)))) MARK(first(x0, first(x1, cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(first(x1, cons(z0, z1)))) MARK(first(x0, first(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(first(first(z0, z1), x2))) MARK(first(x0, first(from(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(first(from(z0), x2))) MARK(first(x0, first(0, x2))) -> c6(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(first(0, x2))) MARK(first(x0, first(nil, x2))) -> c6(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(first(nil, x2))) MARK(first(x0, first(s(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(first(s(z0), x2))) MARK(first(x0, first(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(first(cons(z0, z1), x2))) MARK(first(first(z0, z1), first(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(from(z0), first(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(s(z0), first(x1, x2))) -> c6(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(x0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(nil, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(cons(z0, z1), first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(x0, from(x1))) -> c6(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(first(x0, from(first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(from(first(z0, z1)))) MARK(first(x0, from(from(z0)))) -> c6(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(first(x0, from(0))) -> c6(A__FIRST(mark(x0), a__from(0)), MARK(from(0))) MARK(first(x0, from(nil))) -> c6(A__FIRST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(first(x0, from(s(z0)))) -> c6(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(from(s(z0)))) MARK(first(x0, from(cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(first(first(z0, z1), from(x1))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(first(from(z0), from(x1))) -> c6(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(s(z0), from(x1))) -> c6(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(x0, from(x1))) -> c6(MARK(from(x1))) MARK(first(0, from(x1))) -> c6(MARK(from(x1))) MARK(first(nil, from(x1))) -> c6(MARK(from(x1))) MARK(first(cons(z0, z1), from(x1))) -> c6(MARK(from(x1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(cons(first(z0, z1), x2))) MARK(first(x0, cons(from(z0), x2))) -> c6(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(first(x0, cons(s(z0), x2))) -> c6(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(cons(s(z0), x2))) MARK(first(x0, cons(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(first(first(z0, z1), cons(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(from(z0), cons(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(s(z0), cons(x1, x2))) -> c6(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(x0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(nil, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(first(x0, first(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(first(first(x0, from(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, 0), x2)) -> c6(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(x2)) MARK(first(first(x0, nil), x2)) -> c6(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(x2)) MARK(first(first(x0, s(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, cons(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(first(first(first(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(from(z0), x1), x2)) -> c6(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(0, x1), x2)) -> c6(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(nil, x1), x2)) -> c6(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(s(z0), x1), x2)) -> c6(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(cons(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(x0, x1), s(z0))) -> c6(MARK(s(z0))) MARK(first(first(x0, x1), x2)) -> c6(MARK(x2)) MARK(first(from(first(z0, z1)), x1)) -> c6(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(first(from(from(z0)), x1)) -> c6(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(first(from(0), x1)) -> c6(A__FIRST(a__from(0), mark(x1)), MARK(x1)) MARK(first(from(nil), x1)) -> c6(A__FIRST(a__from(nil), mark(x1)), MARK(x1)) MARK(first(from(s(z0)), x1)) -> c6(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(x1)) MARK(first(from(cons(z0, z1)), x1)) -> c6(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(first(from(x0), s(z0))) -> c6(MARK(s(z0))) MARK(first(from(x0), x1)) -> c6(MARK(x1)) MARK(first(s(first(z0, z1)), x1)) -> c6(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(first(s(from(z0)), x1)) -> c6(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(first(s(0), x1)) -> c6(A__FIRST(s(0), mark(x1)), MARK(x1)) MARK(first(s(nil), x1)) -> c6(A__FIRST(s(nil), mark(x1)), MARK(x1)) MARK(first(s(s(z0)), x1)) -> c6(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(x1)) MARK(first(s(cons(z0, z1)), x1)) -> c6(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(first(s(x0), s(z0))) -> c6(MARK(s(z0))) A__FIRST(s(z0), cons(from(y0), z2)) -> c1(MARK(from(y0))) A__FIRST(s(z0), cons(s(y0), z2)) -> c1(MARK(s(y0))) A__FIRST(s(z0), cons(cons(y0, y1), z2)) -> c1(MARK(cons(y0, y1))) A__FIRST(s(z0), cons(first(y0, 0), z2)) -> c1(MARK(first(y0, 0))) A__FIRST(s(z0), cons(first(y0, nil), z2)) -> c1(MARK(first(y0, nil))) A__FIRST(s(z0), cons(first(y0, s(y1)), z2)) -> c1(MARK(first(y0, s(y1)))) A__FIRST(s(z0), cons(first(cons(y0, y1), y2), z2)) -> c1(MARK(first(cons(y0, y1), y2))) A__FIRST(s(z0), cons(first(0, y0), z2)) -> c1(MARK(first(0, y0))) A__FIRST(s(z0), cons(first(nil, y0), z2)) -> c1(MARK(first(nil, y0))) A__FIRST(s(z0), cons(first(y0, first(y1, first(y2, y3))), z2)) -> c1(MARK(first(y0, first(y1, first(y2, y3))))) A__FIRST(s(z0), cons(first(y0, first(y1, from(y2))), z2)) -> c1(MARK(first(y0, first(y1, from(y2))))) A__FIRST(s(z0), cons(first(y0, first(y1, 0)), z2)) -> c1(MARK(first(y0, first(y1, 0)))) A__FIRST(s(z0), cons(first(y0, first(y1, nil)), z2)) -> c1(MARK(first(y0, first(y1, nil)))) A__FIRST(s(z0), cons(first(y0, first(y1, s(y2))), z2)) -> c1(MARK(first(y0, first(y1, s(y2))))) A__FIRST(s(z0), cons(first(y0, first(y1, cons(y2, y3))), z2)) -> c1(MARK(first(y0, first(y1, cons(y2, y3))))) A__FIRST(s(z0), cons(first(y0, first(first(y1, y2), y3)), z2)) -> c1(MARK(first(y0, first(first(y1, y2), y3)))) A__FIRST(s(z0), cons(first(y0, first(from(y1), y2)), z2)) -> c1(MARK(first(y0, first(from(y1), y2)))) A__FIRST(s(z0), cons(first(y0, first(0, y1)), z2)) -> c1(MARK(first(y0, first(0, y1)))) A__FIRST(s(z0), cons(first(y0, first(nil, y1)), z2)) -> c1(MARK(first(y0, first(nil, y1)))) A__FIRST(s(z0), cons(first(y0, first(s(y1), y2)), z2)) -> c1(MARK(first(y0, first(s(y1), y2)))) A__FIRST(s(z0), cons(first(y0, first(cons(y1, y2), y3)), z2)) -> c1(MARK(first(y0, first(cons(y1, y2), y3)))) A__FIRST(s(z0), cons(first(first(y0, y1), first(y2, y3)), z2)) -> c1(MARK(first(first(y0, y1), first(y2, y3)))) A__FIRST(s(z0), cons(first(from(y0), first(y1, y2)), z2)) -> c1(MARK(first(from(y0), first(y1, y2)))) A__FIRST(s(z0), cons(first(s(y0), first(y1, y2)), z2)) -> c1(MARK(first(s(y0), first(y1, y2)))) A__FIRST(s(z0), cons(first(y0, first(y1, y2)), z2)) -> c1(MARK(first(y0, first(y1, y2)))) A__FIRST(s(z0), cons(first(cons(y0, y1), first(y2, y3)), z2)) -> c1(MARK(first(cons(y0, y1), first(y2, y3)))) A__FIRST(s(z0), cons(first(y0, from(y1)), z2)) -> c1(MARK(first(y0, from(y1)))) A__FIRST(s(z0), cons(first(y0, from(first(y1, y2))), z2)) -> c1(MARK(first(y0, from(first(y1, y2))))) A__FIRST(s(z0), cons(first(y0, from(from(y1))), z2)) -> c1(MARK(first(y0, from(from(y1))))) A__FIRST(s(z0), cons(first(y0, from(0)), z2)) -> c1(MARK(first(y0, from(0)))) A__FIRST(s(z0), cons(first(y0, from(nil)), z2)) -> c1(MARK(first(y0, from(nil)))) A__FIRST(s(z0), cons(first(y0, from(s(y1))), z2)) -> c1(MARK(first(y0, from(s(y1))))) A__FIRST(s(z0), cons(first(y0, from(cons(y1, y2))), z2)) -> c1(MARK(first(y0, from(cons(y1, y2))))) A__FIRST(s(z0), cons(first(first(y0, y1), from(y2)), z2)) -> c1(MARK(first(first(y0, y1), from(y2)))) A__FIRST(s(z0), cons(first(from(y0), from(y1)), z2)) -> c1(MARK(first(from(y0), from(y1)))) A__FIRST(s(z0), cons(first(s(y0), from(y1)), z2)) -> c1(MARK(first(s(y0), from(y1)))) A__FIRST(s(z0), cons(first(cons(y0, y1), from(y2)), z2)) -> c1(MARK(first(cons(y0, y1), from(y2)))) A__FIRST(s(z0), cons(first(y0, cons(first(y1, y2), y3)), z2)) -> c1(MARK(first(y0, cons(first(y1, y2), y3)))) A__FIRST(s(z0), cons(first(y0, cons(from(y1), y2)), z2)) -> c1(MARK(first(y0, cons(from(y1), y2)))) A__FIRST(s(z0), cons(first(y0, cons(0, y1)), z2)) -> c1(MARK(first(y0, cons(0, y1)))) A__FIRST(s(z0), cons(first(y0, cons(nil, y1)), z2)) -> c1(MARK(first(y0, cons(nil, y1)))) A__FIRST(s(z0), cons(first(y0, cons(s(y1), y2)), z2)) -> c1(MARK(first(y0, cons(s(y1), y2)))) A__FIRST(s(z0), cons(first(y0, cons(cons(y1, y2), y3)), z2)) -> c1(MARK(first(y0, cons(cons(y1, y2), y3)))) A__FIRST(s(z0), cons(first(first(y0, y1), cons(y2, y3)), z2)) -> c1(MARK(first(first(y0, y1), cons(y2, y3)))) A__FIRST(s(z0), cons(first(from(y0), cons(y1, y2)), z2)) -> c1(MARK(first(from(y0), cons(y1, y2)))) A__FIRST(s(z0), cons(first(s(y0), cons(y1, y2)), z2)) -> c1(MARK(first(s(y0), cons(y1, y2)))) A__FIRST(s(z0), cons(first(cons(y0, y1), cons(y2, y3)), z2)) -> c1(MARK(first(cons(y0, y1), cons(y2, y3)))) A__FIRST(s(z0), cons(first(first(y0, first(y1, y2)), y3), z2)) -> c1(MARK(first(first(y0, first(y1, y2)), y3))) A__FIRST(s(z0), cons(first(first(y0, from(y1)), y2), z2)) -> c1(MARK(first(first(y0, from(y1)), y2))) A__FIRST(s(z0), cons(first(first(y0, 0), y1), z2)) -> c1(MARK(first(first(y0, 0), y1))) A__FIRST(s(z0), cons(first(first(y0, nil), y1), z2)) -> c1(MARK(first(first(y0, nil), y1))) A__FIRST(s(z0), cons(first(first(y0, s(y1)), y2), z2)) -> c1(MARK(first(first(y0, s(y1)), y2))) A__FIRST(s(z0), cons(first(first(y0, cons(y1, y2)), y3), z2)) -> c1(MARK(first(first(y0, cons(y1, y2)), y3))) A__FIRST(s(z0), cons(first(first(first(y0, y1), y2), y3), z2)) -> c1(MARK(first(first(first(y0, y1), y2), y3))) A__FIRST(s(z0), cons(first(first(from(y0), y1), y2), z2)) -> c1(MARK(first(first(from(y0), y1), y2))) A__FIRST(s(z0), cons(first(first(0, y0), y1), z2)) -> c1(MARK(first(first(0, y0), y1))) A__FIRST(s(z0), cons(first(first(nil, y0), y1), z2)) -> c1(MARK(first(first(nil, y0), y1))) A__FIRST(s(z0), cons(first(first(s(y0), y1), y2), z2)) -> c1(MARK(first(first(s(y0), y1), y2))) A__FIRST(s(z0), cons(first(first(cons(y0, y1), y2), y3), z2)) -> c1(MARK(first(first(cons(y0, y1), y2), y3))) A__FIRST(s(z0), cons(first(first(y0, y1), 0), z2)) -> c1(MARK(first(first(y0, y1), 0))) A__FIRST(s(z0), cons(first(first(y0, y1), nil), z2)) -> c1(MARK(first(first(y0, y1), nil))) A__FIRST(s(z0), cons(first(first(y0, y1), s(y2)), z2)) -> c1(MARK(first(first(y0, y1), s(y2)))) A__FIRST(s(z0), cons(first(first(y0, y1), y2), z2)) -> c1(MARK(first(first(y0, y1), y2))) A__FIRST(s(z0), cons(first(from(first(y0, y1)), y2), z2)) -> c1(MARK(first(from(first(y0, y1)), y2))) A__FIRST(s(z0), cons(first(from(from(y0)), y1), z2)) -> c1(MARK(first(from(from(y0)), y1))) A__FIRST(s(z0), cons(first(from(0), y0), z2)) -> c1(MARK(first(from(0), y0))) A__FIRST(s(z0), cons(first(from(nil), y0), z2)) -> c1(MARK(first(from(nil), y0))) A__FIRST(s(z0), cons(first(from(s(y0)), y1), z2)) -> c1(MARK(first(from(s(y0)), y1))) A__FIRST(s(z0), cons(first(from(cons(y0, y1)), y2), z2)) -> c1(MARK(first(from(cons(y0, y1)), y2))) A__FIRST(s(z0), cons(first(from(y0), y1), z2)) -> c1(MARK(first(from(y0), y1))) A__FIRST(s(z0), cons(first(from(y0), 0), z2)) -> c1(MARK(first(from(y0), 0))) A__FIRST(s(z0), cons(first(from(y0), nil), z2)) -> c1(MARK(first(from(y0), nil))) A__FIRST(s(z0), cons(first(from(y0), s(y1)), z2)) -> c1(MARK(first(from(y0), s(y1)))) A__FIRST(s(z0), cons(first(s(first(y0, y1)), y2), z2)) -> c1(MARK(first(s(first(y0, y1)), y2))) A__FIRST(s(z0), cons(first(s(from(y0)), y1), z2)) -> c1(MARK(first(s(from(y0)), y1))) A__FIRST(s(z0), cons(first(s(0), y0), z2)) -> c1(MARK(first(s(0), y0))) A__FIRST(s(z0), cons(first(s(nil), y0), z2)) -> c1(MARK(first(s(nil), y0))) A__FIRST(s(z0), cons(first(s(s(y0)), y1), z2)) -> c1(MARK(first(s(s(y0)), y1))) A__FIRST(s(z0), cons(first(s(cons(y0, y1)), y2), z2)) -> c1(MARK(first(s(cons(y0, y1)), y2))) A__FIRST(s(z0), cons(first(s(y0), y1), z2)) -> c1(MARK(first(s(y0), y1))) A__FIRST(s(z0), cons(first(s(y0), 0), z2)) -> c1(MARK(first(s(y0), 0))) A__FIRST(s(z0), cons(first(s(y0), nil), z2)) -> c1(MARK(first(s(y0), nil))) A__FIRST(s(z0), cons(first(s(y0), s(y1)), z2)) -> c1(MARK(first(s(y0), s(y1)))) A__FIRST(s(z0), cons(first(0, first(y0, y1)), z2)) -> c1(MARK(first(0, first(y0, y1)))) A__FIRST(s(z0), cons(first(nil, first(y0, y1)), z2)) -> c1(MARK(first(nil, first(y0, y1)))) A__FIRST(s(z0), cons(first(0, from(y0)), z2)) -> c1(MARK(first(0, from(y0)))) A__FIRST(s(z0), cons(first(nil, from(y0)), z2)) -> c1(MARK(first(nil, from(y0)))) A__FIRST(s(z0), cons(first(y0, cons(y1, y2)), z2)) -> c1(MARK(first(y0, cons(y1, y2)))) A__FIRST(s(z0), cons(first(0, cons(y0, y1)), z2)) -> c1(MARK(first(0, cons(y0, y1)))) A__FIRST(s(z0), cons(first(nil, cons(y0, y1)), z2)) -> c1(MARK(first(nil, cons(y0, y1)))) MARK(first(x0, cons(0, x2))) -> c5(MARK(x0)) MARK(first(x0, cons(nil, x2))) -> c5(MARK(x0)) MARK(first(x0, cons(0, x2))) -> c6(MARK(cons(0, x2))) MARK(first(x0, cons(nil, x2))) -> c6(MARK(cons(nil, x2))) A__FROM(from(y0)) -> c3(MARK(from(y0))) A__FROM(s(y0)) -> c3(MARK(s(y0))) A__FROM(cons(y0, y1)) -> c3(MARK(cons(y0, y1))) A__FROM(first(y0, 0)) -> c3(MARK(first(y0, 0))) A__FROM(first(y0, nil)) -> c3(MARK(first(y0, nil))) A__FROM(first(y0, s(y1))) -> c3(MARK(first(y0, s(y1)))) A__FROM(first(cons(y0, y1), y2)) -> c3(MARK(first(cons(y0, y1), y2))) A__FROM(first(0, y0)) -> c3(MARK(first(0, y0))) A__FROM(first(nil, y0)) -> c3(MARK(first(nil, y0))) A__FROM(first(y0, first(y1, first(y2, y3)))) -> c3(MARK(first(y0, first(y1, first(y2, y3))))) A__FROM(first(y0, first(y1, from(y2)))) -> c3(MARK(first(y0, first(y1, from(y2))))) A__FROM(first(y0, first(y1, 0))) -> c3(MARK(first(y0, first(y1, 0)))) A__FROM(first(y0, first(y1, nil))) -> c3(MARK(first(y0, first(y1, nil)))) A__FROM(first(y0, first(y1, s(y2)))) -> c3(MARK(first(y0, first(y1, s(y2))))) A__FROM(first(y0, first(y1, cons(y2, y3)))) -> c3(MARK(first(y0, first(y1, cons(y2, y3))))) A__FROM(first(y0, first(first(y1, y2), y3))) -> c3(MARK(first(y0, first(first(y1, y2), y3)))) A__FROM(first(y0, first(from(y1), y2))) -> c3(MARK(first(y0, first(from(y1), y2)))) A__FROM(first(y0, first(0, y1))) -> c3(MARK(first(y0, first(0, y1)))) A__FROM(first(y0, first(nil, y1))) -> c3(MARK(first(y0, first(nil, y1)))) A__FROM(first(y0, first(s(y1), y2))) -> c3(MARK(first(y0, first(s(y1), y2)))) A__FROM(first(y0, first(cons(y1, y2), y3))) -> c3(MARK(first(y0, first(cons(y1, y2), y3)))) A__FROM(first(first(y0, y1), first(y2, y3))) -> c3(MARK(first(first(y0, y1), first(y2, y3)))) A__FROM(first(from(y0), first(y1, y2))) -> c3(MARK(first(from(y0), first(y1, y2)))) A__FROM(first(s(y0), first(y1, y2))) -> c3(MARK(first(s(y0), first(y1, y2)))) A__FROM(first(y0, first(y1, y2))) -> c3(MARK(first(y0, first(y1, y2)))) A__FROM(first(cons(y0, y1), first(y2, y3))) -> c3(MARK(first(cons(y0, y1), first(y2, y3)))) A__FROM(first(y0, from(y1))) -> c3(MARK(first(y0, from(y1)))) A__FROM(first(y0, from(first(y1, y2)))) -> c3(MARK(first(y0, from(first(y1, y2))))) A__FROM(first(y0, from(from(y1)))) -> c3(MARK(first(y0, from(from(y1))))) A__FROM(first(y0, from(0))) -> c3(MARK(first(y0, from(0)))) A__FROM(first(y0, from(nil))) -> c3(MARK(first(y0, from(nil)))) A__FROM(first(y0, from(s(y1)))) -> c3(MARK(first(y0, from(s(y1))))) A__FROM(first(y0, from(cons(y1, y2)))) -> c3(MARK(first(y0, from(cons(y1, y2))))) A__FROM(first(first(y0, y1), from(y2))) -> c3(MARK(first(first(y0, y1), from(y2)))) A__FROM(first(from(y0), from(y1))) -> c3(MARK(first(from(y0), from(y1)))) A__FROM(first(s(y0), from(y1))) -> c3(MARK(first(s(y0), from(y1)))) A__FROM(first(cons(y0, y1), from(y2))) -> c3(MARK(first(cons(y0, y1), from(y2)))) A__FROM(first(y0, cons(first(y1, y2), y3))) -> c3(MARK(first(y0, cons(first(y1, y2), y3)))) A__FROM(first(y0, cons(from(y1), y2))) -> c3(MARK(first(y0, cons(from(y1), y2)))) A__FROM(first(y0, cons(s(y1), y2))) -> c3(MARK(first(y0, cons(s(y1), y2)))) A__FROM(first(y0, cons(cons(y1, y2), y3))) -> c3(MARK(first(y0, cons(cons(y1, y2), y3)))) A__FROM(first(first(y0, y1), cons(y2, y3))) -> c3(MARK(first(first(y0, y1), cons(y2, y3)))) A__FROM(first(from(y0), cons(y1, y2))) -> c3(MARK(first(from(y0), cons(y1, y2)))) A__FROM(first(s(y0), cons(y1, y2))) -> c3(MARK(first(s(y0), cons(y1, y2)))) A__FROM(first(cons(y0, y1), cons(y2, y3))) -> c3(MARK(first(cons(y0, y1), cons(y2, y3)))) A__FROM(first(first(y0, first(y1, y2)), y3)) -> c3(MARK(first(first(y0, first(y1, y2)), y3))) A__FROM(first(first(y0, from(y1)), y2)) -> c3(MARK(first(first(y0, from(y1)), y2))) A__FROM(first(first(y0, 0), y1)) -> c3(MARK(first(first(y0, 0), y1))) A__FROM(first(first(y0, nil), y1)) -> c3(MARK(first(first(y0, nil), y1))) A__FROM(first(first(y0, s(y1)), y2)) -> c3(MARK(first(first(y0, s(y1)), y2))) A__FROM(first(first(y0, cons(y1, y2)), y3)) -> c3(MARK(first(first(y0, cons(y1, y2)), y3))) A__FROM(first(first(first(y0, y1), y2), y3)) -> c3(MARK(first(first(first(y0, y1), y2), y3))) A__FROM(first(first(from(y0), y1), y2)) -> c3(MARK(first(first(from(y0), y1), y2))) A__FROM(first(first(0, y0), y1)) -> c3(MARK(first(first(0, y0), y1))) A__FROM(first(first(nil, y0), y1)) -> c3(MARK(first(first(nil, y0), y1))) A__FROM(first(first(s(y0), y1), y2)) -> c3(MARK(first(first(s(y0), y1), y2))) A__FROM(first(first(cons(y0, y1), y2), y3)) -> c3(MARK(first(first(cons(y0, y1), y2), y3))) A__FROM(first(first(y0, y1), 0)) -> c3(MARK(first(first(y0, y1), 0))) A__FROM(first(first(y0, y1), nil)) -> c3(MARK(first(first(y0, y1), nil))) A__FROM(first(first(y0, y1), s(y2))) -> c3(MARK(first(first(y0, y1), s(y2)))) A__FROM(first(first(y0, y1), y2)) -> c3(MARK(first(first(y0, y1), y2))) A__FROM(first(from(first(y0, y1)), y2)) -> c3(MARK(first(from(first(y0, y1)), y2))) A__FROM(first(from(from(y0)), y1)) -> c3(MARK(first(from(from(y0)), y1))) A__FROM(first(from(0), y0)) -> c3(MARK(first(from(0), y0))) A__FROM(first(from(nil), y0)) -> c3(MARK(first(from(nil), y0))) A__FROM(first(from(s(y0)), y1)) -> c3(MARK(first(from(s(y0)), y1))) A__FROM(first(from(cons(y0, y1)), y2)) -> c3(MARK(first(from(cons(y0, y1)), y2))) A__FROM(first(from(y0), y1)) -> c3(MARK(first(from(y0), y1))) A__FROM(first(from(y0), 0)) -> c3(MARK(first(from(y0), 0))) A__FROM(first(from(y0), nil)) -> c3(MARK(first(from(y0), nil))) A__FROM(first(from(y0), s(y1))) -> c3(MARK(first(from(y0), s(y1)))) A__FROM(first(s(first(y0, y1)), y2)) -> c3(MARK(first(s(first(y0, y1)), y2))) A__FROM(first(s(from(y0)), y1)) -> c3(MARK(first(s(from(y0)), y1))) A__FROM(first(s(0), y0)) -> c3(MARK(first(s(0), y0))) A__FROM(first(s(nil), y0)) -> c3(MARK(first(s(nil), y0))) A__FROM(first(s(s(y0)), y1)) -> c3(MARK(first(s(s(y0)), y1))) A__FROM(first(s(cons(y0, y1)), y2)) -> c3(MARK(first(s(cons(y0, y1)), y2))) A__FROM(first(s(y0), y1)) -> c3(MARK(first(s(y0), y1))) A__FROM(first(s(y0), 0)) -> c3(MARK(first(s(y0), 0))) A__FROM(first(s(y0), nil)) -> c3(MARK(first(s(y0), nil))) A__FROM(first(s(y0), s(y1))) -> c3(MARK(first(s(y0), s(y1)))) A__FROM(first(0, first(y0, y1))) -> c3(MARK(first(0, first(y0, y1)))) A__FROM(first(nil, first(y0, y1))) -> c3(MARK(first(nil, first(y0, y1)))) A__FROM(first(0, from(y0))) -> c3(MARK(first(0, from(y0)))) A__FROM(first(nil, from(y0))) -> c3(MARK(first(nil, from(y0)))) A__FROM(first(y0, cons(y1, y2))) -> c3(MARK(first(y0, cons(y1, y2)))) A__FROM(first(0, cons(y0, y1))) -> c3(MARK(first(0, cons(y0, y1)))) A__FROM(first(nil, cons(y0, y1))) -> c3(MARK(first(nil, cons(y0, y1)))) A__FROM(first(y0, cons(0, y1))) -> c3(MARK(first(y0, cons(0, y1)))) A__FROM(first(y0, cons(nil, y1))) -> c3(MARK(first(y0, cons(nil, y1)))) S tuples: MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(x0, from(x1))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), from(x1))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(first(x0, cons(from(z0), x2))) -> c5(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(s(z0), x2))) -> c5(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(first(first(z0, z1), cons(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(first(z0, z1))) MARK(first(from(z0), cons(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(first(s(z0), cons(x1, x2))) -> c5(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(s(z0))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(first(x0, first(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(first(x0, first(z0, z1)))) MARK(first(first(x0, from(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(first(x0, from(z0)))) MARK(first(first(x0, 0), x2)) -> c5(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(first(x0, 0))) MARK(first(first(x0, nil), x2)) -> c5(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(first(x0, nil))) MARK(first(first(x0, s(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(first(x0, s(z0)))) MARK(first(first(x0, cons(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(first(x0, cons(z0, z1)))) MARK(first(first(first(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(first(first(z0, z1), x1))) MARK(first(first(from(z0), x1), x2)) -> c5(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(first(from(z0), x1))) MARK(first(first(0, x1), x2)) -> c5(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(first(0, x1))) MARK(first(first(nil, x1), x2)) -> c5(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(first(nil, x1))) MARK(first(first(s(z0), x1), x2)) -> c5(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(first(s(z0), x1))) MARK(first(first(cons(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(first(cons(z0, z1), x1))) MARK(first(first(x0, x1), 0)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), nil)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), s(z0))) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), x2)) -> c5(MARK(first(x0, x1))) MARK(first(from(first(z0, z1)), x1)) -> c5(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(from(first(z0, z1)))) MARK(first(from(from(z0)), x1)) -> c5(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(first(from(0), x1)) -> c5(A__FIRST(a__from(0), mark(x1)), MARK(from(0))) MARK(first(from(nil), x1)) -> c5(A__FIRST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(first(from(s(z0)), x1)) -> c5(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(from(s(z0)))) MARK(first(from(cons(z0, z1)), x1)) -> c5(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(first(from(x0), x1)) -> c5(MARK(from(x0))) MARK(first(from(x0), 0)) -> c5(MARK(from(x0))) MARK(first(from(x0), nil)) -> c5(MARK(from(x0))) MARK(first(from(x0), s(z0))) -> c5(MARK(from(x0))) MARK(first(s(first(z0, z1)), x1)) -> c5(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(s(first(z0, z1)))) MARK(first(s(from(z0)), x1)) -> c5(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(s(from(z0)))) MARK(first(s(0), x1)) -> c5(A__FIRST(s(0), mark(x1)), MARK(s(0))) MARK(first(s(nil), x1)) -> c5(A__FIRST(s(nil), mark(x1)), MARK(s(nil))) MARK(first(s(s(z0)), x1)) -> c5(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(s(s(z0)))) MARK(first(s(cons(z0, z1)), x1)) -> c5(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(s(cons(z0, z1)))) MARK(first(s(x0), x1)) -> c5(MARK(s(x0))) MARK(first(s(x0), 0)) -> c5(MARK(s(x0))) MARK(first(s(x0), nil)) -> c5(MARK(s(x0))) MARK(first(s(x0), s(z0))) -> c5(MARK(s(x0))) MARK(first(x0, first(x1, first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(first(x1, first(z0, z1)))) MARK(first(x0, first(x1, from(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(first(x1, from(z0)))) MARK(first(x0, first(x1, 0))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(first(x1, 0))) MARK(first(x0, first(x1, nil))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(first(x1, nil))) MARK(first(x0, first(x1, s(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(first(x1, s(z0)))) MARK(first(x0, first(x1, cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(first(x1, cons(z0, z1)))) MARK(first(x0, first(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(first(first(z0, z1), x2))) MARK(first(x0, first(from(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(first(from(z0), x2))) MARK(first(x0, first(0, x2))) -> c6(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(first(0, x2))) MARK(first(x0, first(nil, x2))) -> c6(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(first(nil, x2))) MARK(first(x0, first(s(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(first(s(z0), x2))) MARK(first(x0, first(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(first(cons(z0, z1), x2))) MARK(first(first(z0, z1), first(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(from(z0), first(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(s(z0), first(x1, x2))) -> c6(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(x0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(nil, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(cons(z0, z1), first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(x0, from(x1))) -> c6(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(first(x0, from(first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(from(first(z0, z1)))) MARK(first(x0, from(from(z0)))) -> c6(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(first(x0, from(0))) -> c6(A__FIRST(mark(x0), a__from(0)), MARK(from(0))) MARK(first(x0, from(nil))) -> c6(A__FIRST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(first(x0, from(s(z0)))) -> c6(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(from(s(z0)))) MARK(first(x0, from(cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(first(first(z0, z1), from(x1))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(first(from(z0), from(x1))) -> c6(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(s(z0), from(x1))) -> c6(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(x0, from(x1))) -> c6(MARK(from(x1))) MARK(first(0, from(x1))) -> c6(MARK(from(x1))) MARK(first(nil, from(x1))) -> c6(MARK(from(x1))) MARK(first(cons(z0, z1), from(x1))) -> c6(MARK(from(x1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(cons(first(z0, z1), x2))) MARK(first(x0, cons(from(z0), x2))) -> c6(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(first(x0, cons(s(z0), x2))) -> c6(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(cons(s(z0), x2))) MARK(first(x0, cons(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(first(first(z0, z1), cons(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(from(z0), cons(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(s(z0), cons(x1, x2))) -> c6(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(x0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(nil, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(first(x0, first(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(first(first(x0, from(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, 0), x2)) -> c6(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(x2)) MARK(first(first(x0, nil), x2)) -> c6(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(x2)) MARK(first(first(x0, s(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, cons(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(first(first(first(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(from(z0), x1), x2)) -> c6(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(0, x1), x2)) -> c6(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(nil, x1), x2)) -> c6(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(s(z0), x1), x2)) -> c6(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(cons(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(x0, x1), s(z0))) -> c6(MARK(s(z0))) MARK(first(first(x0, x1), x2)) -> c6(MARK(x2)) MARK(first(from(first(z0, z1)), x1)) -> c6(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(first(from(from(z0)), x1)) -> c6(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(first(from(0), x1)) -> c6(A__FIRST(a__from(0), mark(x1)), MARK(x1)) MARK(first(from(nil), x1)) -> c6(A__FIRST(a__from(nil), mark(x1)), MARK(x1)) MARK(first(from(s(z0)), x1)) -> c6(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(x1)) MARK(first(from(cons(z0, z1)), x1)) -> c6(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(first(from(x0), s(z0))) -> c6(MARK(s(z0))) MARK(first(from(x0), x1)) -> c6(MARK(x1)) MARK(first(s(first(z0, z1)), x1)) -> c6(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(first(s(from(z0)), x1)) -> c6(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(first(s(0), x1)) -> c6(A__FIRST(s(0), mark(x1)), MARK(x1)) MARK(first(s(nil), x1)) -> c6(A__FIRST(s(nil), mark(x1)), MARK(x1)) MARK(first(s(s(z0)), x1)) -> c6(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(x1)) MARK(first(s(cons(z0, z1)), x1)) -> c6(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(first(s(x0), s(z0))) -> c6(MARK(s(z0))) A__FIRST(s(z0), cons(from(y0), z2)) -> c1(MARK(from(y0))) A__FIRST(s(z0), cons(s(y0), z2)) -> c1(MARK(s(y0))) A__FIRST(s(z0), cons(cons(y0, y1), z2)) -> c1(MARK(cons(y0, y1))) A__FIRST(s(z0), cons(first(y0, 0), z2)) -> c1(MARK(first(y0, 0))) A__FIRST(s(z0), cons(first(y0, nil), z2)) -> c1(MARK(first(y0, nil))) A__FIRST(s(z0), cons(first(y0, s(y1)), z2)) -> c1(MARK(first(y0, s(y1)))) A__FIRST(s(z0), cons(first(cons(y0, y1), y2), z2)) -> c1(MARK(first(cons(y0, y1), y2))) A__FIRST(s(z0), cons(first(0, y0), z2)) -> c1(MARK(first(0, y0))) A__FIRST(s(z0), cons(first(nil, y0), z2)) -> c1(MARK(first(nil, y0))) A__FIRST(s(z0), cons(first(y0, first(y1, first(y2, y3))), z2)) -> c1(MARK(first(y0, first(y1, first(y2, y3))))) A__FIRST(s(z0), cons(first(y0, first(y1, from(y2))), z2)) -> c1(MARK(first(y0, first(y1, from(y2))))) A__FIRST(s(z0), cons(first(y0, first(y1, 0)), z2)) -> c1(MARK(first(y0, first(y1, 0)))) A__FIRST(s(z0), cons(first(y0, first(y1, nil)), z2)) -> c1(MARK(first(y0, first(y1, nil)))) A__FIRST(s(z0), cons(first(y0, first(y1, s(y2))), z2)) -> c1(MARK(first(y0, first(y1, s(y2))))) A__FIRST(s(z0), cons(first(y0, first(y1, cons(y2, y3))), z2)) -> c1(MARK(first(y0, first(y1, cons(y2, y3))))) A__FIRST(s(z0), cons(first(y0, first(first(y1, y2), y3)), z2)) -> c1(MARK(first(y0, first(first(y1, y2), y3)))) A__FIRST(s(z0), cons(first(y0, first(from(y1), y2)), z2)) -> c1(MARK(first(y0, first(from(y1), y2)))) A__FIRST(s(z0), cons(first(y0, first(0, y1)), z2)) -> c1(MARK(first(y0, first(0, y1)))) A__FIRST(s(z0), cons(first(y0, first(nil, y1)), z2)) -> c1(MARK(first(y0, first(nil, y1)))) A__FIRST(s(z0), cons(first(y0, first(s(y1), y2)), z2)) -> c1(MARK(first(y0, first(s(y1), y2)))) A__FIRST(s(z0), cons(first(y0, first(cons(y1, y2), y3)), z2)) -> c1(MARK(first(y0, first(cons(y1, y2), y3)))) A__FIRST(s(z0), cons(first(first(y0, y1), first(y2, y3)), z2)) -> c1(MARK(first(first(y0, y1), first(y2, y3)))) A__FIRST(s(z0), cons(first(from(y0), first(y1, y2)), z2)) -> c1(MARK(first(from(y0), first(y1, y2)))) A__FIRST(s(z0), cons(first(s(y0), first(y1, y2)), z2)) -> c1(MARK(first(s(y0), first(y1, y2)))) A__FIRST(s(z0), cons(first(y0, first(y1, y2)), z2)) -> c1(MARK(first(y0, first(y1, y2)))) A__FIRST(s(z0), cons(first(cons(y0, y1), first(y2, y3)), z2)) -> c1(MARK(first(cons(y0, y1), first(y2, y3)))) A__FIRST(s(z0), cons(first(y0, from(y1)), z2)) -> c1(MARK(first(y0, from(y1)))) A__FIRST(s(z0), cons(first(y0, from(first(y1, y2))), z2)) -> c1(MARK(first(y0, from(first(y1, y2))))) A__FIRST(s(z0), cons(first(y0, from(from(y1))), z2)) -> c1(MARK(first(y0, from(from(y1))))) A__FIRST(s(z0), cons(first(y0, from(0)), z2)) -> c1(MARK(first(y0, from(0)))) A__FIRST(s(z0), cons(first(y0, from(nil)), z2)) -> c1(MARK(first(y0, from(nil)))) A__FIRST(s(z0), cons(first(y0, from(s(y1))), z2)) -> c1(MARK(first(y0, from(s(y1))))) A__FIRST(s(z0), cons(first(y0, from(cons(y1, y2))), z2)) -> c1(MARK(first(y0, from(cons(y1, y2))))) A__FIRST(s(z0), cons(first(first(y0, y1), from(y2)), z2)) -> c1(MARK(first(first(y0, y1), from(y2)))) A__FIRST(s(z0), cons(first(from(y0), from(y1)), z2)) -> c1(MARK(first(from(y0), from(y1)))) A__FIRST(s(z0), cons(first(s(y0), from(y1)), z2)) -> c1(MARK(first(s(y0), from(y1)))) A__FIRST(s(z0), cons(first(cons(y0, y1), from(y2)), z2)) -> c1(MARK(first(cons(y0, y1), from(y2)))) A__FIRST(s(z0), cons(first(y0, cons(first(y1, y2), y3)), z2)) -> c1(MARK(first(y0, cons(first(y1, y2), y3)))) A__FIRST(s(z0), cons(first(y0, cons(from(y1), y2)), z2)) -> c1(MARK(first(y0, cons(from(y1), y2)))) A__FIRST(s(z0), cons(first(y0, cons(0, y1)), z2)) -> c1(MARK(first(y0, cons(0, y1)))) A__FIRST(s(z0), cons(first(y0, cons(nil, y1)), z2)) -> c1(MARK(first(y0, cons(nil, y1)))) A__FIRST(s(z0), cons(first(y0, cons(s(y1), y2)), z2)) -> c1(MARK(first(y0, cons(s(y1), y2)))) A__FIRST(s(z0), cons(first(y0, cons(cons(y1, y2), y3)), z2)) -> c1(MARK(first(y0, cons(cons(y1, y2), y3)))) A__FIRST(s(z0), cons(first(first(y0, y1), cons(y2, y3)), z2)) -> c1(MARK(first(first(y0, y1), cons(y2, y3)))) A__FIRST(s(z0), cons(first(from(y0), cons(y1, y2)), z2)) -> c1(MARK(first(from(y0), cons(y1, y2)))) A__FIRST(s(z0), cons(first(s(y0), cons(y1, y2)), z2)) -> c1(MARK(first(s(y0), cons(y1, y2)))) A__FIRST(s(z0), cons(first(cons(y0, y1), cons(y2, y3)), z2)) -> c1(MARK(first(cons(y0, y1), cons(y2, y3)))) A__FIRST(s(z0), cons(first(first(y0, first(y1, y2)), y3), z2)) -> c1(MARK(first(first(y0, first(y1, y2)), y3))) A__FIRST(s(z0), cons(first(first(y0, from(y1)), y2), z2)) -> c1(MARK(first(first(y0, from(y1)), y2))) A__FIRST(s(z0), cons(first(first(y0, 0), y1), z2)) -> c1(MARK(first(first(y0, 0), y1))) A__FIRST(s(z0), cons(first(first(y0, nil), y1), z2)) -> c1(MARK(first(first(y0, nil), y1))) A__FIRST(s(z0), cons(first(first(y0, s(y1)), y2), z2)) -> c1(MARK(first(first(y0, s(y1)), y2))) A__FIRST(s(z0), cons(first(first(y0, cons(y1, y2)), y3), z2)) -> c1(MARK(first(first(y0, cons(y1, y2)), y3))) A__FIRST(s(z0), cons(first(first(first(y0, y1), y2), y3), z2)) -> c1(MARK(first(first(first(y0, y1), y2), y3))) A__FIRST(s(z0), cons(first(first(from(y0), y1), y2), z2)) -> c1(MARK(first(first(from(y0), y1), y2))) A__FIRST(s(z0), cons(first(first(0, y0), y1), z2)) -> c1(MARK(first(first(0, y0), y1))) A__FIRST(s(z0), cons(first(first(nil, y0), y1), z2)) -> c1(MARK(first(first(nil, y0), y1))) A__FIRST(s(z0), cons(first(first(s(y0), y1), y2), z2)) -> c1(MARK(first(first(s(y0), y1), y2))) A__FIRST(s(z0), cons(first(first(cons(y0, y1), y2), y3), z2)) -> c1(MARK(first(first(cons(y0, y1), y2), y3))) A__FIRST(s(z0), cons(first(first(y0, y1), 0), z2)) -> c1(MARK(first(first(y0, y1), 0))) A__FIRST(s(z0), cons(first(first(y0, y1), nil), z2)) -> c1(MARK(first(first(y0, y1), nil))) A__FIRST(s(z0), cons(first(first(y0, y1), s(y2)), z2)) -> c1(MARK(first(first(y0, y1), s(y2)))) A__FIRST(s(z0), cons(first(first(y0, y1), y2), z2)) -> c1(MARK(first(first(y0, y1), y2))) A__FIRST(s(z0), cons(first(from(first(y0, y1)), y2), z2)) -> c1(MARK(first(from(first(y0, y1)), y2))) A__FIRST(s(z0), cons(first(from(from(y0)), y1), z2)) -> c1(MARK(first(from(from(y0)), y1))) A__FIRST(s(z0), cons(first(from(0), y0), z2)) -> c1(MARK(first(from(0), y0))) A__FIRST(s(z0), cons(first(from(nil), y0), z2)) -> c1(MARK(first(from(nil), y0))) A__FIRST(s(z0), cons(first(from(s(y0)), y1), z2)) -> c1(MARK(first(from(s(y0)), y1))) A__FIRST(s(z0), cons(first(from(cons(y0, y1)), y2), z2)) -> c1(MARK(first(from(cons(y0, y1)), y2))) A__FIRST(s(z0), cons(first(from(y0), y1), z2)) -> c1(MARK(first(from(y0), y1))) A__FIRST(s(z0), cons(first(from(y0), 0), z2)) -> c1(MARK(first(from(y0), 0))) A__FIRST(s(z0), cons(first(from(y0), nil), z2)) -> c1(MARK(first(from(y0), nil))) A__FIRST(s(z0), cons(first(from(y0), s(y1)), z2)) -> c1(MARK(first(from(y0), s(y1)))) A__FIRST(s(z0), cons(first(s(first(y0, y1)), y2), z2)) -> c1(MARK(first(s(first(y0, y1)), y2))) A__FIRST(s(z0), cons(first(s(from(y0)), y1), z2)) -> c1(MARK(first(s(from(y0)), y1))) A__FIRST(s(z0), cons(first(s(0), y0), z2)) -> c1(MARK(first(s(0), y0))) A__FIRST(s(z0), cons(first(s(nil), y0), z2)) -> c1(MARK(first(s(nil), y0))) A__FIRST(s(z0), cons(first(s(s(y0)), y1), z2)) -> c1(MARK(first(s(s(y0)), y1))) A__FIRST(s(z0), cons(first(s(cons(y0, y1)), y2), z2)) -> c1(MARK(first(s(cons(y0, y1)), y2))) A__FIRST(s(z0), cons(first(s(y0), y1), z2)) -> c1(MARK(first(s(y0), y1))) A__FIRST(s(z0), cons(first(s(y0), 0), z2)) -> c1(MARK(first(s(y0), 0))) A__FIRST(s(z0), cons(first(s(y0), nil), z2)) -> c1(MARK(first(s(y0), nil))) A__FIRST(s(z0), cons(first(s(y0), s(y1)), z2)) -> c1(MARK(first(s(y0), s(y1)))) A__FIRST(s(z0), cons(first(0, first(y0, y1)), z2)) -> c1(MARK(first(0, first(y0, y1)))) A__FIRST(s(z0), cons(first(nil, first(y0, y1)), z2)) -> c1(MARK(first(nil, first(y0, y1)))) A__FIRST(s(z0), cons(first(0, from(y0)), z2)) -> c1(MARK(first(0, from(y0)))) A__FIRST(s(z0), cons(first(nil, from(y0)), z2)) -> c1(MARK(first(nil, from(y0)))) A__FIRST(s(z0), cons(first(y0, cons(y1, y2)), z2)) -> c1(MARK(first(y0, cons(y1, y2)))) A__FIRST(s(z0), cons(first(0, cons(y0, y1)), z2)) -> c1(MARK(first(0, cons(y0, y1)))) A__FIRST(s(z0), cons(first(nil, cons(y0, y1)), z2)) -> c1(MARK(first(nil, cons(y0, y1)))) MARK(first(x0, cons(0, x2))) -> c5(MARK(x0)) MARK(first(x0, cons(nil, x2))) -> c5(MARK(x0)) MARK(first(x0, cons(0, x2))) -> c6(MARK(cons(0, x2))) MARK(first(x0, cons(nil, x2))) -> c6(MARK(cons(nil, x2))) A__FROM(from(y0)) -> c3(MARK(from(y0))) A__FROM(s(y0)) -> c3(MARK(s(y0))) A__FROM(cons(y0, y1)) -> c3(MARK(cons(y0, y1))) A__FROM(first(y0, 0)) -> c3(MARK(first(y0, 0))) A__FROM(first(y0, nil)) -> c3(MARK(first(y0, nil))) A__FROM(first(y0, s(y1))) -> c3(MARK(first(y0, s(y1)))) A__FROM(first(cons(y0, y1), y2)) -> c3(MARK(first(cons(y0, y1), y2))) A__FROM(first(0, y0)) -> c3(MARK(first(0, y0))) A__FROM(first(nil, y0)) -> c3(MARK(first(nil, y0))) A__FROM(first(y0, first(y1, first(y2, y3)))) -> c3(MARK(first(y0, first(y1, first(y2, y3))))) A__FROM(first(y0, first(y1, from(y2)))) -> c3(MARK(first(y0, first(y1, from(y2))))) A__FROM(first(y0, first(y1, 0))) -> c3(MARK(first(y0, first(y1, 0)))) A__FROM(first(y0, first(y1, nil))) -> c3(MARK(first(y0, first(y1, nil)))) A__FROM(first(y0, first(y1, s(y2)))) -> c3(MARK(first(y0, first(y1, s(y2))))) A__FROM(first(y0, first(y1, cons(y2, y3)))) -> c3(MARK(first(y0, first(y1, cons(y2, y3))))) A__FROM(first(y0, first(first(y1, y2), y3))) -> c3(MARK(first(y0, first(first(y1, y2), y3)))) A__FROM(first(y0, first(from(y1), y2))) -> c3(MARK(first(y0, first(from(y1), y2)))) A__FROM(first(y0, first(0, y1))) -> c3(MARK(first(y0, first(0, y1)))) A__FROM(first(y0, first(nil, y1))) -> c3(MARK(first(y0, first(nil, y1)))) A__FROM(first(y0, first(s(y1), y2))) -> c3(MARK(first(y0, first(s(y1), y2)))) A__FROM(first(y0, first(cons(y1, y2), y3))) -> c3(MARK(first(y0, first(cons(y1, y2), y3)))) A__FROM(first(first(y0, y1), first(y2, y3))) -> c3(MARK(first(first(y0, y1), first(y2, y3)))) A__FROM(first(from(y0), first(y1, y2))) -> c3(MARK(first(from(y0), first(y1, y2)))) A__FROM(first(s(y0), first(y1, y2))) -> c3(MARK(first(s(y0), first(y1, y2)))) A__FROM(first(y0, first(y1, y2))) -> c3(MARK(first(y0, first(y1, y2)))) A__FROM(first(cons(y0, y1), first(y2, y3))) -> c3(MARK(first(cons(y0, y1), first(y2, y3)))) A__FROM(first(y0, from(y1))) -> c3(MARK(first(y0, from(y1)))) A__FROM(first(y0, from(first(y1, y2)))) -> c3(MARK(first(y0, from(first(y1, y2))))) A__FROM(first(y0, from(from(y1)))) -> c3(MARK(first(y0, from(from(y1))))) A__FROM(first(y0, from(0))) -> c3(MARK(first(y0, from(0)))) A__FROM(first(y0, from(nil))) -> c3(MARK(first(y0, from(nil)))) A__FROM(first(y0, from(s(y1)))) -> c3(MARK(first(y0, from(s(y1))))) A__FROM(first(y0, from(cons(y1, y2)))) -> c3(MARK(first(y0, from(cons(y1, y2))))) A__FROM(first(first(y0, y1), from(y2))) -> c3(MARK(first(first(y0, y1), from(y2)))) A__FROM(first(from(y0), from(y1))) -> c3(MARK(first(from(y0), from(y1)))) A__FROM(first(s(y0), from(y1))) -> c3(MARK(first(s(y0), from(y1)))) A__FROM(first(cons(y0, y1), from(y2))) -> c3(MARK(first(cons(y0, y1), from(y2)))) A__FROM(first(y0, cons(first(y1, y2), y3))) -> c3(MARK(first(y0, cons(first(y1, y2), y3)))) A__FROM(first(y0, cons(from(y1), y2))) -> c3(MARK(first(y0, cons(from(y1), y2)))) A__FROM(first(y0, cons(s(y1), y2))) -> c3(MARK(first(y0, cons(s(y1), y2)))) A__FROM(first(y0, cons(cons(y1, y2), y3))) -> c3(MARK(first(y0, cons(cons(y1, y2), y3)))) A__FROM(first(first(y0, y1), cons(y2, y3))) -> c3(MARK(first(first(y0, y1), cons(y2, y3)))) A__FROM(first(from(y0), cons(y1, y2))) -> c3(MARK(first(from(y0), cons(y1, y2)))) A__FROM(first(s(y0), cons(y1, y2))) -> c3(MARK(first(s(y0), cons(y1, y2)))) A__FROM(first(cons(y0, y1), cons(y2, y3))) -> c3(MARK(first(cons(y0, y1), cons(y2, y3)))) A__FROM(first(first(y0, first(y1, y2)), y3)) -> c3(MARK(first(first(y0, first(y1, y2)), y3))) A__FROM(first(first(y0, from(y1)), y2)) -> c3(MARK(first(first(y0, from(y1)), y2))) A__FROM(first(first(y0, 0), y1)) -> c3(MARK(first(first(y0, 0), y1))) A__FROM(first(first(y0, nil), y1)) -> c3(MARK(first(first(y0, nil), y1))) A__FROM(first(first(y0, s(y1)), y2)) -> c3(MARK(first(first(y0, s(y1)), y2))) A__FROM(first(first(y0, cons(y1, y2)), y3)) -> c3(MARK(first(first(y0, cons(y1, y2)), y3))) A__FROM(first(first(first(y0, y1), y2), y3)) -> c3(MARK(first(first(first(y0, y1), y2), y3))) A__FROM(first(first(from(y0), y1), y2)) -> c3(MARK(first(first(from(y0), y1), y2))) A__FROM(first(first(0, y0), y1)) -> c3(MARK(first(first(0, y0), y1))) A__FROM(first(first(nil, y0), y1)) -> c3(MARK(first(first(nil, y0), y1))) A__FROM(first(first(s(y0), y1), y2)) -> c3(MARK(first(first(s(y0), y1), y2))) A__FROM(first(first(cons(y0, y1), y2), y3)) -> c3(MARK(first(first(cons(y0, y1), y2), y3))) A__FROM(first(first(y0, y1), 0)) -> c3(MARK(first(first(y0, y1), 0))) A__FROM(first(first(y0, y1), nil)) -> c3(MARK(first(first(y0, y1), nil))) A__FROM(first(first(y0, y1), s(y2))) -> c3(MARK(first(first(y0, y1), s(y2)))) A__FROM(first(first(y0, y1), y2)) -> c3(MARK(first(first(y0, y1), y2))) A__FROM(first(from(first(y0, y1)), y2)) -> c3(MARK(first(from(first(y0, y1)), y2))) A__FROM(first(from(from(y0)), y1)) -> c3(MARK(first(from(from(y0)), y1))) A__FROM(first(from(0), y0)) -> c3(MARK(first(from(0), y0))) A__FROM(first(from(nil), y0)) -> c3(MARK(first(from(nil), y0))) A__FROM(first(from(s(y0)), y1)) -> c3(MARK(first(from(s(y0)), y1))) A__FROM(first(from(cons(y0, y1)), y2)) -> c3(MARK(first(from(cons(y0, y1)), y2))) A__FROM(first(from(y0), y1)) -> c3(MARK(first(from(y0), y1))) A__FROM(first(from(y0), 0)) -> c3(MARK(first(from(y0), 0))) A__FROM(first(from(y0), nil)) -> c3(MARK(first(from(y0), nil))) A__FROM(first(from(y0), s(y1))) -> c3(MARK(first(from(y0), s(y1)))) A__FROM(first(s(first(y0, y1)), y2)) -> c3(MARK(first(s(first(y0, y1)), y2))) A__FROM(first(s(from(y0)), y1)) -> c3(MARK(first(s(from(y0)), y1))) A__FROM(first(s(0), y0)) -> c3(MARK(first(s(0), y0))) A__FROM(first(s(nil), y0)) -> c3(MARK(first(s(nil), y0))) A__FROM(first(s(s(y0)), y1)) -> c3(MARK(first(s(s(y0)), y1))) A__FROM(first(s(cons(y0, y1)), y2)) -> c3(MARK(first(s(cons(y0, y1)), y2))) A__FROM(first(s(y0), y1)) -> c3(MARK(first(s(y0), y1))) A__FROM(first(s(y0), 0)) -> c3(MARK(first(s(y0), 0))) A__FROM(first(s(y0), nil)) -> c3(MARK(first(s(y0), nil))) A__FROM(first(s(y0), s(y1))) -> c3(MARK(first(s(y0), s(y1)))) A__FROM(first(0, first(y0, y1))) -> c3(MARK(first(0, first(y0, y1)))) A__FROM(first(nil, first(y0, y1))) -> c3(MARK(first(nil, first(y0, y1)))) A__FROM(first(0, from(y0))) -> c3(MARK(first(0, from(y0)))) A__FROM(first(nil, from(y0))) -> c3(MARK(first(nil, from(y0)))) A__FROM(first(y0, cons(y1, y2))) -> c3(MARK(first(y0, cons(y1, y2)))) A__FROM(first(0, cons(y0, y1))) -> c3(MARK(first(0, cons(y0, y1)))) A__FROM(first(nil, cons(y0, y1))) -> c3(MARK(first(nil, cons(y0, y1)))) A__FROM(first(y0, cons(0, y1))) -> c3(MARK(first(y0, cons(0, y1)))) A__FROM(first(y0, cons(nil, y1))) -> c3(MARK(first(y0, cons(nil, y1)))) K tuples:none Defined Rule Symbols: a__first_2, a__from_1, mark_1 Defined Pair Symbols: MARK_1, A__FIRST_2, A__FROM_1 Compound Symbols: c7_2, c10_1, c11_1, c5_1, c6_1, c5_2, c6_2, c1_1, c3_1 ---------------------------------------- (141) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(from(z0)) -> c7(A__FROM(mark(z0)), MARK(z0)) by MARK(from(first(z0, z1))) -> c7(A__FROM(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(from(from(z0))) -> c7(A__FROM(a__from(mark(z0))), MARK(from(z0))) MARK(from(0)) -> c7(A__FROM(0), MARK(0)) MARK(from(nil)) -> c7(A__FROM(nil), MARK(nil)) MARK(from(s(z0))) -> c7(A__FROM(s(mark(z0))), MARK(s(z0))) MARK(from(cons(z0, z1))) -> c7(A__FROM(cons(mark(z0), z1)), MARK(cons(z0, z1))) ---------------------------------------- (142) Obligation: Complexity Dependency Tuples Problem Rules: a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(0) -> 0 mark(nil) -> nil mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(x0, from(x1))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), from(x1))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(first(x0, cons(from(z0), x2))) -> c5(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(s(z0), x2))) -> c5(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(first(first(z0, z1), cons(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(first(z0, z1))) MARK(first(from(z0), cons(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(first(s(z0), cons(x1, x2))) -> c5(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(s(z0))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(first(x0, first(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(first(x0, first(z0, z1)))) MARK(first(first(x0, from(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(first(x0, from(z0)))) MARK(first(first(x0, 0), x2)) -> c5(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(first(x0, 0))) MARK(first(first(x0, nil), x2)) -> c5(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(first(x0, nil))) MARK(first(first(x0, s(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(first(x0, s(z0)))) MARK(first(first(x0, cons(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(first(x0, cons(z0, z1)))) MARK(first(first(first(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(first(first(z0, z1), x1))) MARK(first(first(from(z0), x1), x2)) -> c5(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(first(from(z0), x1))) MARK(first(first(0, x1), x2)) -> c5(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(first(0, x1))) MARK(first(first(nil, x1), x2)) -> c5(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(first(nil, x1))) MARK(first(first(s(z0), x1), x2)) -> c5(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(first(s(z0), x1))) MARK(first(first(cons(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(first(cons(z0, z1), x1))) MARK(first(first(x0, x1), 0)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), nil)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), s(z0))) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), x2)) -> c5(MARK(first(x0, x1))) MARK(first(from(first(z0, z1)), x1)) -> c5(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(from(first(z0, z1)))) MARK(first(from(from(z0)), x1)) -> c5(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(first(from(0), x1)) -> c5(A__FIRST(a__from(0), mark(x1)), MARK(from(0))) MARK(first(from(nil), x1)) -> c5(A__FIRST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(first(from(s(z0)), x1)) -> c5(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(from(s(z0)))) MARK(first(from(cons(z0, z1)), x1)) -> c5(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(first(from(x0), x1)) -> c5(MARK(from(x0))) MARK(first(from(x0), 0)) -> c5(MARK(from(x0))) MARK(first(from(x0), nil)) -> c5(MARK(from(x0))) MARK(first(from(x0), s(z0))) -> c5(MARK(from(x0))) MARK(first(s(first(z0, z1)), x1)) -> c5(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(s(first(z0, z1)))) MARK(first(s(from(z0)), x1)) -> c5(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(s(from(z0)))) MARK(first(s(0), x1)) -> c5(A__FIRST(s(0), mark(x1)), MARK(s(0))) MARK(first(s(nil), x1)) -> c5(A__FIRST(s(nil), mark(x1)), MARK(s(nil))) MARK(first(s(s(z0)), x1)) -> c5(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(s(s(z0)))) MARK(first(s(cons(z0, z1)), x1)) -> c5(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(s(cons(z0, z1)))) MARK(first(s(x0), x1)) -> c5(MARK(s(x0))) MARK(first(s(x0), 0)) -> c5(MARK(s(x0))) MARK(first(s(x0), nil)) -> c5(MARK(s(x0))) MARK(first(s(x0), s(z0))) -> c5(MARK(s(x0))) MARK(first(x0, first(x1, first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(first(x1, first(z0, z1)))) MARK(first(x0, first(x1, from(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(first(x1, from(z0)))) MARK(first(x0, first(x1, 0))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(first(x1, 0))) MARK(first(x0, first(x1, nil))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(first(x1, nil))) MARK(first(x0, first(x1, s(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(first(x1, s(z0)))) MARK(first(x0, first(x1, cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(first(x1, cons(z0, z1)))) MARK(first(x0, first(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(first(first(z0, z1), x2))) MARK(first(x0, first(from(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(first(from(z0), x2))) MARK(first(x0, first(0, x2))) -> c6(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(first(0, x2))) MARK(first(x0, first(nil, x2))) -> c6(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(first(nil, x2))) MARK(first(x0, first(s(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(first(s(z0), x2))) MARK(first(x0, first(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(first(cons(z0, z1), x2))) MARK(first(first(z0, z1), first(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(from(z0), first(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(s(z0), first(x1, x2))) -> c6(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(x0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(nil, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(cons(z0, z1), first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(x0, from(x1))) -> c6(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(first(x0, from(first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(from(first(z0, z1)))) MARK(first(x0, from(from(z0)))) -> c6(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(first(x0, from(0))) -> c6(A__FIRST(mark(x0), a__from(0)), MARK(from(0))) MARK(first(x0, from(nil))) -> c6(A__FIRST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(first(x0, from(s(z0)))) -> c6(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(from(s(z0)))) MARK(first(x0, from(cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(first(first(z0, z1), from(x1))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(first(from(z0), from(x1))) -> c6(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(s(z0), from(x1))) -> c6(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(x0, from(x1))) -> c6(MARK(from(x1))) MARK(first(0, from(x1))) -> c6(MARK(from(x1))) MARK(first(nil, from(x1))) -> c6(MARK(from(x1))) MARK(first(cons(z0, z1), from(x1))) -> c6(MARK(from(x1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(cons(first(z0, z1), x2))) MARK(first(x0, cons(from(z0), x2))) -> c6(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(first(x0, cons(s(z0), x2))) -> c6(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(cons(s(z0), x2))) MARK(first(x0, cons(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(first(first(z0, z1), cons(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(from(z0), cons(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(s(z0), cons(x1, x2))) -> c6(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(x0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(nil, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(first(x0, first(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(first(first(x0, from(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, 0), x2)) -> c6(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(x2)) MARK(first(first(x0, nil), x2)) -> c6(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(x2)) MARK(first(first(x0, s(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, cons(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(first(first(first(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(from(z0), x1), x2)) -> c6(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(0, x1), x2)) -> c6(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(nil, x1), x2)) -> c6(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(s(z0), x1), x2)) -> c6(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(cons(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(x0, x1), s(z0))) -> c6(MARK(s(z0))) MARK(first(first(x0, x1), x2)) -> c6(MARK(x2)) MARK(first(from(first(z0, z1)), x1)) -> c6(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(first(from(from(z0)), x1)) -> c6(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(first(from(0), x1)) -> c6(A__FIRST(a__from(0), mark(x1)), MARK(x1)) MARK(first(from(nil), x1)) -> c6(A__FIRST(a__from(nil), mark(x1)), MARK(x1)) MARK(first(from(s(z0)), x1)) -> c6(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(x1)) MARK(first(from(cons(z0, z1)), x1)) -> c6(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(first(from(x0), s(z0))) -> c6(MARK(s(z0))) MARK(first(from(x0), x1)) -> c6(MARK(x1)) MARK(first(s(first(z0, z1)), x1)) -> c6(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(first(s(from(z0)), x1)) -> c6(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(first(s(0), x1)) -> c6(A__FIRST(s(0), mark(x1)), MARK(x1)) MARK(first(s(nil), x1)) -> c6(A__FIRST(s(nil), mark(x1)), MARK(x1)) MARK(first(s(s(z0)), x1)) -> c6(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(x1)) MARK(first(s(cons(z0, z1)), x1)) -> c6(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(first(s(x0), s(z0))) -> c6(MARK(s(z0))) A__FIRST(s(z0), cons(from(y0), z2)) -> c1(MARK(from(y0))) A__FIRST(s(z0), cons(s(y0), z2)) -> c1(MARK(s(y0))) A__FIRST(s(z0), cons(cons(y0, y1), z2)) -> c1(MARK(cons(y0, y1))) A__FIRST(s(z0), cons(first(y0, 0), z2)) -> c1(MARK(first(y0, 0))) A__FIRST(s(z0), cons(first(y0, nil), z2)) -> c1(MARK(first(y0, nil))) A__FIRST(s(z0), cons(first(y0, s(y1)), z2)) -> c1(MARK(first(y0, s(y1)))) A__FIRST(s(z0), cons(first(cons(y0, y1), y2), z2)) -> c1(MARK(first(cons(y0, y1), y2))) A__FIRST(s(z0), cons(first(0, y0), z2)) -> c1(MARK(first(0, y0))) A__FIRST(s(z0), cons(first(nil, y0), z2)) -> c1(MARK(first(nil, y0))) A__FIRST(s(z0), cons(first(y0, first(y1, first(y2, y3))), z2)) -> c1(MARK(first(y0, first(y1, first(y2, y3))))) A__FIRST(s(z0), cons(first(y0, first(y1, from(y2))), z2)) -> c1(MARK(first(y0, first(y1, from(y2))))) A__FIRST(s(z0), cons(first(y0, first(y1, 0)), z2)) -> c1(MARK(first(y0, first(y1, 0)))) A__FIRST(s(z0), cons(first(y0, first(y1, nil)), z2)) -> c1(MARK(first(y0, first(y1, nil)))) A__FIRST(s(z0), cons(first(y0, first(y1, s(y2))), z2)) -> c1(MARK(first(y0, first(y1, s(y2))))) A__FIRST(s(z0), cons(first(y0, first(y1, cons(y2, y3))), z2)) -> c1(MARK(first(y0, first(y1, cons(y2, y3))))) A__FIRST(s(z0), cons(first(y0, first(first(y1, y2), y3)), z2)) -> c1(MARK(first(y0, first(first(y1, y2), y3)))) A__FIRST(s(z0), cons(first(y0, first(from(y1), y2)), z2)) -> c1(MARK(first(y0, first(from(y1), y2)))) A__FIRST(s(z0), cons(first(y0, first(0, y1)), z2)) -> c1(MARK(first(y0, first(0, y1)))) A__FIRST(s(z0), cons(first(y0, first(nil, y1)), z2)) -> c1(MARK(first(y0, first(nil, y1)))) A__FIRST(s(z0), cons(first(y0, first(s(y1), y2)), z2)) -> c1(MARK(first(y0, first(s(y1), y2)))) A__FIRST(s(z0), cons(first(y0, first(cons(y1, y2), y3)), z2)) -> c1(MARK(first(y0, first(cons(y1, y2), y3)))) A__FIRST(s(z0), cons(first(first(y0, y1), first(y2, y3)), z2)) -> c1(MARK(first(first(y0, y1), first(y2, y3)))) A__FIRST(s(z0), cons(first(from(y0), first(y1, y2)), z2)) -> c1(MARK(first(from(y0), first(y1, y2)))) A__FIRST(s(z0), cons(first(s(y0), first(y1, y2)), z2)) -> c1(MARK(first(s(y0), first(y1, y2)))) A__FIRST(s(z0), cons(first(y0, first(y1, y2)), z2)) -> c1(MARK(first(y0, first(y1, y2)))) A__FIRST(s(z0), cons(first(cons(y0, y1), first(y2, y3)), z2)) -> c1(MARK(first(cons(y0, y1), first(y2, y3)))) A__FIRST(s(z0), cons(first(y0, from(y1)), z2)) -> c1(MARK(first(y0, from(y1)))) A__FIRST(s(z0), cons(first(y0, from(first(y1, y2))), z2)) -> c1(MARK(first(y0, from(first(y1, y2))))) A__FIRST(s(z0), cons(first(y0, from(from(y1))), z2)) -> c1(MARK(first(y0, from(from(y1))))) A__FIRST(s(z0), cons(first(y0, from(0)), z2)) -> c1(MARK(first(y0, from(0)))) A__FIRST(s(z0), cons(first(y0, from(nil)), z2)) -> c1(MARK(first(y0, from(nil)))) A__FIRST(s(z0), cons(first(y0, from(s(y1))), z2)) -> c1(MARK(first(y0, from(s(y1))))) A__FIRST(s(z0), cons(first(y0, from(cons(y1, y2))), z2)) -> c1(MARK(first(y0, from(cons(y1, y2))))) A__FIRST(s(z0), cons(first(first(y0, y1), from(y2)), z2)) -> c1(MARK(first(first(y0, y1), from(y2)))) A__FIRST(s(z0), cons(first(from(y0), from(y1)), z2)) -> c1(MARK(first(from(y0), from(y1)))) A__FIRST(s(z0), cons(first(s(y0), from(y1)), z2)) -> c1(MARK(first(s(y0), from(y1)))) A__FIRST(s(z0), cons(first(cons(y0, y1), from(y2)), z2)) -> c1(MARK(first(cons(y0, y1), from(y2)))) A__FIRST(s(z0), cons(first(y0, cons(first(y1, y2), y3)), z2)) -> c1(MARK(first(y0, cons(first(y1, y2), y3)))) A__FIRST(s(z0), cons(first(y0, cons(from(y1), y2)), z2)) -> c1(MARK(first(y0, cons(from(y1), y2)))) A__FIRST(s(z0), cons(first(y0, cons(0, y1)), z2)) -> c1(MARK(first(y0, cons(0, y1)))) A__FIRST(s(z0), cons(first(y0, cons(nil, y1)), z2)) -> c1(MARK(first(y0, cons(nil, y1)))) A__FIRST(s(z0), cons(first(y0, cons(s(y1), y2)), z2)) -> c1(MARK(first(y0, cons(s(y1), y2)))) A__FIRST(s(z0), cons(first(y0, cons(cons(y1, y2), y3)), z2)) -> c1(MARK(first(y0, cons(cons(y1, y2), y3)))) A__FIRST(s(z0), cons(first(first(y0, y1), cons(y2, y3)), z2)) -> c1(MARK(first(first(y0, y1), cons(y2, y3)))) A__FIRST(s(z0), cons(first(from(y0), cons(y1, y2)), z2)) -> c1(MARK(first(from(y0), cons(y1, y2)))) A__FIRST(s(z0), cons(first(s(y0), cons(y1, y2)), z2)) -> c1(MARK(first(s(y0), cons(y1, y2)))) A__FIRST(s(z0), cons(first(cons(y0, y1), cons(y2, y3)), z2)) -> c1(MARK(first(cons(y0, y1), cons(y2, y3)))) A__FIRST(s(z0), cons(first(first(y0, first(y1, y2)), y3), z2)) -> c1(MARK(first(first(y0, first(y1, y2)), y3))) A__FIRST(s(z0), cons(first(first(y0, from(y1)), y2), z2)) -> c1(MARK(first(first(y0, from(y1)), y2))) A__FIRST(s(z0), cons(first(first(y0, 0), y1), z2)) -> c1(MARK(first(first(y0, 0), y1))) A__FIRST(s(z0), cons(first(first(y0, nil), y1), z2)) -> c1(MARK(first(first(y0, nil), y1))) A__FIRST(s(z0), cons(first(first(y0, s(y1)), y2), z2)) -> c1(MARK(first(first(y0, s(y1)), y2))) A__FIRST(s(z0), cons(first(first(y0, cons(y1, y2)), y3), z2)) -> c1(MARK(first(first(y0, cons(y1, y2)), y3))) A__FIRST(s(z0), cons(first(first(first(y0, y1), y2), y3), z2)) -> c1(MARK(first(first(first(y0, y1), y2), y3))) A__FIRST(s(z0), cons(first(first(from(y0), y1), y2), z2)) -> c1(MARK(first(first(from(y0), y1), y2))) A__FIRST(s(z0), cons(first(first(0, y0), y1), z2)) -> c1(MARK(first(first(0, y0), y1))) A__FIRST(s(z0), cons(first(first(nil, y0), y1), z2)) -> c1(MARK(first(first(nil, y0), y1))) A__FIRST(s(z0), cons(first(first(s(y0), y1), y2), z2)) -> c1(MARK(first(first(s(y0), y1), y2))) A__FIRST(s(z0), cons(first(first(cons(y0, y1), y2), y3), z2)) -> c1(MARK(first(first(cons(y0, y1), y2), y3))) A__FIRST(s(z0), cons(first(first(y0, y1), 0), z2)) -> c1(MARK(first(first(y0, y1), 0))) A__FIRST(s(z0), cons(first(first(y0, y1), nil), z2)) -> c1(MARK(first(first(y0, y1), nil))) A__FIRST(s(z0), cons(first(first(y0, y1), s(y2)), z2)) -> c1(MARK(first(first(y0, y1), s(y2)))) A__FIRST(s(z0), cons(first(first(y0, y1), y2), z2)) -> c1(MARK(first(first(y0, y1), y2))) A__FIRST(s(z0), cons(first(from(first(y0, y1)), y2), z2)) -> c1(MARK(first(from(first(y0, y1)), y2))) A__FIRST(s(z0), cons(first(from(from(y0)), y1), z2)) -> c1(MARK(first(from(from(y0)), y1))) A__FIRST(s(z0), cons(first(from(0), y0), z2)) -> c1(MARK(first(from(0), y0))) A__FIRST(s(z0), cons(first(from(nil), y0), z2)) -> c1(MARK(first(from(nil), y0))) A__FIRST(s(z0), cons(first(from(s(y0)), y1), z2)) -> c1(MARK(first(from(s(y0)), y1))) A__FIRST(s(z0), cons(first(from(cons(y0, y1)), y2), z2)) -> c1(MARK(first(from(cons(y0, y1)), y2))) A__FIRST(s(z0), cons(first(from(y0), y1), z2)) -> c1(MARK(first(from(y0), y1))) A__FIRST(s(z0), cons(first(from(y0), 0), z2)) -> c1(MARK(first(from(y0), 0))) A__FIRST(s(z0), cons(first(from(y0), nil), z2)) -> c1(MARK(first(from(y0), nil))) A__FIRST(s(z0), cons(first(from(y0), s(y1)), z2)) -> c1(MARK(first(from(y0), s(y1)))) A__FIRST(s(z0), cons(first(s(first(y0, y1)), y2), z2)) -> c1(MARK(first(s(first(y0, y1)), y2))) A__FIRST(s(z0), cons(first(s(from(y0)), y1), z2)) -> c1(MARK(first(s(from(y0)), y1))) A__FIRST(s(z0), cons(first(s(0), y0), z2)) -> c1(MARK(first(s(0), y0))) A__FIRST(s(z0), cons(first(s(nil), y0), z2)) -> c1(MARK(first(s(nil), y0))) A__FIRST(s(z0), cons(first(s(s(y0)), y1), z2)) -> c1(MARK(first(s(s(y0)), y1))) A__FIRST(s(z0), cons(first(s(cons(y0, y1)), y2), z2)) -> c1(MARK(first(s(cons(y0, y1)), y2))) A__FIRST(s(z0), cons(first(s(y0), y1), z2)) -> c1(MARK(first(s(y0), y1))) A__FIRST(s(z0), cons(first(s(y0), 0), z2)) -> c1(MARK(first(s(y0), 0))) A__FIRST(s(z0), cons(first(s(y0), nil), z2)) -> c1(MARK(first(s(y0), nil))) A__FIRST(s(z0), cons(first(s(y0), s(y1)), z2)) -> c1(MARK(first(s(y0), s(y1)))) A__FIRST(s(z0), cons(first(0, first(y0, y1)), z2)) -> c1(MARK(first(0, first(y0, y1)))) A__FIRST(s(z0), cons(first(nil, first(y0, y1)), z2)) -> c1(MARK(first(nil, first(y0, y1)))) A__FIRST(s(z0), cons(first(0, from(y0)), z2)) -> c1(MARK(first(0, from(y0)))) A__FIRST(s(z0), cons(first(nil, from(y0)), z2)) -> c1(MARK(first(nil, from(y0)))) A__FIRST(s(z0), cons(first(y0, cons(y1, y2)), z2)) -> c1(MARK(first(y0, cons(y1, y2)))) A__FIRST(s(z0), cons(first(0, cons(y0, y1)), z2)) -> c1(MARK(first(0, cons(y0, y1)))) A__FIRST(s(z0), cons(first(nil, cons(y0, y1)), z2)) -> c1(MARK(first(nil, cons(y0, y1)))) MARK(first(x0, cons(0, x2))) -> c5(MARK(x0)) MARK(first(x0, cons(nil, x2))) -> c5(MARK(x0)) MARK(first(x0, cons(0, x2))) -> c6(MARK(cons(0, x2))) MARK(first(x0, cons(nil, x2))) -> c6(MARK(cons(nil, x2))) A__FROM(from(y0)) -> c3(MARK(from(y0))) A__FROM(s(y0)) -> c3(MARK(s(y0))) A__FROM(cons(y0, y1)) -> c3(MARK(cons(y0, y1))) A__FROM(first(y0, 0)) -> c3(MARK(first(y0, 0))) A__FROM(first(y0, nil)) -> c3(MARK(first(y0, nil))) A__FROM(first(y0, s(y1))) -> c3(MARK(first(y0, s(y1)))) A__FROM(first(cons(y0, y1), y2)) -> c3(MARK(first(cons(y0, y1), y2))) A__FROM(first(0, y0)) -> c3(MARK(first(0, y0))) A__FROM(first(nil, y0)) -> c3(MARK(first(nil, y0))) A__FROM(first(y0, first(y1, first(y2, y3)))) -> c3(MARK(first(y0, first(y1, first(y2, y3))))) A__FROM(first(y0, first(y1, from(y2)))) -> c3(MARK(first(y0, first(y1, from(y2))))) A__FROM(first(y0, first(y1, 0))) -> c3(MARK(first(y0, first(y1, 0)))) A__FROM(first(y0, first(y1, nil))) -> c3(MARK(first(y0, first(y1, nil)))) A__FROM(first(y0, first(y1, s(y2)))) -> c3(MARK(first(y0, first(y1, s(y2))))) A__FROM(first(y0, first(y1, cons(y2, y3)))) -> c3(MARK(first(y0, first(y1, cons(y2, y3))))) A__FROM(first(y0, first(first(y1, y2), y3))) -> c3(MARK(first(y0, first(first(y1, y2), y3)))) A__FROM(first(y0, first(from(y1), y2))) -> c3(MARK(first(y0, first(from(y1), y2)))) A__FROM(first(y0, first(0, y1))) -> c3(MARK(first(y0, first(0, y1)))) A__FROM(first(y0, first(nil, y1))) -> c3(MARK(first(y0, first(nil, y1)))) A__FROM(first(y0, first(s(y1), y2))) -> c3(MARK(first(y0, first(s(y1), y2)))) A__FROM(first(y0, first(cons(y1, y2), y3))) -> c3(MARK(first(y0, first(cons(y1, y2), y3)))) A__FROM(first(first(y0, y1), first(y2, y3))) -> c3(MARK(first(first(y0, y1), first(y2, y3)))) A__FROM(first(from(y0), first(y1, y2))) -> c3(MARK(first(from(y0), first(y1, y2)))) A__FROM(first(s(y0), first(y1, y2))) -> c3(MARK(first(s(y0), first(y1, y2)))) A__FROM(first(y0, first(y1, y2))) -> c3(MARK(first(y0, first(y1, y2)))) A__FROM(first(cons(y0, y1), first(y2, y3))) -> c3(MARK(first(cons(y0, y1), first(y2, y3)))) A__FROM(first(y0, from(y1))) -> c3(MARK(first(y0, from(y1)))) A__FROM(first(y0, from(first(y1, y2)))) -> c3(MARK(first(y0, from(first(y1, y2))))) A__FROM(first(y0, from(from(y1)))) -> c3(MARK(first(y0, from(from(y1))))) A__FROM(first(y0, from(0))) -> c3(MARK(first(y0, from(0)))) A__FROM(first(y0, from(nil))) -> c3(MARK(first(y0, from(nil)))) A__FROM(first(y0, from(s(y1)))) -> c3(MARK(first(y0, from(s(y1))))) A__FROM(first(y0, from(cons(y1, y2)))) -> c3(MARK(first(y0, from(cons(y1, y2))))) A__FROM(first(first(y0, y1), from(y2))) -> c3(MARK(first(first(y0, y1), from(y2)))) A__FROM(first(from(y0), from(y1))) -> c3(MARK(first(from(y0), from(y1)))) A__FROM(first(s(y0), from(y1))) -> c3(MARK(first(s(y0), from(y1)))) A__FROM(first(cons(y0, y1), from(y2))) -> c3(MARK(first(cons(y0, y1), from(y2)))) A__FROM(first(y0, cons(first(y1, y2), y3))) -> c3(MARK(first(y0, cons(first(y1, y2), y3)))) A__FROM(first(y0, cons(from(y1), y2))) -> c3(MARK(first(y0, cons(from(y1), y2)))) A__FROM(first(y0, cons(s(y1), y2))) -> c3(MARK(first(y0, cons(s(y1), y2)))) A__FROM(first(y0, cons(cons(y1, y2), y3))) -> c3(MARK(first(y0, cons(cons(y1, y2), y3)))) A__FROM(first(first(y0, y1), cons(y2, y3))) -> c3(MARK(first(first(y0, y1), cons(y2, y3)))) A__FROM(first(from(y0), cons(y1, y2))) -> c3(MARK(first(from(y0), cons(y1, y2)))) A__FROM(first(s(y0), cons(y1, y2))) -> c3(MARK(first(s(y0), cons(y1, y2)))) A__FROM(first(cons(y0, y1), cons(y2, y3))) -> c3(MARK(first(cons(y0, y1), cons(y2, y3)))) A__FROM(first(first(y0, first(y1, y2)), y3)) -> c3(MARK(first(first(y0, first(y1, y2)), y3))) A__FROM(first(first(y0, from(y1)), y2)) -> c3(MARK(first(first(y0, from(y1)), y2))) A__FROM(first(first(y0, 0), y1)) -> c3(MARK(first(first(y0, 0), y1))) A__FROM(first(first(y0, nil), y1)) -> c3(MARK(first(first(y0, nil), y1))) A__FROM(first(first(y0, s(y1)), y2)) -> c3(MARK(first(first(y0, s(y1)), y2))) A__FROM(first(first(y0, cons(y1, y2)), y3)) -> c3(MARK(first(first(y0, cons(y1, y2)), y3))) A__FROM(first(first(first(y0, y1), y2), y3)) -> c3(MARK(first(first(first(y0, y1), y2), y3))) A__FROM(first(first(from(y0), y1), y2)) -> c3(MARK(first(first(from(y0), y1), y2))) A__FROM(first(first(0, y0), y1)) -> c3(MARK(first(first(0, y0), y1))) A__FROM(first(first(nil, y0), y1)) -> c3(MARK(first(first(nil, y0), y1))) A__FROM(first(first(s(y0), y1), y2)) -> c3(MARK(first(first(s(y0), y1), y2))) A__FROM(first(first(cons(y0, y1), y2), y3)) -> c3(MARK(first(first(cons(y0, y1), y2), y3))) A__FROM(first(first(y0, y1), 0)) -> c3(MARK(first(first(y0, y1), 0))) A__FROM(first(first(y0, y1), nil)) -> c3(MARK(first(first(y0, y1), nil))) A__FROM(first(first(y0, y1), s(y2))) -> c3(MARK(first(first(y0, y1), s(y2)))) A__FROM(first(first(y0, y1), y2)) -> c3(MARK(first(first(y0, y1), y2))) A__FROM(first(from(first(y0, y1)), y2)) -> c3(MARK(first(from(first(y0, y1)), y2))) A__FROM(first(from(from(y0)), y1)) -> c3(MARK(first(from(from(y0)), y1))) A__FROM(first(from(0), y0)) -> c3(MARK(first(from(0), y0))) A__FROM(first(from(nil), y0)) -> c3(MARK(first(from(nil), y0))) A__FROM(first(from(s(y0)), y1)) -> c3(MARK(first(from(s(y0)), y1))) A__FROM(first(from(cons(y0, y1)), y2)) -> c3(MARK(first(from(cons(y0, y1)), y2))) A__FROM(first(from(y0), y1)) -> c3(MARK(first(from(y0), y1))) A__FROM(first(from(y0), 0)) -> c3(MARK(first(from(y0), 0))) A__FROM(first(from(y0), nil)) -> c3(MARK(first(from(y0), nil))) A__FROM(first(from(y0), s(y1))) -> c3(MARK(first(from(y0), s(y1)))) A__FROM(first(s(first(y0, y1)), y2)) -> c3(MARK(first(s(first(y0, y1)), y2))) A__FROM(first(s(from(y0)), y1)) -> c3(MARK(first(s(from(y0)), y1))) A__FROM(first(s(0), y0)) -> c3(MARK(first(s(0), y0))) A__FROM(first(s(nil), y0)) -> c3(MARK(first(s(nil), y0))) A__FROM(first(s(s(y0)), y1)) -> c3(MARK(first(s(s(y0)), y1))) A__FROM(first(s(cons(y0, y1)), y2)) -> c3(MARK(first(s(cons(y0, y1)), y2))) A__FROM(first(s(y0), y1)) -> c3(MARK(first(s(y0), y1))) A__FROM(first(s(y0), 0)) -> c3(MARK(first(s(y0), 0))) A__FROM(first(s(y0), nil)) -> c3(MARK(first(s(y0), nil))) A__FROM(first(s(y0), s(y1))) -> c3(MARK(first(s(y0), s(y1)))) A__FROM(first(0, first(y0, y1))) -> c3(MARK(first(0, first(y0, y1)))) A__FROM(first(nil, first(y0, y1))) -> c3(MARK(first(nil, first(y0, y1)))) A__FROM(first(0, from(y0))) -> c3(MARK(first(0, from(y0)))) A__FROM(first(nil, from(y0))) -> c3(MARK(first(nil, from(y0)))) A__FROM(first(y0, cons(y1, y2))) -> c3(MARK(first(y0, cons(y1, y2)))) A__FROM(first(0, cons(y0, y1))) -> c3(MARK(first(0, cons(y0, y1)))) A__FROM(first(nil, cons(y0, y1))) -> c3(MARK(first(nil, cons(y0, y1)))) A__FROM(first(y0, cons(0, y1))) -> c3(MARK(first(y0, cons(0, y1)))) A__FROM(first(y0, cons(nil, y1))) -> c3(MARK(first(y0, cons(nil, y1)))) MARK(from(first(z0, z1))) -> c7(A__FROM(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(from(from(z0))) -> c7(A__FROM(a__from(mark(z0))), MARK(from(z0))) MARK(from(0)) -> c7(A__FROM(0), MARK(0)) MARK(from(nil)) -> c7(A__FROM(nil), MARK(nil)) MARK(from(s(z0))) -> c7(A__FROM(s(mark(z0))), MARK(s(z0))) MARK(from(cons(z0, z1))) -> c7(A__FROM(cons(mark(z0), z1)), MARK(cons(z0, z1))) S tuples: MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(x0, from(x1))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), from(x1))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(first(x0, cons(from(z0), x2))) -> c5(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(s(z0), x2))) -> c5(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(first(first(z0, z1), cons(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(first(z0, z1))) MARK(first(from(z0), cons(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(first(s(z0), cons(x1, x2))) -> c5(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(s(z0))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(first(x0, first(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(first(x0, first(z0, z1)))) MARK(first(first(x0, from(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(first(x0, from(z0)))) MARK(first(first(x0, 0), x2)) -> c5(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(first(x0, 0))) MARK(first(first(x0, nil), x2)) -> c5(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(first(x0, nil))) MARK(first(first(x0, s(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(first(x0, s(z0)))) MARK(first(first(x0, cons(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(first(x0, cons(z0, z1)))) MARK(first(first(first(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(first(first(z0, z1), x1))) MARK(first(first(from(z0), x1), x2)) -> c5(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(first(from(z0), x1))) MARK(first(first(0, x1), x2)) -> c5(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(first(0, x1))) MARK(first(first(nil, x1), x2)) -> c5(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(first(nil, x1))) MARK(first(first(s(z0), x1), x2)) -> c5(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(first(s(z0), x1))) MARK(first(first(cons(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(first(cons(z0, z1), x1))) MARK(first(first(x0, x1), 0)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), nil)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), s(z0))) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), x2)) -> c5(MARK(first(x0, x1))) MARK(first(from(first(z0, z1)), x1)) -> c5(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(from(first(z0, z1)))) MARK(first(from(from(z0)), x1)) -> c5(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(first(from(0), x1)) -> c5(A__FIRST(a__from(0), mark(x1)), MARK(from(0))) MARK(first(from(nil), x1)) -> c5(A__FIRST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(first(from(s(z0)), x1)) -> c5(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(from(s(z0)))) MARK(first(from(cons(z0, z1)), x1)) -> c5(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(first(from(x0), x1)) -> c5(MARK(from(x0))) MARK(first(from(x0), 0)) -> c5(MARK(from(x0))) MARK(first(from(x0), nil)) -> c5(MARK(from(x0))) MARK(first(from(x0), s(z0))) -> c5(MARK(from(x0))) MARK(first(s(first(z0, z1)), x1)) -> c5(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(s(first(z0, z1)))) MARK(first(s(from(z0)), x1)) -> c5(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(s(from(z0)))) MARK(first(s(0), x1)) -> c5(A__FIRST(s(0), mark(x1)), MARK(s(0))) MARK(first(s(nil), x1)) -> c5(A__FIRST(s(nil), mark(x1)), MARK(s(nil))) MARK(first(s(s(z0)), x1)) -> c5(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(s(s(z0)))) MARK(first(s(cons(z0, z1)), x1)) -> c5(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(s(cons(z0, z1)))) MARK(first(s(x0), x1)) -> c5(MARK(s(x0))) MARK(first(s(x0), 0)) -> c5(MARK(s(x0))) MARK(first(s(x0), nil)) -> c5(MARK(s(x0))) MARK(first(s(x0), s(z0))) -> c5(MARK(s(x0))) MARK(first(x0, first(x1, first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(first(x1, first(z0, z1)))) MARK(first(x0, first(x1, from(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(first(x1, from(z0)))) MARK(first(x0, first(x1, 0))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(first(x1, 0))) MARK(first(x0, first(x1, nil))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(first(x1, nil))) MARK(first(x0, first(x1, s(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(first(x1, s(z0)))) MARK(first(x0, first(x1, cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(first(x1, cons(z0, z1)))) MARK(first(x0, first(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(first(first(z0, z1), x2))) MARK(first(x0, first(from(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(first(from(z0), x2))) MARK(first(x0, first(0, x2))) -> c6(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(first(0, x2))) MARK(first(x0, first(nil, x2))) -> c6(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(first(nil, x2))) MARK(first(x0, first(s(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(first(s(z0), x2))) MARK(first(x0, first(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(first(cons(z0, z1), x2))) MARK(first(first(z0, z1), first(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(from(z0), first(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(s(z0), first(x1, x2))) -> c6(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(x0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(nil, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(cons(z0, z1), first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(x0, from(x1))) -> c6(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(first(x0, from(first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(from(first(z0, z1)))) MARK(first(x0, from(from(z0)))) -> c6(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(first(x0, from(0))) -> c6(A__FIRST(mark(x0), a__from(0)), MARK(from(0))) MARK(first(x0, from(nil))) -> c6(A__FIRST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(first(x0, from(s(z0)))) -> c6(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(from(s(z0)))) MARK(first(x0, from(cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(first(first(z0, z1), from(x1))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(first(from(z0), from(x1))) -> c6(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(s(z0), from(x1))) -> c6(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(x0, from(x1))) -> c6(MARK(from(x1))) MARK(first(0, from(x1))) -> c6(MARK(from(x1))) MARK(first(nil, from(x1))) -> c6(MARK(from(x1))) MARK(first(cons(z0, z1), from(x1))) -> c6(MARK(from(x1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(cons(first(z0, z1), x2))) MARK(first(x0, cons(from(z0), x2))) -> c6(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(first(x0, cons(s(z0), x2))) -> c6(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(cons(s(z0), x2))) MARK(first(x0, cons(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(first(first(z0, z1), cons(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(from(z0), cons(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(s(z0), cons(x1, x2))) -> c6(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(x0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(nil, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(first(x0, first(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(first(first(x0, from(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, 0), x2)) -> c6(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(x2)) MARK(first(first(x0, nil), x2)) -> c6(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(x2)) MARK(first(first(x0, s(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, cons(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(first(first(first(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(from(z0), x1), x2)) -> c6(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(0, x1), x2)) -> c6(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(nil, x1), x2)) -> c6(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(s(z0), x1), x2)) -> c6(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(cons(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(x0, x1), s(z0))) -> c6(MARK(s(z0))) MARK(first(first(x0, x1), x2)) -> c6(MARK(x2)) MARK(first(from(first(z0, z1)), x1)) -> c6(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(first(from(from(z0)), x1)) -> c6(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(first(from(0), x1)) -> c6(A__FIRST(a__from(0), mark(x1)), MARK(x1)) MARK(first(from(nil), x1)) -> c6(A__FIRST(a__from(nil), mark(x1)), MARK(x1)) MARK(first(from(s(z0)), x1)) -> c6(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(x1)) MARK(first(from(cons(z0, z1)), x1)) -> c6(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(first(from(x0), s(z0))) -> c6(MARK(s(z0))) MARK(first(from(x0), x1)) -> c6(MARK(x1)) MARK(first(s(first(z0, z1)), x1)) -> c6(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(first(s(from(z0)), x1)) -> c6(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(first(s(0), x1)) -> c6(A__FIRST(s(0), mark(x1)), MARK(x1)) MARK(first(s(nil), x1)) -> c6(A__FIRST(s(nil), mark(x1)), MARK(x1)) MARK(first(s(s(z0)), x1)) -> c6(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(x1)) MARK(first(s(cons(z0, z1)), x1)) -> c6(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(first(s(x0), s(z0))) -> c6(MARK(s(z0))) A__FIRST(s(z0), cons(from(y0), z2)) -> c1(MARK(from(y0))) A__FIRST(s(z0), cons(s(y0), z2)) -> c1(MARK(s(y0))) A__FIRST(s(z0), cons(cons(y0, y1), z2)) -> c1(MARK(cons(y0, y1))) A__FIRST(s(z0), cons(first(y0, 0), z2)) -> c1(MARK(first(y0, 0))) A__FIRST(s(z0), cons(first(y0, nil), z2)) -> c1(MARK(first(y0, nil))) A__FIRST(s(z0), cons(first(y0, s(y1)), z2)) -> c1(MARK(first(y0, s(y1)))) A__FIRST(s(z0), cons(first(cons(y0, y1), y2), z2)) -> c1(MARK(first(cons(y0, y1), y2))) A__FIRST(s(z0), cons(first(0, y0), z2)) -> c1(MARK(first(0, y0))) A__FIRST(s(z0), cons(first(nil, y0), z2)) -> c1(MARK(first(nil, y0))) A__FIRST(s(z0), cons(first(y0, first(y1, first(y2, y3))), z2)) -> c1(MARK(first(y0, first(y1, first(y2, y3))))) A__FIRST(s(z0), cons(first(y0, first(y1, from(y2))), z2)) -> c1(MARK(first(y0, first(y1, from(y2))))) A__FIRST(s(z0), cons(first(y0, first(y1, 0)), z2)) -> c1(MARK(first(y0, first(y1, 0)))) A__FIRST(s(z0), cons(first(y0, first(y1, nil)), z2)) -> c1(MARK(first(y0, first(y1, nil)))) A__FIRST(s(z0), cons(first(y0, first(y1, s(y2))), z2)) -> c1(MARK(first(y0, first(y1, s(y2))))) A__FIRST(s(z0), cons(first(y0, first(y1, cons(y2, y3))), z2)) -> c1(MARK(first(y0, first(y1, cons(y2, y3))))) A__FIRST(s(z0), cons(first(y0, first(first(y1, y2), y3)), z2)) -> c1(MARK(first(y0, first(first(y1, y2), y3)))) A__FIRST(s(z0), cons(first(y0, first(from(y1), y2)), z2)) -> c1(MARK(first(y0, first(from(y1), y2)))) A__FIRST(s(z0), cons(first(y0, first(0, y1)), z2)) -> c1(MARK(first(y0, first(0, y1)))) A__FIRST(s(z0), cons(first(y0, first(nil, y1)), z2)) -> c1(MARK(first(y0, first(nil, y1)))) A__FIRST(s(z0), cons(first(y0, first(s(y1), y2)), z2)) -> c1(MARK(first(y0, first(s(y1), y2)))) A__FIRST(s(z0), cons(first(y0, first(cons(y1, y2), y3)), z2)) -> c1(MARK(first(y0, first(cons(y1, y2), y3)))) A__FIRST(s(z0), cons(first(first(y0, y1), first(y2, y3)), z2)) -> c1(MARK(first(first(y0, y1), first(y2, y3)))) A__FIRST(s(z0), cons(first(from(y0), first(y1, y2)), z2)) -> c1(MARK(first(from(y0), first(y1, y2)))) A__FIRST(s(z0), cons(first(s(y0), first(y1, y2)), z2)) -> c1(MARK(first(s(y0), first(y1, y2)))) A__FIRST(s(z0), cons(first(y0, first(y1, y2)), z2)) -> c1(MARK(first(y0, first(y1, y2)))) A__FIRST(s(z0), cons(first(cons(y0, y1), first(y2, y3)), z2)) -> c1(MARK(first(cons(y0, y1), first(y2, y3)))) A__FIRST(s(z0), cons(first(y0, from(y1)), z2)) -> c1(MARK(first(y0, from(y1)))) A__FIRST(s(z0), cons(first(y0, from(first(y1, y2))), z2)) -> c1(MARK(first(y0, from(first(y1, y2))))) A__FIRST(s(z0), cons(first(y0, from(from(y1))), z2)) -> c1(MARK(first(y0, from(from(y1))))) A__FIRST(s(z0), cons(first(y0, from(0)), z2)) -> c1(MARK(first(y0, from(0)))) A__FIRST(s(z0), cons(first(y0, from(nil)), z2)) -> c1(MARK(first(y0, from(nil)))) A__FIRST(s(z0), cons(first(y0, from(s(y1))), z2)) -> c1(MARK(first(y0, from(s(y1))))) A__FIRST(s(z0), cons(first(y0, from(cons(y1, y2))), z2)) -> c1(MARK(first(y0, from(cons(y1, y2))))) A__FIRST(s(z0), cons(first(first(y0, y1), from(y2)), z2)) -> c1(MARK(first(first(y0, y1), from(y2)))) A__FIRST(s(z0), cons(first(from(y0), from(y1)), z2)) -> c1(MARK(first(from(y0), from(y1)))) A__FIRST(s(z0), cons(first(s(y0), from(y1)), z2)) -> c1(MARK(first(s(y0), from(y1)))) A__FIRST(s(z0), cons(first(cons(y0, y1), from(y2)), z2)) -> c1(MARK(first(cons(y0, y1), from(y2)))) A__FIRST(s(z0), cons(first(y0, cons(first(y1, y2), y3)), z2)) -> c1(MARK(first(y0, cons(first(y1, y2), y3)))) A__FIRST(s(z0), cons(first(y0, cons(from(y1), y2)), z2)) -> c1(MARK(first(y0, cons(from(y1), y2)))) A__FIRST(s(z0), cons(first(y0, cons(0, y1)), z2)) -> c1(MARK(first(y0, cons(0, y1)))) A__FIRST(s(z0), cons(first(y0, cons(nil, y1)), z2)) -> c1(MARK(first(y0, cons(nil, y1)))) A__FIRST(s(z0), cons(first(y0, cons(s(y1), y2)), z2)) -> c1(MARK(first(y0, cons(s(y1), y2)))) A__FIRST(s(z0), cons(first(y0, cons(cons(y1, y2), y3)), z2)) -> c1(MARK(first(y0, cons(cons(y1, y2), y3)))) A__FIRST(s(z0), cons(first(first(y0, y1), cons(y2, y3)), z2)) -> c1(MARK(first(first(y0, y1), cons(y2, y3)))) A__FIRST(s(z0), cons(first(from(y0), cons(y1, y2)), z2)) -> c1(MARK(first(from(y0), cons(y1, y2)))) A__FIRST(s(z0), cons(first(s(y0), cons(y1, y2)), z2)) -> c1(MARK(first(s(y0), cons(y1, y2)))) A__FIRST(s(z0), cons(first(cons(y0, y1), cons(y2, y3)), z2)) -> c1(MARK(first(cons(y0, y1), cons(y2, y3)))) A__FIRST(s(z0), cons(first(first(y0, first(y1, y2)), y3), z2)) -> c1(MARK(first(first(y0, first(y1, y2)), y3))) A__FIRST(s(z0), cons(first(first(y0, from(y1)), y2), z2)) -> c1(MARK(first(first(y0, from(y1)), y2))) A__FIRST(s(z0), cons(first(first(y0, 0), y1), z2)) -> c1(MARK(first(first(y0, 0), y1))) A__FIRST(s(z0), cons(first(first(y0, nil), y1), z2)) -> c1(MARK(first(first(y0, nil), y1))) A__FIRST(s(z0), cons(first(first(y0, s(y1)), y2), z2)) -> c1(MARK(first(first(y0, s(y1)), y2))) A__FIRST(s(z0), cons(first(first(y0, cons(y1, y2)), y3), z2)) -> c1(MARK(first(first(y0, cons(y1, y2)), y3))) A__FIRST(s(z0), cons(first(first(first(y0, y1), y2), y3), z2)) -> c1(MARK(first(first(first(y0, y1), y2), y3))) A__FIRST(s(z0), cons(first(first(from(y0), y1), y2), z2)) -> c1(MARK(first(first(from(y0), y1), y2))) A__FIRST(s(z0), cons(first(first(0, y0), y1), z2)) -> c1(MARK(first(first(0, y0), y1))) A__FIRST(s(z0), cons(first(first(nil, y0), y1), z2)) -> c1(MARK(first(first(nil, y0), y1))) A__FIRST(s(z0), cons(first(first(s(y0), y1), y2), z2)) -> c1(MARK(first(first(s(y0), y1), y2))) A__FIRST(s(z0), cons(first(first(cons(y0, y1), y2), y3), z2)) -> c1(MARK(first(first(cons(y0, y1), y2), y3))) A__FIRST(s(z0), cons(first(first(y0, y1), 0), z2)) -> c1(MARK(first(first(y0, y1), 0))) A__FIRST(s(z0), cons(first(first(y0, y1), nil), z2)) -> c1(MARK(first(first(y0, y1), nil))) A__FIRST(s(z0), cons(first(first(y0, y1), s(y2)), z2)) -> c1(MARK(first(first(y0, y1), s(y2)))) A__FIRST(s(z0), cons(first(first(y0, y1), y2), z2)) -> c1(MARK(first(first(y0, y1), y2))) A__FIRST(s(z0), cons(first(from(first(y0, y1)), y2), z2)) -> c1(MARK(first(from(first(y0, y1)), y2))) A__FIRST(s(z0), cons(first(from(from(y0)), y1), z2)) -> c1(MARK(first(from(from(y0)), y1))) A__FIRST(s(z0), cons(first(from(0), y0), z2)) -> c1(MARK(first(from(0), y0))) A__FIRST(s(z0), cons(first(from(nil), y0), z2)) -> c1(MARK(first(from(nil), y0))) A__FIRST(s(z0), cons(first(from(s(y0)), y1), z2)) -> c1(MARK(first(from(s(y0)), y1))) A__FIRST(s(z0), cons(first(from(cons(y0, y1)), y2), z2)) -> c1(MARK(first(from(cons(y0, y1)), y2))) A__FIRST(s(z0), cons(first(from(y0), y1), z2)) -> c1(MARK(first(from(y0), y1))) A__FIRST(s(z0), cons(first(from(y0), 0), z2)) -> c1(MARK(first(from(y0), 0))) A__FIRST(s(z0), cons(first(from(y0), nil), z2)) -> c1(MARK(first(from(y0), nil))) A__FIRST(s(z0), cons(first(from(y0), s(y1)), z2)) -> c1(MARK(first(from(y0), s(y1)))) A__FIRST(s(z0), cons(first(s(first(y0, y1)), y2), z2)) -> c1(MARK(first(s(first(y0, y1)), y2))) A__FIRST(s(z0), cons(first(s(from(y0)), y1), z2)) -> c1(MARK(first(s(from(y0)), y1))) A__FIRST(s(z0), cons(first(s(0), y0), z2)) -> c1(MARK(first(s(0), y0))) A__FIRST(s(z0), cons(first(s(nil), y0), z2)) -> c1(MARK(first(s(nil), y0))) A__FIRST(s(z0), cons(first(s(s(y0)), y1), z2)) -> c1(MARK(first(s(s(y0)), y1))) A__FIRST(s(z0), cons(first(s(cons(y0, y1)), y2), z2)) -> c1(MARK(first(s(cons(y0, y1)), y2))) A__FIRST(s(z0), cons(first(s(y0), y1), z2)) -> c1(MARK(first(s(y0), y1))) A__FIRST(s(z0), cons(first(s(y0), 0), z2)) -> c1(MARK(first(s(y0), 0))) A__FIRST(s(z0), cons(first(s(y0), nil), z2)) -> c1(MARK(first(s(y0), nil))) A__FIRST(s(z0), cons(first(s(y0), s(y1)), z2)) -> c1(MARK(first(s(y0), s(y1)))) A__FIRST(s(z0), cons(first(0, first(y0, y1)), z2)) -> c1(MARK(first(0, first(y0, y1)))) A__FIRST(s(z0), cons(first(nil, first(y0, y1)), z2)) -> c1(MARK(first(nil, first(y0, y1)))) A__FIRST(s(z0), cons(first(0, from(y0)), z2)) -> c1(MARK(first(0, from(y0)))) A__FIRST(s(z0), cons(first(nil, from(y0)), z2)) -> c1(MARK(first(nil, from(y0)))) A__FIRST(s(z0), cons(first(y0, cons(y1, y2)), z2)) -> c1(MARK(first(y0, cons(y1, y2)))) A__FIRST(s(z0), cons(first(0, cons(y0, y1)), z2)) -> c1(MARK(first(0, cons(y0, y1)))) A__FIRST(s(z0), cons(first(nil, cons(y0, y1)), z2)) -> c1(MARK(first(nil, cons(y0, y1)))) MARK(first(x0, cons(0, x2))) -> c5(MARK(x0)) MARK(first(x0, cons(nil, x2))) -> c5(MARK(x0)) MARK(first(x0, cons(0, x2))) -> c6(MARK(cons(0, x2))) MARK(first(x0, cons(nil, x2))) -> c6(MARK(cons(nil, x2))) A__FROM(from(y0)) -> c3(MARK(from(y0))) A__FROM(s(y0)) -> c3(MARK(s(y0))) A__FROM(cons(y0, y1)) -> c3(MARK(cons(y0, y1))) A__FROM(first(y0, 0)) -> c3(MARK(first(y0, 0))) A__FROM(first(y0, nil)) -> c3(MARK(first(y0, nil))) A__FROM(first(y0, s(y1))) -> c3(MARK(first(y0, s(y1)))) A__FROM(first(cons(y0, y1), y2)) -> c3(MARK(first(cons(y0, y1), y2))) A__FROM(first(0, y0)) -> c3(MARK(first(0, y0))) A__FROM(first(nil, y0)) -> c3(MARK(first(nil, y0))) A__FROM(first(y0, first(y1, first(y2, y3)))) -> c3(MARK(first(y0, first(y1, first(y2, y3))))) A__FROM(first(y0, first(y1, from(y2)))) -> c3(MARK(first(y0, first(y1, from(y2))))) A__FROM(first(y0, first(y1, 0))) -> c3(MARK(first(y0, first(y1, 0)))) A__FROM(first(y0, first(y1, nil))) -> c3(MARK(first(y0, first(y1, nil)))) A__FROM(first(y0, first(y1, s(y2)))) -> c3(MARK(first(y0, first(y1, s(y2))))) A__FROM(first(y0, first(y1, cons(y2, y3)))) -> c3(MARK(first(y0, first(y1, cons(y2, y3))))) A__FROM(first(y0, first(first(y1, y2), y3))) -> c3(MARK(first(y0, first(first(y1, y2), y3)))) A__FROM(first(y0, first(from(y1), y2))) -> c3(MARK(first(y0, first(from(y1), y2)))) A__FROM(first(y0, first(0, y1))) -> c3(MARK(first(y0, first(0, y1)))) A__FROM(first(y0, first(nil, y1))) -> c3(MARK(first(y0, first(nil, y1)))) A__FROM(first(y0, first(s(y1), y2))) -> c3(MARK(first(y0, first(s(y1), y2)))) A__FROM(first(y0, first(cons(y1, y2), y3))) -> c3(MARK(first(y0, first(cons(y1, y2), y3)))) A__FROM(first(first(y0, y1), first(y2, y3))) -> c3(MARK(first(first(y0, y1), first(y2, y3)))) A__FROM(first(from(y0), first(y1, y2))) -> c3(MARK(first(from(y0), first(y1, y2)))) A__FROM(first(s(y0), first(y1, y2))) -> c3(MARK(first(s(y0), first(y1, y2)))) A__FROM(first(y0, first(y1, y2))) -> c3(MARK(first(y0, first(y1, y2)))) A__FROM(first(cons(y0, y1), first(y2, y3))) -> c3(MARK(first(cons(y0, y1), first(y2, y3)))) A__FROM(first(y0, from(y1))) -> c3(MARK(first(y0, from(y1)))) A__FROM(first(y0, from(first(y1, y2)))) -> c3(MARK(first(y0, from(first(y1, y2))))) A__FROM(first(y0, from(from(y1)))) -> c3(MARK(first(y0, from(from(y1))))) A__FROM(first(y0, from(0))) -> c3(MARK(first(y0, from(0)))) A__FROM(first(y0, from(nil))) -> c3(MARK(first(y0, from(nil)))) A__FROM(first(y0, from(s(y1)))) -> c3(MARK(first(y0, from(s(y1))))) A__FROM(first(y0, from(cons(y1, y2)))) -> c3(MARK(first(y0, from(cons(y1, y2))))) A__FROM(first(first(y0, y1), from(y2))) -> c3(MARK(first(first(y0, y1), from(y2)))) A__FROM(first(from(y0), from(y1))) -> c3(MARK(first(from(y0), from(y1)))) A__FROM(first(s(y0), from(y1))) -> c3(MARK(first(s(y0), from(y1)))) A__FROM(first(cons(y0, y1), from(y2))) -> c3(MARK(first(cons(y0, y1), from(y2)))) A__FROM(first(y0, cons(first(y1, y2), y3))) -> c3(MARK(first(y0, cons(first(y1, y2), y3)))) A__FROM(first(y0, cons(from(y1), y2))) -> c3(MARK(first(y0, cons(from(y1), y2)))) A__FROM(first(y0, cons(s(y1), y2))) -> c3(MARK(first(y0, cons(s(y1), y2)))) A__FROM(first(y0, cons(cons(y1, y2), y3))) -> c3(MARK(first(y0, cons(cons(y1, y2), y3)))) A__FROM(first(first(y0, y1), cons(y2, y3))) -> c3(MARK(first(first(y0, y1), cons(y2, y3)))) A__FROM(first(from(y0), cons(y1, y2))) -> c3(MARK(first(from(y0), cons(y1, y2)))) A__FROM(first(s(y0), cons(y1, y2))) -> c3(MARK(first(s(y0), cons(y1, y2)))) A__FROM(first(cons(y0, y1), cons(y2, y3))) -> c3(MARK(first(cons(y0, y1), cons(y2, y3)))) A__FROM(first(first(y0, first(y1, y2)), y3)) -> c3(MARK(first(first(y0, first(y1, y2)), y3))) A__FROM(first(first(y0, from(y1)), y2)) -> c3(MARK(first(first(y0, from(y1)), y2))) A__FROM(first(first(y0, 0), y1)) -> c3(MARK(first(first(y0, 0), y1))) A__FROM(first(first(y0, nil), y1)) -> c3(MARK(first(first(y0, nil), y1))) A__FROM(first(first(y0, s(y1)), y2)) -> c3(MARK(first(first(y0, s(y1)), y2))) A__FROM(first(first(y0, cons(y1, y2)), y3)) -> c3(MARK(first(first(y0, cons(y1, y2)), y3))) A__FROM(first(first(first(y0, y1), y2), y3)) -> c3(MARK(first(first(first(y0, y1), y2), y3))) A__FROM(first(first(from(y0), y1), y2)) -> c3(MARK(first(first(from(y0), y1), y2))) A__FROM(first(first(0, y0), y1)) -> c3(MARK(first(first(0, y0), y1))) A__FROM(first(first(nil, y0), y1)) -> c3(MARK(first(first(nil, y0), y1))) A__FROM(first(first(s(y0), y1), y2)) -> c3(MARK(first(first(s(y0), y1), y2))) A__FROM(first(first(cons(y0, y1), y2), y3)) -> c3(MARK(first(first(cons(y0, y1), y2), y3))) A__FROM(first(first(y0, y1), 0)) -> c3(MARK(first(first(y0, y1), 0))) A__FROM(first(first(y0, y1), nil)) -> c3(MARK(first(first(y0, y1), nil))) A__FROM(first(first(y0, y1), s(y2))) -> c3(MARK(first(first(y0, y1), s(y2)))) A__FROM(first(first(y0, y1), y2)) -> c3(MARK(first(first(y0, y1), y2))) A__FROM(first(from(first(y0, y1)), y2)) -> c3(MARK(first(from(first(y0, y1)), y2))) A__FROM(first(from(from(y0)), y1)) -> c3(MARK(first(from(from(y0)), y1))) A__FROM(first(from(0), y0)) -> c3(MARK(first(from(0), y0))) A__FROM(first(from(nil), y0)) -> c3(MARK(first(from(nil), y0))) A__FROM(first(from(s(y0)), y1)) -> c3(MARK(first(from(s(y0)), y1))) A__FROM(first(from(cons(y0, y1)), y2)) -> c3(MARK(first(from(cons(y0, y1)), y2))) A__FROM(first(from(y0), y1)) -> c3(MARK(first(from(y0), y1))) A__FROM(first(from(y0), 0)) -> c3(MARK(first(from(y0), 0))) A__FROM(first(from(y0), nil)) -> c3(MARK(first(from(y0), nil))) A__FROM(first(from(y0), s(y1))) -> c3(MARK(first(from(y0), s(y1)))) A__FROM(first(s(first(y0, y1)), y2)) -> c3(MARK(first(s(first(y0, y1)), y2))) A__FROM(first(s(from(y0)), y1)) -> c3(MARK(first(s(from(y0)), y1))) A__FROM(first(s(0), y0)) -> c3(MARK(first(s(0), y0))) A__FROM(first(s(nil), y0)) -> c3(MARK(first(s(nil), y0))) A__FROM(first(s(s(y0)), y1)) -> c3(MARK(first(s(s(y0)), y1))) A__FROM(first(s(cons(y0, y1)), y2)) -> c3(MARK(first(s(cons(y0, y1)), y2))) A__FROM(first(s(y0), y1)) -> c3(MARK(first(s(y0), y1))) A__FROM(first(s(y0), 0)) -> c3(MARK(first(s(y0), 0))) A__FROM(first(s(y0), nil)) -> c3(MARK(first(s(y0), nil))) A__FROM(first(s(y0), s(y1))) -> c3(MARK(first(s(y0), s(y1)))) A__FROM(first(0, first(y0, y1))) -> c3(MARK(first(0, first(y0, y1)))) A__FROM(first(nil, first(y0, y1))) -> c3(MARK(first(nil, first(y0, y1)))) A__FROM(first(0, from(y0))) -> c3(MARK(first(0, from(y0)))) A__FROM(first(nil, from(y0))) -> c3(MARK(first(nil, from(y0)))) A__FROM(first(y0, cons(y1, y2))) -> c3(MARK(first(y0, cons(y1, y2)))) A__FROM(first(0, cons(y0, y1))) -> c3(MARK(first(0, cons(y0, y1)))) A__FROM(first(nil, cons(y0, y1))) -> c3(MARK(first(nil, cons(y0, y1)))) A__FROM(first(y0, cons(0, y1))) -> c3(MARK(first(y0, cons(0, y1)))) A__FROM(first(y0, cons(nil, y1))) -> c3(MARK(first(y0, cons(nil, y1)))) MARK(from(first(z0, z1))) -> c7(A__FROM(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(from(from(z0))) -> c7(A__FROM(a__from(mark(z0))), MARK(from(z0))) MARK(from(0)) -> c7(A__FROM(0), MARK(0)) MARK(from(nil)) -> c7(A__FROM(nil), MARK(nil)) MARK(from(s(z0))) -> c7(A__FROM(s(mark(z0))), MARK(s(z0))) MARK(from(cons(z0, z1))) -> c7(A__FROM(cons(mark(z0), z1)), MARK(cons(z0, z1))) K tuples:none Defined Rule Symbols: a__first_2, a__from_1, mark_1 Defined Pair Symbols: MARK_1, A__FIRST_2, A__FROM_1 Compound Symbols: c10_1, c11_1, c5_1, c6_1, c5_2, c6_2, c1_1, c3_1, c7_2 ---------------------------------------- (143) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing nodes: MARK(from(nil)) -> c7(A__FROM(nil), MARK(nil)) MARK(from(0)) -> c7(A__FROM(0), MARK(0)) ---------------------------------------- (144) Obligation: Complexity Dependency Tuples Problem Rules: a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(0) -> 0 mark(nil) -> nil mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(x0, from(x1))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), from(x1))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(first(x0, cons(from(z0), x2))) -> c5(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(s(z0), x2))) -> c5(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(first(first(z0, z1), cons(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(first(z0, z1))) MARK(first(from(z0), cons(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(first(s(z0), cons(x1, x2))) -> c5(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(s(z0))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(first(x0, first(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(first(x0, first(z0, z1)))) MARK(first(first(x0, from(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(first(x0, from(z0)))) MARK(first(first(x0, 0), x2)) -> c5(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(first(x0, 0))) MARK(first(first(x0, nil), x2)) -> c5(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(first(x0, nil))) MARK(first(first(x0, s(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(first(x0, s(z0)))) MARK(first(first(x0, cons(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(first(x0, cons(z0, z1)))) MARK(first(first(first(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(first(first(z0, z1), x1))) MARK(first(first(from(z0), x1), x2)) -> c5(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(first(from(z0), x1))) MARK(first(first(0, x1), x2)) -> c5(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(first(0, x1))) MARK(first(first(nil, x1), x2)) -> c5(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(first(nil, x1))) MARK(first(first(s(z0), x1), x2)) -> c5(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(first(s(z0), x1))) MARK(first(first(cons(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(first(cons(z0, z1), x1))) MARK(first(first(x0, x1), 0)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), nil)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), s(z0))) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), x2)) -> c5(MARK(first(x0, x1))) MARK(first(from(first(z0, z1)), x1)) -> c5(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(from(first(z0, z1)))) MARK(first(from(from(z0)), x1)) -> c5(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(first(from(0), x1)) -> c5(A__FIRST(a__from(0), mark(x1)), MARK(from(0))) MARK(first(from(nil), x1)) -> c5(A__FIRST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(first(from(s(z0)), x1)) -> c5(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(from(s(z0)))) MARK(first(from(cons(z0, z1)), x1)) -> c5(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(first(from(x0), x1)) -> c5(MARK(from(x0))) MARK(first(from(x0), 0)) -> c5(MARK(from(x0))) MARK(first(from(x0), nil)) -> c5(MARK(from(x0))) MARK(first(from(x0), s(z0))) -> c5(MARK(from(x0))) MARK(first(s(first(z0, z1)), x1)) -> c5(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(s(first(z0, z1)))) MARK(first(s(from(z0)), x1)) -> c5(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(s(from(z0)))) MARK(first(s(0), x1)) -> c5(A__FIRST(s(0), mark(x1)), MARK(s(0))) MARK(first(s(nil), x1)) -> c5(A__FIRST(s(nil), mark(x1)), MARK(s(nil))) MARK(first(s(s(z0)), x1)) -> c5(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(s(s(z0)))) MARK(first(s(cons(z0, z1)), x1)) -> c5(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(s(cons(z0, z1)))) MARK(first(s(x0), x1)) -> c5(MARK(s(x0))) MARK(first(s(x0), 0)) -> c5(MARK(s(x0))) MARK(first(s(x0), nil)) -> c5(MARK(s(x0))) MARK(first(s(x0), s(z0))) -> c5(MARK(s(x0))) MARK(first(x0, first(x1, first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(first(x1, first(z0, z1)))) MARK(first(x0, first(x1, from(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(first(x1, from(z0)))) MARK(first(x0, first(x1, 0))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(first(x1, 0))) MARK(first(x0, first(x1, nil))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(first(x1, nil))) MARK(first(x0, first(x1, s(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(first(x1, s(z0)))) MARK(first(x0, first(x1, cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(first(x1, cons(z0, z1)))) MARK(first(x0, first(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(first(first(z0, z1), x2))) MARK(first(x0, first(from(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(first(from(z0), x2))) MARK(first(x0, first(0, x2))) -> c6(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(first(0, x2))) MARK(first(x0, first(nil, x2))) -> c6(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(first(nil, x2))) MARK(first(x0, first(s(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(first(s(z0), x2))) MARK(first(x0, first(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(first(cons(z0, z1), x2))) MARK(first(first(z0, z1), first(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(from(z0), first(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(s(z0), first(x1, x2))) -> c6(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(x0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(nil, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(cons(z0, z1), first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(x0, from(x1))) -> c6(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(first(x0, from(first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(from(first(z0, z1)))) MARK(first(x0, from(from(z0)))) -> c6(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(first(x0, from(0))) -> c6(A__FIRST(mark(x0), a__from(0)), MARK(from(0))) MARK(first(x0, from(nil))) -> c6(A__FIRST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(first(x0, from(s(z0)))) -> c6(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(from(s(z0)))) MARK(first(x0, from(cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(first(first(z0, z1), from(x1))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(first(from(z0), from(x1))) -> c6(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(s(z0), from(x1))) -> c6(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(x0, from(x1))) -> c6(MARK(from(x1))) MARK(first(0, from(x1))) -> c6(MARK(from(x1))) MARK(first(nil, from(x1))) -> c6(MARK(from(x1))) MARK(first(cons(z0, z1), from(x1))) -> c6(MARK(from(x1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(cons(first(z0, z1), x2))) MARK(first(x0, cons(from(z0), x2))) -> c6(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(first(x0, cons(s(z0), x2))) -> c6(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(cons(s(z0), x2))) MARK(first(x0, cons(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(first(first(z0, z1), cons(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(from(z0), cons(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(s(z0), cons(x1, x2))) -> c6(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(x0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(nil, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(first(x0, first(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(first(first(x0, from(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, 0), x2)) -> c6(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(x2)) MARK(first(first(x0, nil), x2)) -> c6(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(x2)) MARK(first(first(x0, s(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, cons(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(first(first(first(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(from(z0), x1), x2)) -> c6(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(0, x1), x2)) -> c6(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(nil, x1), x2)) -> c6(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(s(z0), x1), x2)) -> c6(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(cons(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(x0, x1), s(z0))) -> c6(MARK(s(z0))) MARK(first(first(x0, x1), x2)) -> c6(MARK(x2)) MARK(first(from(first(z0, z1)), x1)) -> c6(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(first(from(from(z0)), x1)) -> c6(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(first(from(0), x1)) -> c6(A__FIRST(a__from(0), mark(x1)), MARK(x1)) MARK(first(from(nil), x1)) -> c6(A__FIRST(a__from(nil), mark(x1)), MARK(x1)) MARK(first(from(s(z0)), x1)) -> c6(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(x1)) MARK(first(from(cons(z0, z1)), x1)) -> c6(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(first(from(x0), s(z0))) -> c6(MARK(s(z0))) MARK(first(from(x0), x1)) -> c6(MARK(x1)) MARK(first(s(first(z0, z1)), x1)) -> c6(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(first(s(from(z0)), x1)) -> c6(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(first(s(0), x1)) -> c6(A__FIRST(s(0), mark(x1)), MARK(x1)) MARK(first(s(nil), x1)) -> c6(A__FIRST(s(nil), mark(x1)), MARK(x1)) MARK(first(s(s(z0)), x1)) -> c6(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(x1)) MARK(first(s(cons(z0, z1)), x1)) -> c6(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(first(s(x0), s(z0))) -> c6(MARK(s(z0))) A__FIRST(s(z0), cons(from(y0), z2)) -> c1(MARK(from(y0))) A__FIRST(s(z0), cons(s(y0), z2)) -> c1(MARK(s(y0))) A__FIRST(s(z0), cons(cons(y0, y1), z2)) -> c1(MARK(cons(y0, y1))) A__FIRST(s(z0), cons(first(y0, 0), z2)) -> c1(MARK(first(y0, 0))) A__FIRST(s(z0), cons(first(y0, nil), z2)) -> c1(MARK(first(y0, nil))) A__FIRST(s(z0), cons(first(y0, s(y1)), z2)) -> c1(MARK(first(y0, s(y1)))) A__FIRST(s(z0), cons(first(cons(y0, y1), y2), z2)) -> c1(MARK(first(cons(y0, y1), y2))) A__FIRST(s(z0), cons(first(0, y0), z2)) -> c1(MARK(first(0, y0))) A__FIRST(s(z0), cons(first(nil, y0), z2)) -> c1(MARK(first(nil, y0))) A__FIRST(s(z0), cons(first(y0, first(y1, first(y2, y3))), z2)) -> c1(MARK(first(y0, first(y1, first(y2, y3))))) A__FIRST(s(z0), cons(first(y0, first(y1, from(y2))), z2)) -> c1(MARK(first(y0, first(y1, from(y2))))) A__FIRST(s(z0), cons(first(y0, first(y1, 0)), z2)) -> c1(MARK(first(y0, first(y1, 0)))) A__FIRST(s(z0), cons(first(y0, first(y1, nil)), z2)) -> c1(MARK(first(y0, first(y1, nil)))) A__FIRST(s(z0), cons(first(y0, first(y1, s(y2))), z2)) -> c1(MARK(first(y0, first(y1, s(y2))))) A__FIRST(s(z0), cons(first(y0, first(y1, cons(y2, y3))), z2)) -> c1(MARK(first(y0, first(y1, cons(y2, y3))))) A__FIRST(s(z0), cons(first(y0, first(first(y1, y2), y3)), z2)) -> c1(MARK(first(y0, first(first(y1, y2), y3)))) A__FIRST(s(z0), cons(first(y0, first(from(y1), y2)), z2)) -> c1(MARK(first(y0, first(from(y1), y2)))) A__FIRST(s(z0), cons(first(y0, first(0, y1)), z2)) -> c1(MARK(first(y0, first(0, y1)))) A__FIRST(s(z0), cons(first(y0, first(nil, y1)), z2)) -> c1(MARK(first(y0, first(nil, y1)))) A__FIRST(s(z0), cons(first(y0, first(s(y1), y2)), z2)) -> c1(MARK(first(y0, first(s(y1), y2)))) A__FIRST(s(z0), cons(first(y0, first(cons(y1, y2), y3)), z2)) -> c1(MARK(first(y0, first(cons(y1, y2), y3)))) A__FIRST(s(z0), cons(first(first(y0, y1), first(y2, y3)), z2)) -> c1(MARK(first(first(y0, y1), first(y2, y3)))) A__FIRST(s(z0), cons(first(from(y0), first(y1, y2)), z2)) -> c1(MARK(first(from(y0), first(y1, y2)))) A__FIRST(s(z0), cons(first(s(y0), first(y1, y2)), z2)) -> c1(MARK(first(s(y0), first(y1, y2)))) A__FIRST(s(z0), cons(first(y0, first(y1, y2)), z2)) -> c1(MARK(first(y0, first(y1, y2)))) A__FIRST(s(z0), cons(first(cons(y0, y1), first(y2, y3)), z2)) -> c1(MARK(first(cons(y0, y1), first(y2, y3)))) A__FIRST(s(z0), cons(first(y0, from(y1)), z2)) -> c1(MARK(first(y0, from(y1)))) A__FIRST(s(z0), cons(first(y0, from(first(y1, y2))), z2)) -> c1(MARK(first(y0, from(first(y1, y2))))) A__FIRST(s(z0), cons(first(y0, from(from(y1))), z2)) -> c1(MARK(first(y0, from(from(y1))))) A__FIRST(s(z0), cons(first(y0, from(0)), z2)) -> c1(MARK(first(y0, from(0)))) A__FIRST(s(z0), cons(first(y0, from(nil)), z2)) -> c1(MARK(first(y0, from(nil)))) A__FIRST(s(z0), cons(first(y0, from(s(y1))), z2)) -> c1(MARK(first(y0, from(s(y1))))) A__FIRST(s(z0), cons(first(y0, from(cons(y1, y2))), z2)) -> c1(MARK(first(y0, from(cons(y1, y2))))) A__FIRST(s(z0), cons(first(first(y0, y1), from(y2)), z2)) -> c1(MARK(first(first(y0, y1), from(y2)))) A__FIRST(s(z0), cons(first(from(y0), from(y1)), z2)) -> c1(MARK(first(from(y0), from(y1)))) A__FIRST(s(z0), cons(first(s(y0), from(y1)), z2)) -> c1(MARK(first(s(y0), from(y1)))) A__FIRST(s(z0), cons(first(cons(y0, y1), from(y2)), z2)) -> c1(MARK(first(cons(y0, y1), from(y2)))) A__FIRST(s(z0), cons(first(y0, cons(first(y1, y2), y3)), z2)) -> c1(MARK(first(y0, cons(first(y1, y2), y3)))) A__FIRST(s(z0), cons(first(y0, cons(from(y1), y2)), z2)) -> c1(MARK(first(y0, cons(from(y1), y2)))) A__FIRST(s(z0), cons(first(y0, cons(0, y1)), z2)) -> c1(MARK(first(y0, cons(0, y1)))) A__FIRST(s(z0), cons(first(y0, cons(nil, y1)), z2)) -> c1(MARK(first(y0, cons(nil, y1)))) A__FIRST(s(z0), cons(first(y0, cons(s(y1), y2)), z2)) -> c1(MARK(first(y0, cons(s(y1), y2)))) A__FIRST(s(z0), cons(first(y0, cons(cons(y1, y2), y3)), z2)) -> c1(MARK(first(y0, cons(cons(y1, y2), y3)))) A__FIRST(s(z0), cons(first(first(y0, y1), cons(y2, y3)), z2)) -> c1(MARK(first(first(y0, y1), cons(y2, y3)))) A__FIRST(s(z0), cons(first(from(y0), cons(y1, y2)), z2)) -> c1(MARK(first(from(y0), cons(y1, y2)))) A__FIRST(s(z0), cons(first(s(y0), cons(y1, y2)), z2)) -> c1(MARK(first(s(y0), cons(y1, y2)))) A__FIRST(s(z0), cons(first(cons(y0, y1), cons(y2, y3)), z2)) -> c1(MARK(first(cons(y0, y1), cons(y2, y3)))) A__FIRST(s(z0), cons(first(first(y0, first(y1, y2)), y3), z2)) -> c1(MARK(first(first(y0, first(y1, y2)), y3))) A__FIRST(s(z0), cons(first(first(y0, from(y1)), y2), z2)) -> c1(MARK(first(first(y0, from(y1)), y2))) A__FIRST(s(z0), cons(first(first(y0, 0), y1), z2)) -> c1(MARK(first(first(y0, 0), y1))) A__FIRST(s(z0), cons(first(first(y0, nil), y1), z2)) -> c1(MARK(first(first(y0, nil), y1))) A__FIRST(s(z0), cons(first(first(y0, s(y1)), y2), z2)) -> c1(MARK(first(first(y0, s(y1)), y2))) A__FIRST(s(z0), cons(first(first(y0, cons(y1, y2)), y3), z2)) -> c1(MARK(first(first(y0, cons(y1, y2)), y3))) A__FIRST(s(z0), cons(first(first(first(y0, y1), y2), y3), z2)) -> c1(MARK(first(first(first(y0, y1), y2), y3))) A__FIRST(s(z0), cons(first(first(from(y0), y1), y2), z2)) -> c1(MARK(first(first(from(y0), y1), y2))) A__FIRST(s(z0), cons(first(first(0, y0), y1), z2)) -> c1(MARK(first(first(0, y0), y1))) A__FIRST(s(z0), cons(first(first(nil, y0), y1), z2)) -> c1(MARK(first(first(nil, y0), y1))) A__FIRST(s(z0), cons(first(first(s(y0), y1), y2), z2)) -> c1(MARK(first(first(s(y0), y1), y2))) A__FIRST(s(z0), cons(first(first(cons(y0, y1), y2), y3), z2)) -> c1(MARK(first(first(cons(y0, y1), y2), y3))) A__FIRST(s(z0), cons(first(first(y0, y1), 0), z2)) -> c1(MARK(first(first(y0, y1), 0))) A__FIRST(s(z0), cons(first(first(y0, y1), nil), z2)) -> c1(MARK(first(first(y0, y1), nil))) A__FIRST(s(z0), cons(first(first(y0, y1), s(y2)), z2)) -> c1(MARK(first(first(y0, y1), s(y2)))) A__FIRST(s(z0), cons(first(first(y0, y1), y2), z2)) -> c1(MARK(first(first(y0, y1), y2))) A__FIRST(s(z0), cons(first(from(first(y0, y1)), y2), z2)) -> c1(MARK(first(from(first(y0, y1)), y2))) A__FIRST(s(z0), cons(first(from(from(y0)), y1), z2)) -> c1(MARK(first(from(from(y0)), y1))) A__FIRST(s(z0), cons(first(from(0), y0), z2)) -> c1(MARK(first(from(0), y0))) A__FIRST(s(z0), cons(first(from(nil), y0), z2)) -> c1(MARK(first(from(nil), y0))) A__FIRST(s(z0), cons(first(from(s(y0)), y1), z2)) -> c1(MARK(first(from(s(y0)), y1))) A__FIRST(s(z0), cons(first(from(cons(y0, y1)), y2), z2)) -> c1(MARK(first(from(cons(y0, y1)), y2))) A__FIRST(s(z0), cons(first(from(y0), y1), z2)) -> c1(MARK(first(from(y0), y1))) A__FIRST(s(z0), cons(first(from(y0), 0), z2)) -> c1(MARK(first(from(y0), 0))) A__FIRST(s(z0), cons(first(from(y0), nil), z2)) -> c1(MARK(first(from(y0), nil))) A__FIRST(s(z0), cons(first(from(y0), s(y1)), z2)) -> c1(MARK(first(from(y0), s(y1)))) A__FIRST(s(z0), cons(first(s(first(y0, y1)), y2), z2)) -> c1(MARK(first(s(first(y0, y1)), y2))) A__FIRST(s(z0), cons(first(s(from(y0)), y1), z2)) -> c1(MARK(first(s(from(y0)), y1))) A__FIRST(s(z0), cons(first(s(0), y0), z2)) -> c1(MARK(first(s(0), y0))) A__FIRST(s(z0), cons(first(s(nil), y0), z2)) -> c1(MARK(first(s(nil), y0))) A__FIRST(s(z0), cons(first(s(s(y0)), y1), z2)) -> c1(MARK(first(s(s(y0)), y1))) A__FIRST(s(z0), cons(first(s(cons(y0, y1)), y2), z2)) -> c1(MARK(first(s(cons(y0, y1)), y2))) A__FIRST(s(z0), cons(first(s(y0), y1), z2)) -> c1(MARK(first(s(y0), y1))) A__FIRST(s(z0), cons(first(s(y0), 0), z2)) -> c1(MARK(first(s(y0), 0))) A__FIRST(s(z0), cons(first(s(y0), nil), z2)) -> c1(MARK(first(s(y0), nil))) A__FIRST(s(z0), cons(first(s(y0), s(y1)), z2)) -> c1(MARK(first(s(y0), s(y1)))) A__FIRST(s(z0), cons(first(0, first(y0, y1)), z2)) -> c1(MARK(first(0, first(y0, y1)))) A__FIRST(s(z0), cons(first(nil, first(y0, y1)), z2)) -> c1(MARK(first(nil, first(y0, y1)))) A__FIRST(s(z0), cons(first(0, from(y0)), z2)) -> c1(MARK(first(0, from(y0)))) A__FIRST(s(z0), cons(first(nil, from(y0)), z2)) -> c1(MARK(first(nil, from(y0)))) A__FIRST(s(z0), cons(first(y0, cons(y1, y2)), z2)) -> c1(MARK(first(y0, cons(y1, y2)))) A__FIRST(s(z0), cons(first(0, cons(y0, y1)), z2)) -> c1(MARK(first(0, cons(y0, y1)))) A__FIRST(s(z0), cons(first(nil, cons(y0, y1)), z2)) -> c1(MARK(first(nil, cons(y0, y1)))) MARK(first(x0, cons(0, x2))) -> c5(MARK(x0)) MARK(first(x0, cons(nil, x2))) -> c5(MARK(x0)) MARK(first(x0, cons(0, x2))) -> c6(MARK(cons(0, x2))) MARK(first(x0, cons(nil, x2))) -> c6(MARK(cons(nil, x2))) A__FROM(from(y0)) -> c3(MARK(from(y0))) A__FROM(s(y0)) -> c3(MARK(s(y0))) A__FROM(cons(y0, y1)) -> c3(MARK(cons(y0, y1))) A__FROM(first(y0, 0)) -> c3(MARK(first(y0, 0))) A__FROM(first(y0, nil)) -> c3(MARK(first(y0, nil))) A__FROM(first(y0, s(y1))) -> c3(MARK(first(y0, s(y1)))) A__FROM(first(cons(y0, y1), y2)) -> c3(MARK(first(cons(y0, y1), y2))) A__FROM(first(0, y0)) -> c3(MARK(first(0, y0))) A__FROM(first(nil, y0)) -> c3(MARK(first(nil, y0))) A__FROM(first(y0, first(y1, first(y2, y3)))) -> c3(MARK(first(y0, first(y1, first(y2, y3))))) A__FROM(first(y0, first(y1, from(y2)))) -> c3(MARK(first(y0, first(y1, from(y2))))) A__FROM(first(y0, first(y1, 0))) -> c3(MARK(first(y0, first(y1, 0)))) A__FROM(first(y0, first(y1, nil))) -> c3(MARK(first(y0, first(y1, nil)))) A__FROM(first(y0, first(y1, s(y2)))) -> c3(MARK(first(y0, first(y1, s(y2))))) A__FROM(first(y0, first(y1, cons(y2, y3)))) -> c3(MARK(first(y0, first(y1, cons(y2, y3))))) A__FROM(first(y0, first(first(y1, y2), y3))) -> c3(MARK(first(y0, first(first(y1, y2), y3)))) A__FROM(first(y0, first(from(y1), y2))) -> c3(MARK(first(y0, first(from(y1), y2)))) A__FROM(first(y0, first(0, y1))) -> c3(MARK(first(y0, first(0, y1)))) A__FROM(first(y0, first(nil, y1))) -> c3(MARK(first(y0, first(nil, y1)))) A__FROM(first(y0, first(s(y1), y2))) -> c3(MARK(first(y0, first(s(y1), y2)))) A__FROM(first(y0, first(cons(y1, y2), y3))) -> c3(MARK(first(y0, first(cons(y1, y2), y3)))) A__FROM(first(first(y0, y1), first(y2, y3))) -> c3(MARK(first(first(y0, y1), first(y2, y3)))) A__FROM(first(from(y0), first(y1, y2))) -> c3(MARK(first(from(y0), first(y1, y2)))) A__FROM(first(s(y0), first(y1, y2))) -> c3(MARK(first(s(y0), first(y1, y2)))) A__FROM(first(y0, first(y1, y2))) -> c3(MARK(first(y0, first(y1, y2)))) A__FROM(first(cons(y0, y1), first(y2, y3))) -> c3(MARK(first(cons(y0, y1), first(y2, y3)))) A__FROM(first(y0, from(y1))) -> c3(MARK(first(y0, from(y1)))) A__FROM(first(y0, from(first(y1, y2)))) -> c3(MARK(first(y0, from(first(y1, y2))))) A__FROM(first(y0, from(from(y1)))) -> c3(MARK(first(y0, from(from(y1))))) A__FROM(first(y0, from(0))) -> c3(MARK(first(y0, from(0)))) A__FROM(first(y0, from(nil))) -> c3(MARK(first(y0, from(nil)))) A__FROM(first(y0, from(s(y1)))) -> c3(MARK(first(y0, from(s(y1))))) A__FROM(first(y0, from(cons(y1, y2)))) -> c3(MARK(first(y0, from(cons(y1, y2))))) A__FROM(first(first(y0, y1), from(y2))) -> c3(MARK(first(first(y0, y1), from(y2)))) A__FROM(first(from(y0), from(y1))) -> c3(MARK(first(from(y0), from(y1)))) A__FROM(first(s(y0), from(y1))) -> c3(MARK(first(s(y0), from(y1)))) A__FROM(first(cons(y0, y1), from(y2))) -> c3(MARK(first(cons(y0, y1), from(y2)))) A__FROM(first(y0, cons(first(y1, y2), y3))) -> c3(MARK(first(y0, cons(first(y1, y2), y3)))) A__FROM(first(y0, cons(from(y1), y2))) -> c3(MARK(first(y0, cons(from(y1), y2)))) A__FROM(first(y0, cons(s(y1), y2))) -> c3(MARK(first(y0, cons(s(y1), y2)))) A__FROM(first(y0, cons(cons(y1, y2), y3))) -> c3(MARK(first(y0, cons(cons(y1, y2), y3)))) A__FROM(first(first(y0, y1), cons(y2, y3))) -> c3(MARK(first(first(y0, y1), cons(y2, y3)))) A__FROM(first(from(y0), cons(y1, y2))) -> c3(MARK(first(from(y0), cons(y1, y2)))) A__FROM(first(s(y0), cons(y1, y2))) -> c3(MARK(first(s(y0), cons(y1, y2)))) A__FROM(first(cons(y0, y1), cons(y2, y3))) -> c3(MARK(first(cons(y0, y1), cons(y2, y3)))) A__FROM(first(first(y0, first(y1, y2)), y3)) -> c3(MARK(first(first(y0, first(y1, y2)), y3))) A__FROM(first(first(y0, from(y1)), y2)) -> c3(MARK(first(first(y0, from(y1)), y2))) A__FROM(first(first(y0, 0), y1)) -> c3(MARK(first(first(y0, 0), y1))) A__FROM(first(first(y0, nil), y1)) -> c3(MARK(first(first(y0, nil), y1))) A__FROM(first(first(y0, s(y1)), y2)) -> c3(MARK(first(first(y0, s(y1)), y2))) A__FROM(first(first(y0, cons(y1, y2)), y3)) -> c3(MARK(first(first(y0, cons(y1, y2)), y3))) A__FROM(first(first(first(y0, y1), y2), y3)) -> c3(MARK(first(first(first(y0, y1), y2), y3))) A__FROM(first(first(from(y0), y1), y2)) -> c3(MARK(first(first(from(y0), y1), y2))) A__FROM(first(first(0, y0), y1)) -> c3(MARK(first(first(0, y0), y1))) A__FROM(first(first(nil, y0), y1)) -> c3(MARK(first(first(nil, y0), y1))) A__FROM(first(first(s(y0), y1), y2)) -> c3(MARK(first(first(s(y0), y1), y2))) A__FROM(first(first(cons(y0, y1), y2), y3)) -> c3(MARK(first(first(cons(y0, y1), y2), y3))) A__FROM(first(first(y0, y1), 0)) -> c3(MARK(first(first(y0, y1), 0))) A__FROM(first(first(y0, y1), nil)) -> c3(MARK(first(first(y0, y1), nil))) A__FROM(first(first(y0, y1), s(y2))) -> c3(MARK(first(first(y0, y1), s(y2)))) A__FROM(first(first(y0, y1), y2)) -> c3(MARK(first(first(y0, y1), y2))) A__FROM(first(from(first(y0, y1)), y2)) -> c3(MARK(first(from(first(y0, y1)), y2))) A__FROM(first(from(from(y0)), y1)) -> c3(MARK(first(from(from(y0)), y1))) A__FROM(first(from(0), y0)) -> c3(MARK(first(from(0), y0))) A__FROM(first(from(nil), y0)) -> c3(MARK(first(from(nil), y0))) A__FROM(first(from(s(y0)), y1)) -> c3(MARK(first(from(s(y0)), y1))) A__FROM(first(from(cons(y0, y1)), y2)) -> c3(MARK(first(from(cons(y0, y1)), y2))) A__FROM(first(from(y0), y1)) -> c3(MARK(first(from(y0), y1))) A__FROM(first(from(y0), 0)) -> c3(MARK(first(from(y0), 0))) A__FROM(first(from(y0), nil)) -> c3(MARK(first(from(y0), nil))) A__FROM(first(from(y0), s(y1))) -> c3(MARK(first(from(y0), s(y1)))) A__FROM(first(s(first(y0, y1)), y2)) -> c3(MARK(first(s(first(y0, y1)), y2))) A__FROM(first(s(from(y0)), y1)) -> c3(MARK(first(s(from(y0)), y1))) A__FROM(first(s(0), y0)) -> c3(MARK(first(s(0), y0))) A__FROM(first(s(nil), y0)) -> c3(MARK(first(s(nil), y0))) A__FROM(first(s(s(y0)), y1)) -> c3(MARK(first(s(s(y0)), y1))) A__FROM(first(s(cons(y0, y1)), y2)) -> c3(MARK(first(s(cons(y0, y1)), y2))) A__FROM(first(s(y0), y1)) -> c3(MARK(first(s(y0), y1))) A__FROM(first(s(y0), 0)) -> c3(MARK(first(s(y0), 0))) A__FROM(first(s(y0), nil)) -> c3(MARK(first(s(y0), nil))) A__FROM(first(s(y0), s(y1))) -> c3(MARK(first(s(y0), s(y1)))) A__FROM(first(0, first(y0, y1))) -> c3(MARK(first(0, first(y0, y1)))) A__FROM(first(nil, first(y0, y1))) -> c3(MARK(first(nil, first(y0, y1)))) A__FROM(first(0, from(y0))) -> c3(MARK(first(0, from(y0)))) A__FROM(first(nil, from(y0))) -> c3(MARK(first(nil, from(y0)))) A__FROM(first(y0, cons(y1, y2))) -> c3(MARK(first(y0, cons(y1, y2)))) A__FROM(first(0, cons(y0, y1))) -> c3(MARK(first(0, cons(y0, y1)))) A__FROM(first(nil, cons(y0, y1))) -> c3(MARK(first(nil, cons(y0, y1)))) A__FROM(first(y0, cons(0, y1))) -> c3(MARK(first(y0, cons(0, y1)))) A__FROM(first(y0, cons(nil, y1))) -> c3(MARK(first(y0, cons(nil, y1)))) MARK(from(first(z0, z1))) -> c7(A__FROM(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(from(from(z0))) -> c7(A__FROM(a__from(mark(z0))), MARK(from(z0))) MARK(from(s(z0))) -> c7(A__FROM(s(mark(z0))), MARK(s(z0))) MARK(from(cons(z0, z1))) -> c7(A__FROM(cons(mark(z0), z1)), MARK(cons(z0, z1))) S tuples: MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(x0, from(x1))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), from(x1))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(first(x0, cons(from(z0), x2))) -> c5(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(s(z0), x2))) -> c5(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(first(first(z0, z1), cons(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(first(z0, z1))) MARK(first(from(z0), cons(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(first(s(z0), cons(x1, x2))) -> c5(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(s(z0))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(first(x0, first(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(first(x0, first(z0, z1)))) MARK(first(first(x0, from(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(first(x0, from(z0)))) MARK(first(first(x0, 0), x2)) -> c5(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(first(x0, 0))) MARK(first(first(x0, nil), x2)) -> c5(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(first(x0, nil))) MARK(first(first(x0, s(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(first(x0, s(z0)))) MARK(first(first(x0, cons(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(first(x0, cons(z0, z1)))) MARK(first(first(first(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(first(first(z0, z1), x1))) MARK(first(first(from(z0), x1), x2)) -> c5(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(first(from(z0), x1))) MARK(first(first(0, x1), x2)) -> c5(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(first(0, x1))) MARK(first(first(nil, x1), x2)) -> c5(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(first(nil, x1))) MARK(first(first(s(z0), x1), x2)) -> c5(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(first(s(z0), x1))) MARK(first(first(cons(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(first(cons(z0, z1), x1))) MARK(first(first(x0, x1), 0)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), nil)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), s(z0))) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), x2)) -> c5(MARK(first(x0, x1))) MARK(first(from(first(z0, z1)), x1)) -> c5(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(from(first(z0, z1)))) MARK(first(from(from(z0)), x1)) -> c5(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(first(from(0), x1)) -> c5(A__FIRST(a__from(0), mark(x1)), MARK(from(0))) MARK(first(from(nil), x1)) -> c5(A__FIRST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(first(from(s(z0)), x1)) -> c5(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(from(s(z0)))) MARK(first(from(cons(z0, z1)), x1)) -> c5(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(first(from(x0), x1)) -> c5(MARK(from(x0))) MARK(first(from(x0), 0)) -> c5(MARK(from(x0))) MARK(first(from(x0), nil)) -> c5(MARK(from(x0))) MARK(first(from(x0), s(z0))) -> c5(MARK(from(x0))) MARK(first(s(first(z0, z1)), x1)) -> c5(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(s(first(z0, z1)))) MARK(first(s(from(z0)), x1)) -> c5(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(s(from(z0)))) MARK(first(s(0), x1)) -> c5(A__FIRST(s(0), mark(x1)), MARK(s(0))) MARK(first(s(nil), x1)) -> c5(A__FIRST(s(nil), mark(x1)), MARK(s(nil))) MARK(first(s(s(z0)), x1)) -> c5(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(s(s(z0)))) MARK(first(s(cons(z0, z1)), x1)) -> c5(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(s(cons(z0, z1)))) MARK(first(s(x0), x1)) -> c5(MARK(s(x0))) MARK(first(s(x0), 0)) -> c5(MARK(s(x0))) MARK(first(s(x0), nil)) -> c5(MARK(s(x0))) MARK(first(s(x0), s(z0))) -> c5(MARK(s(x0))) MARK(first(x0, first(x1, first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(first(x1, first(z0, z1)))) MARK(first(x0, first(x1, from(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(first(x1, from(z0)))) MARK(first(x0, first(x1, 0))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(first(x1, 0))) MARK(first(x0, first(x1, nil))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(first(x1, nil))) MARK(first(x0, first(x1, s(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(first(x1, s(z0)))) MARK(first(x0, first(x1, cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(first(x1, cons(z0, z1)))) MARK(first(x0, first(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(first(first(z0, z1), x2))) MARK(first(x0, first(from(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(first(from(z0), x2))) MARK(first(x0, first(0, x2))) -> c6(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(first(0, x2))) MARK(first(x0, first(nil, x2))) -> c6(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(first(nil, x2))) MARK(first(x0, first(s(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(first(s(z0), x2))) MARK(first(x0, first(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(first(cons(z0, z1), x2))) MARK(first(first(z0, z1), first(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(from(z0), first(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(s(z0), first(x1, x2))) -> c6(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(x0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(nil, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(cons(z0, z1), first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(x0, from(x1))) -> c6(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(first(x0, from(first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(from(first(z0, z1)))) MARK(first(x0, from(from(z0)))) -> c6(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(first(x0, from(0))) -> c6(A__FIRST(mark(x0), a__from(0)), MARK(from(0))) MARK(first(x0, from(nil))) -> c6(A__FIRST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(first(x0, from(s(z0)))) -> c6(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(from(s(z0)))) MARK(first(x0, from(cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(first(first(z0, z1), from(x1))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(first(from(z0), from(x1))) -> c6(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(s(z0), from(x1))) -> c6(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(x0, from(x1))) -> c6(MARK(from(x1))) MARK(first(0, from(x1))) -> c6(MARK(from(x1))) MARK(first(nil, from(x1))) -> c6(MARK(from(x1))) MARK(first(cons(z0, z1), from(x1))) -> c6(MARK(from(x1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(cons(first(z0, z1), x2))) MARK(first(x0, cons(from(z0), x2))) -> c6(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(first(x0, cons(s(z0), x2))) -> c6(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(cons(s(z0), x2))) MARK(first(x0, cons(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(first(first(z0, z1), cons(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(from(z0), cons(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(s(z0), cons(x1, x2))) -> c6(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(x0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(nil, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(first(x0, first(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(first(first(x0, from(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, 0), x2)) -> c6(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(x2)) MARK(first(first(x0, nil), x2)) -> c6(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(x2)) MARK(first(first(x0, s(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, cons(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(first(first(first(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(from(z0), x1), x2)) -> c6(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(0, x1), x2)) -> c6(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(nil, x1), x2)) -> c6(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(s(z0), x1), x2)) -> c6(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(cons(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(x0, x1), s(z0))) -> c6(MARK(s(z0))) MARK(first(first(x0, x1), x2)) -> c6(MARK(x2)) MARK(first(from(first(z0, z1)), x1)) -> c6(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(first(from(from(z0)), x1)) -> c6(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(first(from(0), x1)) -> c6(A__FIRST(a__from(0), mark(x1)), MARK(x1)) MARK(first(from(nil), x1)) -> c6(A__FIRST(a__from(nil), mark(x1)), MARK(x1)) MARK(first(from(s(z0)), x1)) -> c6(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(x1)) MARK(first(from(cons(z0, z1)), x1)) -> c6(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(first(from(x0), s(z0))) -> c6(MARK(s(z0))) MARK(first(from(x0), x1)) -> c6(MARK(x1)) MARK(first(s(first(z0, z1)), x1)) -> c6(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(first(s(from(z0)), x1)) -> c6(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(first(s(0), x1)) -> c6(A__FIRST(s(0), mark(x1)), MARK(x1)) MARK(first(s(nil), x1)) -> c6(A__FIRST(s(nil), mark(x1)), MARK(x1)) MARK(first(s(s(z0)), x1)) -> c6(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(x1)) MARK(first(s(cons(z0, z1)), x1)) -> c6(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(first(s(x0), s(z0))) -> c6(MARK(s(z0))) A__FIRST(s(z0), cons(from(y0), z2)) -> c1(MARK(from(y0))) A__FIRST(s(z0), cons(s(y0), z2)) -> c1(MARK(s(y0))) A__FIRST(s(z0), cons(cons(y0, y1), z2)) -> c1(MARK(cons(y0, y1))) A__FIRST(s(z0), cons(first(y0, 0), z2)) -> c1(MARK(first(y0, 0))) A__FIRST(s(z0), cons(first(y0, nil), z2)) -> c1(MARK(first(y0, nil))) A__FIRST(s(z0), cons(first(y0, s(y1)), z2)) -> c1(MARK(first(y0, s(y1)))) A__FIRST(s(z0), cons(first(cons(y0, y1), y2), z2)) -> c1(MARK(first(cons(y0, y1), y2))) A__FIRST(s(z0), cons(first(0, y0), z2)) -> c1(MARK(first(0, y0))) A__FIRST(s(z0), cons(first(nil, y0), z2)) -> c1(MARK(first(nil, y0))) A__FIRST(s(z0), cons(first(y0, first(y1, first(y2, y3))), z2)) -> c1(MARK(first(y0, first(y1, first(y2, y3))))) A__FIRST(s(z0), cons(first(y0, first(y1, from(y2))), z2)) -> c1(MARK(first(y0, first(y1, from(y2))))) A__FIRST(s(z0), cons(first(y0, first(y1, 0)), z2)) -> c1(MARK(first(y0, first(y1, 0)))) A__FIRST(s(z0), cons(first(y0, first(y1, nil)), z2)) -> c1(MARK(first(y0, first(y1, nil)))) A__FIRST(s(z0), cons(first(y0, first(y1, s(y2))), z2)) -> c1(MARK(first(y0, first(y1, s(y2))))) A__FIRST(s(z0), cons(first(y0, first(y1, cons(y2, y3))), z2)) -> c1(MARK(first(y0, first(y1, cons(y2, y3))))) A__FIRST(s(z0), cons(first(y0, first(first(y1, y2), y3)), z2)) -> c1(MARK(first(y0, first(first(y1, y2), y3)))) A__FIRST(s(z0), cons(first(y0, first(from(y1), y2)), z2)) -> c1(MARK(first(y0, first(from(y1), y2)))) A__FIRST(s(z0), cons(first(y0, first(0, y1)), z2)) -> c1(MARK(first(y0, first(0, y1)))) A__FIRST(s(z0), cons(first(y0, first(nil, y1)), z2)) -> c1(MARK(first(y0, first(nil, y1)))) A__FIRST(s(z0), cons(first(y0, first(s(y1), y2)), z2)) -> c1(MARK(first(y0, first(s(y1), y2)))) A__FIRST(s(z0), cons(first(y0, first(cons(y1, y2), y3)), z2)) -> c1(MARK(first(y0, first(cons(y1, y2), y3)))) A__FIRST(s(z0), cons(first(first(y0, y1), first(y2, y3)), z2)) -> c1(MARK(first(first(y0, y1), first(y2, y3)))) A__FIRST(s(z0), cons(first(from(y0), first(y1, y2)), z2)) -> c1(MARK(first(from(y0), first(y1, y2)))) A__FIRST(s(z0), cons(first(s(y0), first(y1, y2)), z2)) -> c1(MARK(first(s(y0), first(y1, y2)))) A__FIRST(s(z0), cons(first(y0, first(y1, y2)), z2)) -> c1(MARK(first(y0, first(y1, y2)))) A__FIRST(s(z0), cons(first(cons(y0, y1), first(y2, y3)), z2)) -> c1(MARK(first(cons(y0, y1), first(y2, y3)))) A__FIRST(s(z0), cons(first(y0, from(y1)), z2)) -> c1(MARK(first(y0, from(y1)))) A__FIRST(s(z0), cons(first(y0, from(first(y1, y2))), z2)) -> c1(MARK(first(y0, from(first(y1, y2))))) A__FIRST(s(z0), cons(first(y0, from(from(y1))), z2)) -> c1(MARK(first(y0, from(from(y1))))) A__FIRST(s(z0), cons(first(y0, from(0)), z2)) -> c1(MARK(first(y0, from(0)))) A__FIRST(s(z0), cons(first(y0, from(nil)), z2)) -> c1(MARK(first(y0, from(nil)))) A__FIRST(s(z0), cons(first(y0, from(s(y1))), z2)) -> c1(MARK(first(y0, from(s(y1))))) A__FIRST(s(z0), cons(first(y0, from(cons(y1, y2))), z2)) -> c1(MARK(first(y0, from(cons(y1, y2))))) A__FIRST(s(z0), cons(first(first(y0, y1), from(y2)), z2)) -> c1(MARK(first(first(y0, y1), from(y2)))) A__FIRST(s(z0), cons(first(from(y0), from(y1)), z2)) -> c1(MARK(first(from(y0), from(y1)))) A__FIRST(s(z0), cons(first(s(y0), from(y1)), z2)) -> c1(MARK(first(s(y0), from(y1)))) A__FIRST(s(z0), cons(first(cons(y0, y1), from(y2)), z2)) -> c1(MARK(first(cons(y0, y1), from(y2)))) A__FIRST(s(z0), cons(first(y0, cons(first(y1, y2), y3)), z2)) -> c1(MARK(first(y0, cons(first(y1, y2), y3)))) A__FIRST(s(z0), cons(first(y0, cons(from(y1), y2)), z2)) -> c1(MARK(first(y0, cons(from(y1), y2)))) A__FIRST(s(z0), cons(first(y0, cons(0, y1)), z2)) -> c1(MARK(first(y0, cons(0, y1)))) A__FIRST(s(z0), cons(first(y0, cons(nil, y1)), z2)) -> c1(MARK(first(y0, cons(nil, y1)))) A__FIRST(s(z0), cons(first(y0, cons(s(y1), y2)), z2)) -> c1(MARK(first(y0, cons(s(y1), y2)))) A__FIRST(s(z0), cons(first(y0, cons(cons(y1, y2), y3)), z2)) -> c1(MARK(first(y0, cons(cons(y1, y2), y3)))) A__FIRST(s(z0), cons(first(first(y0, y1), cons(y2, y3)), z2)) -> c1(MARK(first(first(y0, y1), cons(y2, y3)))) A__FIRST(s(z0), cons(first(from(y0), cons(y1, y2)), z2)) -> c1(MARK(first(from(y0), cons(y1, y2)))) A__FIRST(s(z0), cons(first(s(y0), cons(y1, y2)), z2)) -> c1(MARK(first(s(y0), cons(y1, y2)))) A__FIRST(s(z0), cons(first(cons(y0, y1), cons(y2, y3)), z2)) -> c1(MARK(first(cons(y0, y1), cons(y2, y3)))) A__FIRST(s(z0), cons(first(first(y0, first(y1, y2)), y3), z2)) -> c1(MARK(first(first(y0, first(y1, y2)), y3))) A__FIRST(s(z0), cons(first(first(y0, from(y1)), y2), z2)) -> c1(MARK(first(first(y0, from(y1)), y2))) A__FIRST(s(z0), cons(first(first(y0, 0), y1), z2)) -> c1(MARK(first(first(y0, 0), y1))) A__FIRST(s(z0), cons(first(first(y0, nil), y1), z2)) -> c1(MARK(first(first(y0, nil), y1))) A__FIRST(s(z0), cons(first(first(y0, s(y1)), y2), z2)) -> c1(MARK(first(first(y0, s(y1)), y2))) A__FIRST(s(z0), cons(first(first(y0, cons(y1, y2)), y3), z2)) -> c1(MARK(first(first(y0, cons(y1, y2)), y3))) A__FIRST(s(z0), cons(first(first(first(y0, y1), y2), y3), z2)) -> c1(MARK(first(first(first(y0, y1), y2), y3))) A__FIRST(s(z0), cons(first(first(from(y0), y1), y2), z2)) -> c1(MARK(first(first(from(y0), y1), y2))) A__FIRST(s(z0), cons(first(first(0, y0), y1), z2)) -> c1(MARK(first(first(0, y0), y1))) A__FIRST(s(z0), cons(first(first(nil, y0), y1), z2)) -> c1(MARK(first(first(nil, y0), y1))) A__FIRST(s(z0), cons(first(first(s(y0), y1), y2), z2)) -> c1(MARK(first(first(s(y0), y1), y2))) A__FIRST(s(z0), cons(first(first(cons(y0, y1), y2), y3), z2)) -> c1(MARK(first(first(cons(y0, y1), y2), y3))) A__FIRST(s(z0), cons(first(first(y0, y1), 0), z2)) -> c1(MARK(first(first(y0, y1), 0))) A__FIRST(s(z0), cons(first(first(y0, y1), nil), z2)) -> c1(MARK(first(first(y0, y1), nil))) A__FIRST(s(z0), cons(first(first(y0, y1), s(y2)), z2)) -> c1(MARK(first(first(y0, y1), s(y2)))) A__FIRST(s(z0), cons(first(first(y0, y1), y2), z2)) -> c1(MARK(first(first(y0, y1), y2))) A__FIRST(s(z0), cons(first(from(first(y0, y1)), y2), z2)) -> c1(MARK(first(from(first(y0, y1)), y2))) A__FIRST(s(z0), cons(first(from(from(y0)), y1), z2)) -> c1(MARK(first(from(from(y0)), y1))) A__FIRST(s(z0), cons(first(from(0), y0), z2)) -> c1(MARK(first(from(0), y0))) A__FIRST(s(z0), cons(first(from(nil), y0), z2)) -> c1(MARK(first(from(nil), y0))) A__FIRST(s(z0), cons(first(from(s(y0)), y1), z2)) -> c1(MARK(first(from(s(y0)), y1))) A__FIRST(s(z0), cons(first(from(cons(y0, y1)), y2), z2)) -> c1(MARK(first(from(cons(y0, y1)), y2))) A__FIRST(s(z0), cons(first(from(y0), y1), z2)) -> c1(MARK(first(from(y0), y1))) A__FIRST(s(z0), cons(first(from(y0), 0), z2)) -> c1(MARK(first(from(y0), 0))) A__FIRST(s(z0), cons(first(from(y0), nil), z2)) -> c1(MARK(first(from(y0), nil))) A__FIRST(s(z0), cons(first(from(y0), s(y1)), z2)) -> c1(MARK(first(from(y0), s(y1)))) A__FIRST(s(z0), cons(first(s(first(y0, y1)), y2), z2)) -> c1(MARK(first(s(first(y0, y1)), y2))) A__FIRST(s(z0), cons(first(s(from(y0)), y1), z2)) -> c1(MARK(first(s(from(y0)), y1))) A__FIRST(s(z0), cons(first(s(0), y0), z2)) -> c1(MARK(first(s(0), y0))) A__FIRST(s(z0), cons(first(s(nil), y0), z2)) -> c1(MARK(first(s(nil), y0))) A__FIRST(s(z0), cons(first(s(s(y0)), y1), z2)) -> c1(MARK(first(s(s(y0)), y1))) A__FIRST(s(z0), cons(first(s(cons(y0, y1)), y2), z2)) -> c1(MARK(first(s(cons(y0, y1)), y2))) A__FIRST(s(z0), cons(first(s(y0), y1), z2)) -> c1(MARK(first(s(y0), y1))) A__FIRST(s(z0), cons(first(s(y0), 0), z2)) -> c1(MARK(first(s(y0), 0))) A__FIRST(s(z0), cons(first(s(y0), nil), z2)) -> c1(MARK(first(s(y0), nil))) A__FIRST(s(z0), cons(first(s(y0), s(y1)), z2)) -> c1(MARK(first(s(y0), s(y1)))) A__FIRST(s(z0), cons(first(0, first(y0, y1)), z2)) -> c1(MARK(first(0, first(y0, y1)))) A__FIRST(s(z0), cons(first(nil, first(y0, y1)), z2)) -> c1(MARK(first(nil, first(y0, y1)))) A__FIRST(s(z0), cons(first(0, from(y0)), z2)) -> c1(MARK(first(0, from(y0)))) A__FIRST(s(z0), cons(first(nil, from(y0)), z2)) -> c1(MARK(first(nil, from(y0)))) A__FIRST(s(z0), cons(first(y0, cons(y1, y2)), z2)) -> c1(MARK(first(y0, cons(y1, y2)))) A__FIRST(s(z0), cons(first(0, cons(y0, y1)), z2)) -> c1(MARK(first(0, cons(y0, y1)))) A__FIRST(s(z0), cons(first(nil, cons(y0, y1)), z2)) -> c1(MARK(first(nil, cons(y0, y1)))) MARK(first(x0, cons(0, x2))) -> c5(MARK(x0)) MARK(first(x0, cons(nil, x2))) -> c5(MARK(x0)) MARK(first(x0, cons(0, x2))) -> c6(MARK(cons(0, x2))) MARK(first(x0, cons(nil, x2))) -> c6(MARK(cons(nil, x2))) A__FROM(from(y0)) -> c3(MARK(from(y0))) A__FROM(s(y0)) -> c3(MARK(s(y0))) A__FROM(cons(y0, y1)) -> c3(MARK(cons(y0, y1))) A__FROM(first(y0, 0)) -> c3(MARK(first(y0, 0))) A__FROM(first(y0, nil)) -> c3(MARK(first(y0, nil))) A__FROM(first(y0, s(y1))) -> c3(MARK(first(y0, s(y1)))) A__FROM(first(cons(y0, y1), y2)) -> c3(MARK(first(cons(y0, y1), y2))) A__FROM(first(0, y0)) -> c3(MARK(first(0, y0))) A__FROM(first(nil, y0)) -> c3(MARK(first(nil, y0))) A__FROM(first(y0, first(y1, first(y2, y3)))) -> c3(MARK(first(y0, first(y1, first(y2, y3))))) A__FROM(first(y0, first(y1, from(y2)))) -> c3(MARK(first(y0, first(y1, from(y2))))) A__FROM(first(y0, first(y1, 0))) -> c3(MARK(first(y0, first(y1, 0)))) A__FROM(first(y0, first(y1, nil))) -> c3(MARK(first(y0, first(y1, nil)))) A__FROM(first(y0, first(y1, s(y2)))) -> c3(MARK(first(y0, first(y1, s(y2))))) A__FROM(first(y0, first(y1, cons(y2, y3)))) -> c3(MARK(first(y0, first(y1, cons(y2, y3))))) A__FROM(first(y0, first(first(y1, y2), y3))) -> c3(MARK(first(y0, first(first(y1, y2), y3)))) A__FROM(first(y0, first(from(y1), y2))) -> c3(MARK(first(y0, first(from(y1), y2)))) A__FROM(first(y0, first(0, y1))) -> c3(MARK(first(y0, first(0, y1)))) A__FROM(first(y0, first(nil, y1))) -> c3(MARK(first(y0, first(nil, y1)))) A__FROM(first(y0, first(s(y1), y2))) -> c3(MARK(first(y0, first(s(y1), y2)))) A__FROM(first(y0, first(cons(y1, y2), y3))) -> c3(MARK(first(y0, first(cons(y1, y2), y3)))) A__FROM(first(first(y0, y1), first(y2, y3))) -> c3(MARK(first(first(y0, y1), first(y2, y3)))) A__FROM(first(from(y0), first(y1, y2))) -> c3(MARK(first(from(y0), first(y1, y2)))) A__FROM(first(s(y0), first(y1, y2))) -> c3(MARK(first(s(y0), first(y1, y2)))) A__FROM(first(y0, first(y1, y2))) -> c3(MARK(first(y0, first(y1, y2)))) A__FROM(first(cons(y0, y1), first(y2, y3))) -> c3(MARK(first(cons(y0, y1), first(y2, y3)))) A__FROM(first(y0, from(y1))) -> c3(MARK(first(y0, from(y1)))) A__FROM(first(y0, from(first(y1, y2)))) -> c3(MARK(first(y0, from(first(y1, y2))))) A__FROM(first(y0, from(from(y1)))) -> c3(MARK(first(y0, from(from(y1))))) A__FROM(first(y0, from(0))) -> c3(MARK(first(y0, from(0)))) A__FROM(first(y0, from(nil))) -> c3(MARK(first(y0, from(nil)))) A__FROM(first(y0, from(s(y1)))) -> c3(MARK(first(y0, from(s(y1))))) A__FROM(first(y0, from(cons(y1, y2)))) -> c3(MARK(first(y0, from(cons(y1, y2))))) A__FROM(first(first(y0, y1), from(y2))) -> c3(MARK(first(first(y0, y1), from(y2)))) A__FROM(first(from(y0), from(y1))) -> c3(MARK(first(from(y0), from(y1)))) A__FROM(first(s(y0), from(y1))) -> c3(MARK(first(s(y0), from(y1)))) A__FROM(first(cons(y0, y1), from(y2))) -> c3(MARK(first(cons(y0, y1), from(y2)))) A__FROM(first(y0, cons(first(y1, y2), y3))) -> c3(MARK(first(y0, cons(first(y1, y2), y3)))) A__FROM(first(y0, cons(from(y1), y2))) -> c3(MARK(first(y0, cons(from(y1), y2)))) A__FROM(first(y0, cons(s(y1), y2))) -> c3(MARK(first(y0, cons(s(y1), y2)))) A__FROM(first(y0, cons(cons(y1, y2), y3))) -> c3(MARK(first(y0, cons(cons(y1, y2), y3)))) A__FROM(first(first(y0, y1), cons(y2, y3))) -> c3(MARK(first(first(y0, y1), cons(y2, y3)))) A__FROM(first(from(y0), cons(y1, y2))) -> c3(MARK(first(from(y0), cons(y1, y2)))) A__FROM(first(s(y0), cons(y1, y2))) -> c3(MARK(first(s(y0), cons(y1, y2)))) A__FROM(first(cons(y0, y1), cons(y2, y3))) -> c3(MARK(first(cons(y0, y1), cons(y2, y3)))) A__FROM(first(first(y0, first(y1, y2)), y3)) -> c3(MARK(first(first(y0, first(y1, y2)), y3))) A__FROM(first(first(y0, from(y1)), y2)) -> c3(MARK(first(first(y0, from(y1)), y2))) A__FROM(first(first(y0, 0), y1)) -> c3(MARK(first(first(y0, 0), y1))) A__FROM(first(first(y0, nil), y1)) -> c3(MARK(first(first(y0, nil), y1))) A__FROM(first(first(y0, s(y1)), y2)) -> c3(MARK(first(first(y0, s(y1)), y2))) A__FROM(first(first(y0, cons(y1, y2)), y3)) -> c3(MARK(first(first(y0, cons(y1, y2)), y3))) A__FROM(first(first(first(y0, y1), y2), y3)) -> c3(MARK(first(first(first(y0, y1), y2), y3))) A__FROM(first(first(from(y0), y1), y2)) -> c3(MARK(first(first(from(y0), y1), y2))) A__FROM(first(first(0, y0), y1)) -> c3(MARK(first(first(0, y0), y1))) A__FROM(first(first(nil, y0), y1)) -> c3(MARK(first(first(nil, y0), y1))) A__FROM(first(first(s(y0), y1), y2)) -> c3(MARK(first(first(s(y0), y1), y2))) A__FROM(first(first(cons(y0, y1), y2), y3)) -> c3(MARK(first(first(cons(y0, y1), y2), y3))) A__FROM(first(first(y0, y1), 0)) -> c3(MARK(first(first(y0, y1), 0))) A__FROM(first(first(y0, y1), nil)) -> c3(MARK(first(first(y0, y1), nil))) A__FROM(first(first(y0, y1), s(y2))) -> c3(MARK(first(first(y0, y1), s(y2)))) A__FROM(first(first(y0, y1), y2)) -> c3(MARK(first(first(y0, y1), y2))) A__FROM(first(from(first(y0, y1)), y2)) -> c3(MARK(first(from(first(y0, y1)), y2))) A__FROM(first(from(from(y0)), y1)) -> c3(MARK(first(from(from(y0)), y1))) A__FROM(first(from(0), y0)) -> c3(MARK(first(from(0), y0))) A__FROM(first(from(nil), y0)) -> c3(MARK(first(from(nil), y0))) A__FROM(first(from(s(y0)), y1)) -> c3(MARK(first(from(s(y0)), y1))) A__FROM(first(from(cons(y0, y1)), y2)) -> c3(MARK(first(from(cons(y0, y1)), y2))) A__FROM(first(from(y0), y1)) -> c3(MARK(first(from(y0), y1))) A__FROM(first(from(y0), 0)) -> c3(MARK(first(from(y0), 0))) A__FROM(first(from(y0), nil)) -> c3(MARK(first(from(y0), nil))) A__FROM(first(from(y0), s(y1))) -> c3(MARK(first(from(y0), s(y1)))) A__FROM(first(s(first(y0, y1)), y2)) -> c3(MARK(first(s(first(y0, y1)), y2))) A__FROM(first(s(from(y0)), y1)) -> c3(MARK(first(s(from(y0)), y1))) A__FROM(first(s(0), y0)) -> c3(MARK(first(s(0), y0))) A__FROM(first(s(nil), y0)) -> c3(MARK(first(s(nil), y0))) A__FROM(first(s(s(y0)), y1)) -> c3(MARK(first(s(s(y0)), y1))) A__FROM(first(s(cons(y0, y1)), y2)) -> c3(MARK(first(s(cons(y0, y1)), y2))) A__FROM(first(s(y0), y1)) -> c3(MARK(first(s(y0), y1))) A__FROM(first(s(y0), 0)) -> c3(MARK(first(s(y0), 0))) A__FROM(first(s(y0), nil)) -> c3(MARK(first(s(y0), nil))) A__FROM(first(s(y0), s(y1))) -> c3(MARK(first(s(y0), s(y1)))) A__FROM(first(0, first(y0, y1))) -> c3(MARK(first(0, first(y0, y1)))) A__FROM(first(nil, first(y0, y1))) -> c3(MARK(first(nil, first(y0, y1)))) A__FROM(first(0, from(y0))) -> c3(MARK(first(0, from(y0)))) A__FROM(first(nil, from(y0))) -> c3(MARK(first(nil, from(y0)))) A__FROM(first(y0, cons(y1, y2))) -> c3(MARK(first(y0, cons(y1, y2)))) A__FROM(first(0, cons(y0, y1))) -> c3(MARK(first(0, cons(y0, y1)))) A__FROM(first(nil, cons(y0, y1))) -> c3(MARK(first(nil, cons(y0, y1)))) A__FROM(first(y0, cons(0, y1))) -> c3(MARK(first(y0, cons(0, y1)))) A__FROM(first(y0, cons(nil, y1))) -> c3(MARK(first(y0, cons(nil, y1)))) MARK(from(first(z0, z1))) -> c7(A__FROM(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(from(from(z0))) -> c7(A__FROM(a__from(mark(z0))), MARK(from(z0))) MARK(from(s(z0))) -> c7(A__FROM(s(mark(z0))), MARK(s(z0))) MARK(from(cons(z0, z1))) -> c7(A__FROM(cons(mark(z0), z1)), MARK(cons(z0, z1))) K tuples:none Defined Rule Symbols: a__first_2, a__from_1, mark_1 Defined Pair Symbols: MARK_1, A__FIRST_2, A__FROM_1 Compound Symbols: c10_1, c11_1, c5_1, c6_1, c5_2, c6_2, c1_1, c3_1, c7_2 ---------------------------------------- (145) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (146) Obligation: Complexity Dependency Tuples Problem Rules: a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(0) -> 0 mark(nil) -> nil mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(x0, from(x1))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), from(x1))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(first(x0, cons(from(z0), x2))) -> c5(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(s(z0), x2))) -> c5(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(first(first(z0, z1), cons(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(first(z0, z1))) MARK(first(from(z0), cons(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(first(s(z0), cons(x1, x2))) -> c5(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(s(z0))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(first(x0, first(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(first(x0, first(z0, z1)))) MARK(first(first(x0, from(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(first(x0, from(z0)))) MARK(first(first(x0, 0), x2)) -> c5(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(first(x0, 0))) MARK(first(first(x0, nil), x2)) -> c5(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(first(x0, nil))) MARK(first(first(x0, s(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(first(x0, s(z0)))) MARK(first(first(x0, cons(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(first(x0, cons(z0, z1)))) MARK(first(first(first(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(first(first(z0, z1), x1))) MARK(first(first(from(z0), x1), x2)) -> c5(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(first(from(z0), x1))) MARK(first(first(0, x1), x2)) -> c5(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(first(0, x1))) MARK(first(first(nil, x1), x2)) -> c5(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(first(nil, x1))) MARK(first(first(s(z0), x1), x2)) -> c5(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(first(s(z0), x1))) MARK(first(first(cons(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(first(cons(z0, z1), x1))) MARK(first(first(x0, x1), 0)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), nil)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), s(z0))) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), x2)) -> c5(MARK(first(x0, x1))) MARK(first(from(first(z0, z1)), x1)) -> c5(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(from(first(z0, z1)))) MARK(first(from(from(z0)), x1)) -> c5(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(first(from(s(z0)), x1)) -> c5(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(from(s(z0)))) MARK(first(from(cons(z0, z1)), x1)) -> c5(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(first(from(x0), x1)) -> c5(MARK(from(x0))) MARK(first(from(x0), 0)) -> c5(MARK(from(x0))) MARK(first(from(x0), nil)) -> c5(MARK(from(x0))) MARK(first(from(x0), s(z0))) -> c5(MARK(from(x0))) MARK(first(s(first(z0, z1)), x1)) -> c5(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(s(first(z0, z1)))) MARK(first(s(from(z0)), x1)) -> c5(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(s(from(z0)))) MARK(first(s(0), x1)) -> c5(A__FIRST(s(0), mark(x1)), MARK(s(0))) MARK(first(s(nil), x1)) -> c5(A__FIRST(s(nil), mark(x1)), MARK(s(nil))) MARK(first(s(s(z0)), x1)) -> c5(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(s(s(z0)))) MARK(first(s(cons(z0, z1)), x1)) -> c5(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(s(cons(z0, z1)))) MARK(first(s(x0), x1)) -> c5(MARK(s(x0))) MARK(first(s(x0), 0)) -> c5(MARK(s(x0))) MARK(first(s(x0), nil)) -> c5(MARK(s(x0))) MARK(first(s(x0), s(z0))) -> c5(MARK(s(x0))) MARK(first(x0, first(x1, first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(first(x1, first(z0, z1)))) MARK(first(x0, first(x1, from(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(first(x1, from(z0)))) MARK(first(x0, first(x1, 0))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(first(x1, 0))) MARK(first(x0, first(x1, nil))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(first(x1, nil))) MARK(first(x0, first(x1, s(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(first(x1, s(z0)))) MARK(first(x0, first(x1, cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(first(x1, cons(z0, z1)))) MARK(first(x0, first(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(first(first(z0, z1), x2))) MARK(first(x0, first(from(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(first(from(z0), x2))) MARK(first(x0, first(0, x2))) -> c6(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(first(0, x2))) MARK(first(x0, first(nil, x2))) -> c6(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(first(nil, x2))) MARK(first(x0, first(s(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(first(s(z0), x2))) MARK(first(x0, first(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(first(cons(z0, z1), x2))) MARK(first(first(z0, z1), first(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(from(z0), first(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(s(z0), first(x1, x2))) -> c6(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(x0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(nil, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(cons(z0, z1), first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(x0, from(x1))) -> c6(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(first(x0, from(first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(from(first(z0, z1)))) MARK(first(x0, from(from(z0)))) -> c6(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(first(x0, from(s(z0)))) -> c6(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(from(s(z0)))) MARK(first(x0, from(cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(first(first(z0, z1), from(x1))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(first(from(z0), from(x1))) -> c6(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(s(z0), from(x1))) -> c6(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(x0, from(x1))) -> c6(MARK(from(x1))) MARK(first(0, from(x1))) -> c6(MARK(from(x1))) MARK(first(nil, from(x1))) -> c6(MARK(from(x1))) MARK(first(cons(z0, z1), from(x1))) -> c6(MARK(from(x1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(cons(first(z0, z1), x2))) MARK(first(x0, cons(from(z0), x2))) -> c6(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(first(x0, cons(s(z0), x2))) -> c6(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(cons(s(z0), x2))) MARK(first(x0, cons(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(first(first(z0, z1), cons(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(from(z0), cons(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(s(z0), cons(x1, x2))) -> c6(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(x0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(nil, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(first(x0, first(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(first(first(x0, from(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, 0), x2)) -> c6(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(x2)) MARK(first(first(x0, nil), x2)) -> c6(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(x2)) MARK(first(first(x0, s(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, cons(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(first(first(first(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(from(z0), x1), x2)) -> c6(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(0, x1), x2)) -> c6(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(nil, x1), x2)) -> c6(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(s(z0), x1), x2)) -> c6(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(cons(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(x0, x1), s(z0))) -> c6(MARK(s(z0))) MARK(first(first(x0, x1), x2)) -> c6(MARK(x2)) MARK(first(from(first(z0, z1)), x1)) -> c6(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(first(from(from(z0)), x1)) -> c6(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(first(from(0), x1)) -> c6(A__FIRST(a__from(0), mark(x1)), MARK(x1)) MARK(first(from(nil), x1)) -> c6(A__FIRST(a__from(nil), mark(x1)), MARK(x1)) MARK(first(from(s(z0)), x1)) -> c6(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(x1)) MARK(first(from(cons(z0, z1)), x1)) -> c6(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(first(from(x0), s(z0))) -> c6(MARK(s(z0))) MARK(first(from(x0), x1)) -> c6(MARK(x1)) MARK(first(s(first(z0, z1)), x1)) -> c6(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(first(s(from(z0)), x1)) -> c6(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(first(s(0), x1)) -> c6(A__FIRST(s(0), mark(x1)), MARK(x1)) MARK(first(s(nil), x1)) -> c6(A__FIRST(s(nil), mark(x1)), MARK(x1)) MARK(first(s(s(z0)), x1)) -> c6(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(x1)) MARK(first(s(cons(z0, z1)), x1)) -> c6(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(first(s(x0), s(z0))) -> c6(MARK(s(z0))) A__FIRST(s(z0), cons(from(y0), z2)) -> c1(MARK(from(y0))) A__FIRST(s(z0), cons(s(y0), z2)) -> c1(MARK(s(y0))) A__FIRST(s(z0), cons(cons(y0, y1), z2)) -> c1(MARK(cons(y0, y1))) A__FIRST(s(z0), cons(first(y0, 0), z2)) -> c1(MARK(first(y0, 0))) A__FIRST(s(z0), cons(first(y0, nil), z2)) -> c1(MARK(first(y0, nil))) A__FIRST(s(z0), cons(first(y0, s(y1)), z2)) -> c1(MARK(first(y0, s(y1)))) A__FIRST(s(z0), cons(first(cons(y0, y1), y2), z2)) -> c1(MARK(first(cons(y0, y1), y2))) A__FIRST(s(z0), cons(first(0, y0), z2)) -> c1(MARK(first(0, y0))) A__FIRST(s(z0), cons(first(nil, y0), z2)) -> c1(MARK(first(nil, y0))) A__FIRST(s(z0), cons(first(y0, first(y1, first(y2, y3))), z2)) -> c1(MARK(first(y0, first(y1, first(y2, y3))))) A__FIRST(s(z0), cons(first(y0, first(y1, from(y2))), z2)) -> c1(MARK(first(y0, first(y1, from(y2))))) A__FIRST(s(z0), cons(first(y0, first(y1, 0)), z2)) -> c1(MARK(first(y0, first(y1, 0)))) A__FIRST(s(z0), cons(first(y0, first(y1, nil)), z2)) -> c1(MARK(first(y0, first(y1, nil)))) A__FIRST(s(z0), cons(first(y0, first(y1, s(y2))), z2)) -> c1(MARK(first(y0, first(y1, s(y2))))) A__FIRST(s(z0), cons(first(y0, first(y1, cons(y2, y3))), z2)) -> c1(MARK(first(y0, first(y1, cons(y2, y3))))) A__FIRST(s(z0), cons(first(y0, first(first(y1, y2), y3)), z2)) -> c1(MARK(first(y0, first(first(y1, y2), y3)))) A__FIRST(s(z0), cons(first(y0, first(from(y1), y2)), z2)) -> c1(MARK(first(y0, first(from(y1), y2)))) A__FIRST(s(z0), cons(first(y0, first(0, y1)), z2)) -> c1(MARK(first(y0, first(0, y1)))) A__FIRST(s(z0), cons(first(y0, first(nil, y1)), z2)) -> c1(MARK(first(y0, first(nil, y1)))) A__FIRST(s(z0), cons(first(y0, first(s(y1), y2)), z2)) -> c1(MARK(first(y0, first(s(y1), y2)))) A__FIRST(s(z0), cons(first(y0, first(cons(y1, y2), y3)), z2)) -> c1(MARK(first(y0, first(cons(y1, y2), y3)))) A__FIRST(s(z0), cons(first(first(y0, y1), first(y2, y3)), z2)) -> c1(MARK(first(first(y0, y1), first(y2, y3)))) A__FIRST(s(z0), cons(first(from(y0), first(y1, y2)), z2)) -> c1(MARK(first(from(y0), first(y1, y2)))) A__FIRST(s(z0), cons(first(s(y0), first(y1, y2)), z2)) -> c1(MARK(first(s(y0), first(y1, y2)))) A__FIRST(s(z0), cons(first(y0, first(y1, y2)), z2)) -> c1(MARK(first(y0, first(y1, y2)))) A__FIRST(s(z0), cons(first(cons(y0, y1), first(y2, y3)), z2)) -> c1(MARK(first(cons(y0, y1), first(y2, y3)))) A__FIRST(s(z0), cons(first(y0, from(y1)), z2)) -> c1(MARK(first(y0, from(y1)))) A__FIRST(s(z0), cons(first(y0, from(first(y1, y2))), z2)) -> c1(MARK(first(y0, from(first(y1, y2))))) A__FIRST(s(z0), cons(first(y0, from(from(y1))), z2)) -> c1(MARK(first(y0, from(from(y1))))) A__FIRST(s(z0), cons(first(y0, from(0)), z2)) -> c1(MARK(first(y0, from(0)))) A__FIRST(s(z0), cons(first(y0, from(nil)), z2)) -> c1(MARK(first(y0, from(nil)))) A__FIRST(s(z0), cons(first(y0, from(s(y1))), z2)) -> c1(MARK(first(y0, from(s(y1))))) A__FIRST(s(z0), cons(first(y0, from(cons(y1, y2))), z2)) -> c1(MARK(first(y0, from(cons(y1, y2))))) A__FIRST(s(z0), cons(first(first(y0, y1), from(y2)), z2)) -> c1(MARK(first(first(y0, y1), from(y2)))) A__FIRST(s(z0), cons(first(from(y0), from(y1)), z2)) -> c1(MARK(first(from(y0), from(y1)))) A__FIRST(s(z0), cons(first(s(y0), from(y1)), z2)) -> c1(MARK(first(s(y0), from(y1)))) A__FIRST(s(z0), cons(first(cons(y0, y1), from(y2)), z2)) -> c1(MARK(first(cons(y0, y1), from(y2)))) A__FIRST(s(z0), cons(first(y0, cons(first(y1, y2), y3)), z2)) -> c1(MARK(first(y0, cons(first(y1, y2), y3)))) A__FIRST(s(z0), cons(first(y0, cons(from(y1), y2)), z2)) -> c1(MARK(first(y0, cons(from(y1), y2)))) A__FIRST(s(z0), cons(first(y0, cons(0, y1)), z2)) -> c1(MARK(first(y0, cons(0, y1)))) A__FIRST(s(z0), cons(first(y0, cons(nil, y1)), z2)) -> c1(MARK(first(y0, cons(nil, y1)))) A__FIRST(s(z0), cons(first(y0, cons(s(y1), y2)), z2)) -> c1(MARK(first(y0, cons(s(y1), y2)))) A__FIRST(s(z0), cons(first(y0, cons(cons(y1, y2), y3)), z2)) -> c1(MARK(first(y0, cons(cons(y1, y2), y3)))) A__FIRST(s(z0), cons(first(first(y0, y1), cons(y2, y3)), z2)) -> c1(MARK(first(first(y0, y1), cons(y2, y3)))) A__FIRST(s(z0), cons(first(from(y0), cons(y1, y2)), z2)) -> c1(MARK(first(from(y0), cons(y1, y2)))) A__FIRST(s(z0), cons(first(s(y0), cons(y1, y2)), z2)) -> c1(MARK(first(s(y0), cons(y1, y2)))) A__FIRST(s(z0), cons(first(cons(y0, y1), cons(y2, y3)), z2)) -> c1(MARK(first(cons(y0, y1), cons(y2, y3)))) A__FIRST(s(z0), cons(first(first(y0, first(y1, y2)), y3), z2)) -> c1(MARK(first(first(y0, first(y1, y2)), y3))) A__FIRST(s(z0), cons(first(first(y0, from(y1)), y2), z2)) -> c1(MARK(first(first(y0, from(y1)), y2))) A__FIRST(s(z0), cons(first(first(y0, 0), y1), z2)) -> c1(MARK(first(first(y0, 0), y1))) A__FIRST(s(z0), cons(first(first(y0, nil), y1), z2)) -> c1(MARK(first(first(y0, nil), y1))) A__FIRST(s(z0), cons(first(first(y0, s(y1)), y2), z2)) -> c1(MARK(first(first(y0, s(y1)), y2))) A__FIRST(s(z0), cons(first(first(y0, cons(y1, y2)), y3), z2)) -> c1(MARK(first(first(y0, cons(y1, y2)), y3))) A__FIRST(s(z0), cons(first(first(first(y0, y1), y2), y3), z2)) -> c1(MARK(first(first(first(y0, y1), y2), y3))) A__FIRST(s(z0), cons(first(first(from(y0), y1), y2), z2)) -> c1(MARK(first(first(from(y0), y1), y2))) A__FIRST(s(z0), cons(first(first(0, y0), y1), z2)) -> c1(MARK(first(first(0, y0), y1))) A__FIRST(s(z0), cons(first(first(nil, y0), y1), z2)) -> c1(MARK(first(first(nil, y0), y1))) A__FIRST(s(z0), cons(first(first(s(y0), y1), y2), z2)) -> c1(MARK(first(first(s(y0), y1), y2))) A__FIRST(s(z0), cons(first(first(cons(y0, y1), y2), y3), z2)) -> c1(MARK(first(first(cons(y0, y1), y2), y3))) A__FIRST(s(z0), cons(first(first(y0, y1), 0), z2)) -> c1(MARK(first(first(y0, y1), 0))) A__FIRST(s(z0), cons(first(first(y0, y1), nil), z2)) -> c1(MARK(first(first(y0, y1), nil))) A__FIRST(s(z0), cons(first(first(y0, y1), s(y2)), z2)) -> c1(MARK(first(first(y0, y1), s(y2)))) A__FIRST(s(z0), cons(first(first(y0, y1), y2), z2)) -> c1(MARK(first(first(y0, y1), y2))) A__FIRST(s(z0), cons(first(from(first(y0, y1)), y2), z2)) -> c1(MARK(first(from(first(y0, y1)), y2))) A__FIRST(s(z0), cons(first(from(from(y0)), y1), z2)) -> c1(MARK(first(from(from(y0)), y1))) A__FIRST(s(z0), cons(first(from(0), y0), z2)) -> c1(MARK(first(from(0), y0))) A__FIRST(s(z0), cons(first(from(nil), y0), z2)) -> c1(MARK(first(from(nil), y0))) A__FIRST(s(z0), cons(first(from(s(y0)), y1), z2)) -> c1(MARK(first(from(s(y0)), y1))) A__FIRST(s(z0), cons(first(from(cons(y0, y1)), y2), z2)) -> c1(MARK(first(from(cons(y0, y1)), y2))) A__FIRST(s(z0), cons(first(from(y0), y1), z2)) -> c1(MARK(first(from(y0), y1))) A__FIRST(s(z0), cons(first(from(y0), 0), z2)) -> c1(MARK(first(from(y0), 0))) A__FIRST(s(z0), cons(first(from(y0), nil), z2)) -> c1(MARK(first(from(y0), nil))) A__FIRST(s(z0), cons(first(from(y0), s(y1)), z2)) -> c1(MARK(first(from(y0), s(y1)))) A__FIRST(s(z0), cons(first(s(first(y0, y1)), y2), z2)) -> c1(MARK(first(s(first(y0, y1)), y2))) A__FIRST(s(z0), cons(first(s(from(y0)), y1), z2)) -> c1(MARK(first(s(from(y0)), y1))) A__FIRST(s(z0), cons(first(s(0), y0), z2)) -> c1(MARK(first(s(0), y0))) A__FIRST(s(z0), cons(first(s(nil), y0), z2)) -> c1(MARK(first(s(nil), y0))) A__FIRST(s(z0), cons(first(s(s(y0)), y1), z2)) -> c1(MARK(first(s(s(y0)), y1))) A__FIRST(s(z0), cons(first(s(cons(y0, y1)), y2), z2)) -> c1(MARK(first(s(cons(y0, y1)), y2))) A__FIRST(s(z0), cons(first(s(y0), y1), z2)) -> c1(MARK(first(s(y0), y1))) A__FIRST(s(z0), cons(first(s(y0), 0), z2)) -> c1(MARK(first(s(y0), 0))) A__FIRST(s(z0), cons(first(s(y0), nil), z2)) -> c1(MARK(first(s(y0), nil))) A__FIRST(s(z0), cons(first(s(y0), s(y1)), z2)) -> c1(MARK(first(s(y0), s(y1)))) A__FIRST(s(z0), cons(first(0, first(y0, y1)), z2)) -> c1(MARK(first(0, first(y0, y1)))) A__FIRST(s(z0), cons(first(nil, first(y0, y1)), z2)) -> c1(MARK(first(nil, first(y0, y1)))) A__FIRST(s(z0), cons(first(0, from(y0)), z2)) -> c1(MARK(first(0, from(y0)))) A__FIRST(s(z0), cons(first(nil, from(y0)), z2)) -> c1(MARK(first(nil, from(y0)))) A__FIRST(s(z0), cons(first(y0, cons(y1, y2)), z2)) -> c1(MARK(first(y0, cons(y1, y2)))) A__FIRST(s(z0), cons(first(0, cons(y0, y1)), z2)) -> c1(MARK(first(0, cons(y0, y1)))) A__FIRST(s(z0), cons(first(nil, cons(y0, y1)), z2)) -> c1(MARK(first(nil, cons(y0, y1)))) MARK(first(x0, cons(0, x2))) -> c5(MARK(x0)) MARK(first(x0, cons(nil, x2))) -> c5(MARK(x0)) MARK(first(x0, cons(0, x2))) -> c6(MARK(cons(0, x2))) MARK(first(x0, cons(nil, x2))) -> c6(MARK(cons(nil, x2))) A__FROM(from(y0)) -> c3(MARK(from(y0))) A__FROM(s(y0)) -> c3(MARK(s(y0))) A__FROM(cons(y0, y1)) -> c3(MARK(cons(y0, y1))) A__FROM(first(y0, 0)) -> c3(MARK(first(y0, 0))) A__FROM(first(y0, nil)) -> c3(MARK(first(y0, nil))) A__FROM(first(y0, s(y1))) -> c3(MARK(first(y0, s(y1)))) A__FROM(first(cons(y0, y1), y2)) -> c3(MARK(first(cons(y0, y1), y2))) A__FROM(first(0, y0)) -> c3(MARK(first(0, y0))) A__FROM(first(nil, y0)) -> c3(MARK(first(nil, y0))) A__FROM(first(y0, first(y1, first(y2, y3)))) -> c3(MARK(first(y0, first(y1, first(y2, y3))))) A__FROM(first(y0, first(y1, from(y2)))) -> c3(MARK(first(y0, first(y1, from(y2))))) A__FROM(first(y0, first(y1, 0))) -> c3(MARK(first(y0, first(y1, 0)))) A__FROM(first(y0, first(y1, nil))) -> c3(MARK(first(y0, first(y1, nil)))) A__FROM(first(y0, first(y1, s(y2)))) -> c3(MARK(first(y0, first(y1, s(y2))))) A__FROM(first(y0, first(y1, cons(y2, y3)))) -> c3(MARK(first(y0, first(y1, cons(y2, y3))))) A__FROM(first(y0, first(first(y1, y2), y3))) -> c3(MARK(first(y0, first(first(y1, y2), y3)))) A__FROM(first(y0, first(from(y1), y2))) -> c3(MARK(first(y0, first(from(y1), y2)))) A__FROM(first(y0, first(0, y1))) -> c3(MARK(first(y0, first(0, y1)))) A__FROM(first(y0, first(nil, y1))) -> c3(MARK(first(y0, first(nil, y1)))) A__FROM(first(y0, first(s(y1), y2))) -> c3(MARK(first(y0, first(s(y1), y2)))) A__FROM(first(y0, first(cons(y1, y2), y3))) -> c3(MARK(first(y0, first(cons(y1, y2), y3)))) A__FROM(first(first(y0, y1), first(y2, y3))) -> c3(MARK(first(first(y0, y1), first(y2, y3)))) A__FROM(first(from(y0), first(y1, y2))) -> c3(MARK(first(from(y0), first(y1, y2)))) A__FROM(first(s(y0), first(y1, y2))) -> c3(MARK(first(s(y0), first(y1, y2)))) A__FROM(first(y0, first(y1, y2))) -> c3(MARK(first(y0, first(y1, y2)))) A__FROM(first(cons(y0, y1), first(y2, y3))) -> c3(MARK(first(cons(y0, y1), first(y2, y3)))) A__FROM(first(y0, from(y1))) -> c3(MARK(first(y0, from(y1)))) A__FROM(first(y0, from(first(y1, y2)))) -> c3(MARK(first(y0, from(first(y1, y2))))) A__FROM(first(y0, from(from(y1)))) -> c3(MARK(first(y0, from(from(y1))))) A__FROM(first(y0, from(0))) -> c3(MARK(first(y0, from(0)))) A__FROM(first(y0, from(nil))) -> c3(MARK(first(y0, from(nil)))) A__FROM(first(y0, from(s(y1)))) -> c3(MARK(first(y0, from(s(y1))))) A__FROM(first(y0, from(cons(y1, y2)))) -> c3(MARK(first(y0, from(cons(y1, y2))))) A__FROM(first(first(y0, y1), from(y2))) -> c3(MARK(first(first(y0, y1), from(y2)))) A__FROM(first(from(y0), from(y1))) -> c3(MARK(first(from(y0), from(y1)))) A__FROM(first(s(y0), from(y1))) -> c3(MARK(first(s(y0), from(y1)))) A__FROM(first(cons(y0, y1), from(y2))) -> c3(MARK(first(cons(y0, y1), from(y2)))) A__FROM(first(y0, cons(first(y1, y2), y3))) -> c3(MARK(first(y0, cons(first(y1, y2), y3)))) A__FROM(first(y0, cons(from(y1), y2))) -> c3(MARK(first(y0, cons(from(y1), y2)))) A__FROM(first(y0, cons(s(y1), y2))) -> c3(MARK(first(y0, cons(s(y1), y2)))) A__FROM(first(y0, cons(cons(y1, y2), y3))) -> c3(MARK(first(y0, cons(cons(y1, y2), y3)))) A__FROM(first(first(y0, y1), cons(y2, y3))) -> c3(MARK(first(first(y0, y1), cons(y2, y3)))) A__FROM(first(from(y0), cons(y1, y2))) -> c3(MARK(first(from(y0), cons(y1, y2)))) A__FROM(first(s(y0), cons(y1, y2))) -> c3(MARK(first(s(y0), cons(y1, y2)))) A__FROM(first(cons(y0, y1), cons(y2, y3))) -> c3(MARK(first(cons(y0, y1), cons(y2, y3)))) A__FROM(first(first(y0, first(y1, y2)), y3)) -> c3(MARK(first(first(y0, first(y1, y2)), y3))) A__FROM(first(first(y0, from(y1)), y2)) -> c3(MARK(first(first(y0, from(y1)), y2))) A__FROM(first(first(y0, 0), y1)) -> c3(MARK(first(first(y0, 0), y1))) A__FROM(first(first(y0, nil), y1)) -> c3(MARK(first(first(y0, nil), y1))) A__FROM(first(first(y0, s(y1)), y2)) -> c3(MARK(first(first(y0, s(y1)), y2))) A__FROM(first(first(y0, cons(y1, y2)), y3)) -> c3(MARK(first(first(y0, cons(y1, y2)), y3))) A__FROM(first(first(first(y0, y1), y2), y3)) -> c3(MARK(first(first(first(y0, y1), y2), y3))) A__FROM(first(first(from(y0), y1), y2)) -> c3(MARK(first(first(from(y0), y1), y2))) A__FROM(first(first(0, y0), y1)) -> c3(MARK(first(first(0, y0), y1))) A__FROM(first(first(nil, y0), y1)) -> c3(MARK(first(first(nil, y0), y1))) A__FROM(first(first(s(y0), y1), y2)) -> c3(MARK(first(first(s(y0), y1), y2))) A__FROM(first(first(cons(y0, y1), y2), y3)) -> c3(MARK(first(first(cons(y0, y1), y2), y3))) A__FROM(first(first(y0, y1), 0)) -> c3(MARK(first(first(y0, y1), 0))) A__FROM(first(first(y0, y1), nil)) -> c3(MARK(first(first(y0, y1), nil))) A__FROM(first(first(y0, y1), s(y2))) -> c3(MARK(first(first(y0, y1), s(y2)))) A__FROM(first(first(y0, y1), y2)) -> c3(MARK(first(first(y0, y1), y2))) A__FROM(first(from(first(y0, y1)), y2)) -> c3(MARK(first(from(first(y0, y1)), y2))) A__FROM(first(from(from(y0)), y1)) -> c3(MARK(first(from(from(y0)), y1))) A__FROM(first(from(0), y0)) -> c3(MARK(first(from(0), y0))) A__FROM(first(from(nil), y0)) -> c3(MARK(first(from(nil), y0))) A__FROM(first(from(s(y0)), y1)) -> c3(MARK(first(from(s(y0)), y1))) A__FROM(first(from(cons(y0, y1)), y2)) -> c3(MARK(first(from(cons(y0, y1)), y2))) A__FROM(first(from(y0), y1)) -> c3(MARK(first(from(y0), y1))) A__FROM(first(from(y0), 0)) -> c3(MARK(first(from(y0), 0))) A__FROM(first(from(y0), nil)) -> c3(MARK(first(from(y0), nil))) A__FROM(first(from(y0), s(y1))) -> c3(MARK(first(from(y0), s(y1)))) A__FROM(first(s(first(y0, y1)), y2)) -> c3(MARK(first(s(first(y0, y1)), y2))) A__FROM(first(s(from(y0)), y1)) -> c3(MARK(first(s(from(y0)), y1))) A__FROM(first(s(0), y0)) -> c3(MARK(first(s(0), y0))) A__FROM(first(s(nil), y0)) -> c3(MARK(first(s(nil), y0))) A__FROM(first(s(s(y0)), y1)) -> c3(MARK(first(s(s(y0)), y1))) A__FROM(first(s(cons(y0, y1)), y2)) -> c3(MARK(first(s(cons(y0, y1)), y2))) A__FROM(first(s(y0), y1)) -> c3(MARK(first(s(y0), y1))) A__FROM(first(s(y0), 0)) -> c3(MARK(first(s(y0), 0))) A__FROM(first(s(y0), nil)) -> c3(MARK(first(s(y0), nil))) A__FROM(first(s(y0), s(y1))) -> c3(MARK(first(s(y0), s(y1)))) A__FROM(first(0, first(y0, y1))) -> c3(MARK(first(0, first(y0, y1)))) A__FROM(first(nil, first(y0, y1))) -> c3(MARK(first(nil, first(y0, y1)))) A__FROM(first(0, from(y0))) -> c3(MARK(first(0, from(y0)))) A__FROM(first(nil, from(y0))) -> c3(MARK(first(nil, from(y0)))) A__FROM(first(y0, cons(y1, y2))) -> c3(MARK(first(y0, cons(y1, y2)))) A__FROM(first(0, cons(y0, y1))) -> c3(MARK(first(0, cons(y0, y1)))) A__FROM(first(nil, cons(y0, y1))) -> c3(MARK(first(nil, cons(y0, y1)))) A__FROM(first(y0, cons(0, y1))) -> c3(MARK(first(y0, cons(0, y1)))) A__FROM(first(y0, cons(nil, y1))) -> c3(MARK(first(y0, cons(nil, y1)))) MARK(from(first(z0, z1))) -> c7(A__FROM(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(from(from(z0))) -> c7(A__FROM(a__from(mark(z0))), MARK(from(z0))) MARK(from(s(z0))) -> c7(A__FROM(s(mark(z0))), MARK(s(z0))) MARK(from(cons(z0, z1))) -> c7(A__FROM(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(from(0), x1)) -> c5(A__FIRST(a__from(0), mark(x1))) MARK(first(from(nil), x1)) -> c5(A__FIRST(a__from(nil), mark(x1))) MARK(first(x0, from(0))) -> c6(A__FIRST(mark(x0), a__from(0))) MARK(first(x0, from(nil))) -> c6(A__FIRST(mark(x0), a__from(nil))) S tuples: MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(x0, from(x1))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), from(x1))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(first(x0, cons(from(z0), x2))) -> c5(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(s(z0), x2))) -> c5(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(first(first(z0, z1), cons(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(first(z0, z1))) MARK(first(from(z0), cons(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(first(s(z0), cons(x1, x2))) -> c5(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(s(z0))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(first(x0, first(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(first(x0, first(z0, z1)))) MARK(first(first(x0, from(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(first(x0, from(z0)))) MARK(first(first(x0, 0), x2)) -> c5(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(first(x0, 0))) MARK(first(first(x0, nil), x2)) -> c5(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(first(x0, nil))) MARK(first(first(x0, s(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(first(x0, s(z0)))) MARK(first(first(x0, cons(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(first(x0, cons(z0, z1)))) MARK(first(first(first(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(first(first(z0, z1), x1))) MARK(first(first(from(z0), x1), x2)) -> c5(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(first(from(z0), x1))) MARK(first(first(0, x1), x2)) -> c5(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(first(0, x1))) MARK(first(first(nil, x1), x2)) -> c5(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(first(nil, x1))) MARK(first(first(s(z0), x1), x2)) -> c5(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(first(s(z0), x1))) MARK(first(first(cons(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(first(cons(z0, z1), x1))) MARK(first(first(x0, x1), 0)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), nil)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), s(z0))) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), x2)) -> c5(MARK(first(x0, x1))) MARK(first(from(first(z0, z1)), x1)) -> c5(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(from(first(z0, z1)))) MARK(first(from(from(z0)), x1)) -> c5(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(first(from(s(z0)), x1)) -> c5(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(from(s(z0)))) MARK(first(from(cons(z0, z1)), x1)) -> c5(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(first(from(x0), x1)) -> c5(MARK(from(x0))) MARK(first(from(x0), 0)) -> c5(MARK(from(x0))) MARK(first(from(x0), nil)) -> c5(MARK(from(x0))) MARK(first(from(x0), s(z0))) -> c5(MARK(from(x0))) MARK(first(s(first(z0, z1)), x1)) -> c5(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(s(first(z0, z1)))) MARK(first(s(from(z0)), x1)) -> c5(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(s(from(z0)))) MARK(first(s(0), x1)) -> c5(A__FIRST(s(0), mark(x1)), MARK(s(0))) MARK(first(s(nil), x1)) -> c5(A__FIRST(s(nil), mark(x1)), MARK(s(nil))) MARK(first(s(s(z0)), x1)) -> c5(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(s(s(z0)))) MARK(first(s(cons(z0, z1)), x1)) -> c5(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(s(cons(z0, z1)))) MARK(first(s(x0), x1)) -> c5(MARK(s(x0))) MARK(first(s(x0), 0)) -> c5(MARK(s(x0))) MARK(first(s(x0), nil)) -> c5(MARK(s(x0))) MARK(first(s(x0), s(z0))) -> c5(MARK(s(x0))) MARK(first(x0, first(x1, first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(first(x1, first(z0, z1)))) MARK(first(x0, first(x1, from(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(first(x1, from(z0)))) MARK(first(x0, first(x1, 0))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(first(x1, 0))) MARK(first(x0, first(x1, nil))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(first(x1, nil))) MARK(first(x0, first(x1, s(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(first(x1, s(z0)))) MARK(first(x0, first(x1, cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(first(x1, cons(z0, z1)))) MARK(first(x0, first(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(first(first(z0, z1), x2))) MARK(first(x0, first(from(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(first(from(z0), x2))) MARK(first(x0, first(0, x2))) -> c6(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(first(0, x2))) MARK(first(x0, first(nil, x2))) -> c6(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(first(nil, x2))) MARK(first(x0, first(s(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(first(s(z0), x2))) MARK(first(x0, first(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(first(cons(z0, z1), x2))) MARK(first(first(z0, z1), first(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(from(z0), first(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(s(z0), first(x1, x2))) -> c6(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(x0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(nil, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(cons(z0, z1), first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(x0, from(x1))) -> c6(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(first(x0, from(first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(from(first(z0, z1)))) MARK(first(x0, from(from(z0)))) -> c6(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(first(x0, from(s(z0)))) -> c6(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(from(s(z0)))) MARK(first(x0, from(cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(first(first(z0, z1), from(x1))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(first(from(z0), from(x1))) -> c6(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(s(z0), from(x1))) -> c6(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(x0, from(x1))) -> c6(MARK(from(x1))) MARK(first(0, from(x1))) -> c6(MARK(from(x1))) MARK(first(nil, from(x1))) -> c6(MARK(from(x1))) MARK(first(cons(z0, z1), from(x1))) -> c6(MARK(from(x1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(cons(first(z0, z1), x2))) MARK(first(x0, cons(from(z0), x2))) -> c6(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(first(x0, cons(s(z0), x2))) -> c6(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(cons(s(z0), x2))) MARK(first(x0, cons(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(first(first(z0, z1), cons(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(from(z0), cons(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(s(z0), cons(x1, x2))) -> c6(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(x0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(nil, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(first(x0, first(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(first(first(x0, from(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, 0), x2)) -> c6(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(x2)) MARK(first(first(x0, nil), x2)) -> c6(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(x2)) MARK(first(first(x0, s(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, cons(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(first(first(first(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(from(z0), x1), x2)) -> c6(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(0, x1), x2)) -> c6(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(nil, x1), x2)) -> c6(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(s(z0), x1), x2)) -> c6(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(cons(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(x0, x1), s(z0))) -> c6(MARK(s(z0))) MARK(first(first(x0, x1), x2)) -> c6(MARK(x2)) MARK(first(from(first(z0, z1)), x1)) -> c6(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(first(from(from(z0)), x1)) -> c6(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(first(from(0), x1)) -> c6(A__FIRST(a__from(0), mark(x1)), MARK(x1)) MARK(first(from(nil), x1)) -> c6(A__FIRST(a__from(nil), mark(x1)), MARK(x1)) MARK(first(from(s(z0)), x1)) -> c6(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(x1)) MARK(first(from(cons(z0, z1)), x1)) -> c6(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(first(from(x0), s(z0))) -> c6(MARK(s(z0))) MARK(first(from(x0), x1)) -> c6(MARK(x1)) MARK(first(s(first(z0, z1)), x1)) -> c6(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(first(s(from(z0)), x1)) -> c6(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(first(s(0), x1)) -> c6(A__FIRST(s(0), mark(x1)), MARK(x1)) MARK(first(s(nil), x1)) -> c6(A__FIRST(s(nil), mark(x1)), MARK(x1)) MARK(first(s(s(z0)), x1)) -> c6(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(x1)) MARK(first(s(cons(z0, z1)), x1)) -> c6(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(first(s(x0), s(z0))) -> c6(MARK(s(z0))) A__FIRST(s(z0), cons(from(y0), z2)) -> c1(MARK(from(y0))) A__FIRST(s(z0), cons(s(y0), z2)) -> c1(MARK(s(y0))) A__FIRST(s(z0), cons(cons(y0, y1), z2)) -> c1(MARK(cons(y0, y1))) A__FIRST(s(z0), cons(first(y0, 0), z2)) -> c1(MARK(first(y0, 0))) A__FIRST(s(z0), cons(first(y0, nil), z2)) -> c1(MARK(first(y0, nil))) A__FIRST(s(z0), cons(first(y0, s(y1)), z2)) -> c1(MARK(first(y0, s(y1)))) A__FIRST(s(z0), cons(first(cons(y0, y1), y2), z2)) -> c1(MARK(first(cons(y0, y1), y2))) A__FIRST(s(z0), cons(first(0, y0), z2)) -> c1(MARK(first(0, y0))) A__FIRST(s(z0), cons(first(nil, y0), z2)) -> c1(MARK(first(nil, y0))) A__FIRST(s(z0), cons(first(y0, first(y1, first(y2, y3))), z2)) -> c1(MARK(first(y0, first(y1, first(y2, y3))))) A__FIRST(s(z0), cons(first(y0, first(y1, from(y2))), z2)) -> c1(MARK(first(y0, first(y1, from(y2))))) A__FIRST(s(z0), cons(first(y0, first(y1, 0)), z2)) -> c1(MARK(first(y0, first(y1, 0)))) A__FIRST(s(z0), cons(first(y0, first(y1, nil)), z2)) -> c1(MARK(first(y0, first(y1, nil)))) A__FIRST(s(z0), cons(first(y0, first(y1, s(y2))), z2)) -> c1(MARK(first(y0, first(y1, s(y2))))) A__FIRST(s(z0), cons(first(y0, first(y1, cons(y2, y3))), z2)) -> c1(MARK(first(y0, first(y1, cons(y2, y3))))) A__FIRST(s(z0), cons(first(y0, first(first(y1, y2), y3)), z2)) -> c1(MARK(first(y0, first(first(y1, y2), y3)))) A__FIRST(s(z0), cons(first(y0, first(from(y1), y2)), z2)) -> c1(MARK(first(y0, first(from(y1), y2)))) A__FIRST(s(z0), cons(first(y0, first(0, y1)), z2)) -> c1(MARK(first(y0, first(0, y1)))) A__FIRST(s(z0), cons(first(y0, first(nil, y1)), z2)) -> c1(MARK(first(y0, first(nil, y1)))) A__FIRST(s(z0), cons(first(y0, first(s(y1), y2)), z2)) -> c1(MARK(first(y0, first(s(y1), y2)))) A__FIRST(s(z0), cons(first(y0, first(cons(y1, y2), y3)), z2)) -> c1(MARK(first(y0, first(cons(y1, y2), y3)))) A__FIRST(s(z0), cons(first(first(y0, y1), first(y2, y3)), z2)) -> c1(MARK(first(first(y0, y1), first(y2, y3)))) A__FIRST(s(z0), cons(first(from(y0), first(y1, y2)), z2)) -> c1(MARK(first(from(y0), first(y1, y2)))) A__FIRST(s(z0), cons(first(s(y0), first(y1, y2)), z2)) -> c1(MARK(first(s(y0), first(y1, y2)))) A__FIRST(s(z0), cons(first(y0, first(y1, y2)), z2)) -> c1(MARK(first(y0, first(y1, y2)))) A__FIRST(s(z0), cons(first(cons(y0, y1), first(y2, y3)), z2)) -> c1(MARK(first(cons(y0, y1), first(y2, y3)))) A__FIRST(s(z0), cons(first(y0, from(y1)), z2)) -> c1(MARK(first(y0, from(y1)))) A__FIRST(s(z0), cons(first(y0, from(first(y1, y2))), z2)) -> c1(MARK(first(y0, from(first(y1, y2))))) A__FIRST(s(z0), cons(first(y0, from(from(y1))), z2)) -> c1(MARK(first(y0, from(from(y1))))) A__FIRST(s(z0), cons(first(y0, from(0)), z2)) -> c1(MARK(first(y0, from(0)))) A__FIRST(s(z0), cons(first(y0, from(nil)), z2)) -> c1(MARK(first(y0, from(nil)))) A__FIRST(s(z0), cons(first(y0, from(s(y1))), z2)) -> c1(MARK(first(y0, from(s(y1))))) A__FIRST(s(z0), cons(first(y0, from(cons(y1, y2))), z2)) -> c1(MARK(first(y0, from(cons(y1, y2))))) A__FIRST(s(z0), cons(first(first(y0, y1), from(y2)), z2)) -> c1(MARK(first(first(y0, y1), from(y2)))) A__FIRST(s(z0), cons(first(from(y0), from(y1)), z2)) -> c1(MARK(first(from(y0), from(y1)))) A__FIRST(s(z0), cons(first(s(y0), from(y1)), z2)) -> c1(MARK(first(s(y0), from(y1)))) A__FIRST(s(z0), cons(first(cons(y0, y1), from(y2)), z2)) -> c1(MARK(first(cons(y0, y1), from(y2)))) A__FIRST(s(z0), cons(first(y0, cons(first(y1, y2), y3)), z2)) -> c1(MARK(first(y0, cons(first(y1, y2), y3)))) A__FIRST(s(z0), cons(first(y0, cons(from(y1), y2)), z2)) -> c1(MARK(first(y0, cons(from(y1), y2)))) A__FIRST(s(z0), cons(first(y0, cons(0, y1)), z2)) -> c1(MARK(first(y0, cons(0, y1)))) A__FIRST(s(z0), cons(first(y0, cons(nil, y1)), z2)) -> c1(MARK(first(y0, cons(nil, y1)))) A__FIRST(s(z0), cons(first(y0, cons(s(y1), y2)), z2)) -> c1(MARK(first(y0, cons(s(y1), y2)))) A__FIRST(s(z0), cons(first(y0, cons(cons(y1, y2), y3)), z2)) -> c1(MARK(first(y0, cons(cons(y1, y2), y3)))) A__FIRST(s(z0), cons(first(first(y0, y1), cons(y2, y3)), z2)) -> c1(MARK(first(first(y0, y1), cons(y2, y3)))) A__FIRST(s(z0), cons(first(from(y0), cons(y1, y2)), z2)) -> c1(MARK(first(from(y0), cons(y1, y2)))) A__FIRST(s(z0), cons(first(s(y0), cons(y1, y2)), z2)) -> c1(MARK(first(s(y0), cons(y1, y2)))) A__FIRST(s(z0), cons(first(cons(y0, y1), cons(y2, y3)), z2)) -> c1(MARK(first(cons(y0, y1), cons(y2, y3)))) A__FIRST(s(z0), cons(first(first(y0, first(y1, y2)), y3), z2)) -> c1(MARK(first(first(y0, first(y1, y2)), y3))) A__FIRST(s(z0), cons(first(first(y0, from(y1)), y2), z2)) -> c1(MARK(first(first(y0, from(y1)), y2))) A__FIRST(s(z0), cons(first(first(y0, 0), y1), z2)) -> c1(MARK(first(first(y0, 0), y1))) A__FIRST(s(z0), cons(first(first(y0, nil), y1), z2)) -> c1(MARK(first(first(y0, nil), y1))) A__FIRST(s(z0), cons(first(first(y0, s(y1)), y2), z2)) -> c1(MARK(first(first(y0, s(y1)), y2))) A__FIRST(s(z0), cons(first(first(y0, cons(y1, y2)), y3), z2)) -> c1(MARK(first(first(y0, cons(y1, y2)), y3))) A__FIRST(s(z0), cons(first(first(first(y0, y1), y2), y3), z2)) -> c1(MARK(first(first(first(y0, y1), y2), y3))) A__FIRST(s(z0), cons(first(first(from(y0), y1), y2), z2)) -> c1(MARK(first(first(from(y0), y1), y2))) A__FIRST(s(z0), cons(first(first(0, y0), y1), z2)) -> c1(MARK(first(first(0, y0), y1))) A__FIRST(s(z0), cons(first(first(nil, y0), y1), z2)) -> c1(MARK(first(first(nil, y0), y1))) A__FIRST(s(z0), cons(first(first(s(y0), y1), y2), z2)) -> c1(MARK(first(first(s(y0), y1), y2))) A__FIRST(s(z0), cons(first(first(cons(y0, y1), y2), y3), z2)) -> c1(MARK(first(first(cons(y0, y1), y2), y3))) A__FIRST(s(z0), cons(first(first(y0, y1), 0), z2)) -> c1(MARK(first(first(y0, y1), 0))) A__FIRST(s(z0), cons(first(first(y0, y1), nil), z2)) -> c1(MARK(first(first(y0, y1), nil))) A__FIRST(s(z0), cons(first(first(y0, y1), s(y2)), z2)) -> c1(MARK(first(first(y0, y1), s(y2)))) A__FIRST(s(z0), cons(first(first(y0, y1), y2), z2)) -> c1(MARK(first(first(y0, y1), y2))) A__FIRST(s(z0), cons(first(from(first(y0, y1)), y2), z2)) -> c1(MARK(first(from(first(y0, y1)), y2))) A__FIRST(s(z0), cons(first(from(from(y0)), y1), z2)) -> c1(MARK(first(from(from(y0)), y1))) A__FIRST(s(z0), cons(first(from(0), y0), z2)) -> c1(MARK(first(from(0), y0))) A__FIRST(s(z0), cons(first(from(nil), y0), z2)) -> c1(MARK(first(from(nil), y0))) A__FIRST(s(z0), cons(first(from(s(y0)), y1), z2)) -> c1(MARK(first(from(s(y0)), y1))) A__FIRST(s(z0), cons(first(from(cons(y0, y1)), y2), z2)) -> c1(MARK(first(from(cons(y0, y1)), y2))) A__FIRST(s(z0), cons(first(from(y0), y1), z2)) -> c1(MARK(first(from(y0), y1))) A__FIRST(s(z0), cons(first(from(y0), 0), z2)) -> c1(MARK(first(from(y0), 0))) A__FIRST(s(z0), cons(first(from(y0), nil), z2)) -> c1(MARK(first(from(y0), nil))) A__FIRST(s(z0), cons(first(from(y0), s(y1)), z2)) -> c1(MARK(first(from(y0), s(y1)))) A__FIRST(s(z0), cons(first(s(first(y0, y1)), y2), z2)) -> c1(MARK(first(s(first(y0, y1)), y2))) A__FIRST(s(z0), cons(first(s(from(y0)), y1), z2)) -> c1(MARK(first(s(from(y0)), y1))) A__FIRST(s(z0), cons(first(s(0), y0), z2)) -> c1(MARK(first(s(0), y0))) A__FIRST(s(z0), cons(first(s(nil), y0), z2)) -> c1(MARK(first(s(nil), y0))) A__FIRST(s(z0), cons(first(s(s(y0)), y1), z2)) -> c1(MARK(first(s(s(y0)), y1))) A__FIRST(s(z0), cons(first(s(cons(y0, y1)), y2), z2)) -> c1(MARK(first(s(cons(y0, y1)), y2))) A__FIRST(s(z0), cons(first(s(y0), y1), z2)) -> c1(MARK(first(s(y0), y1))) A__FIRST(s(z0), cons(first(s(y0), 0), z2)) -> c1(MARK(first(s(y0), 0))) A__FIRST(s(z0), cons(first(s(y0), nil), z2)) -> c1(MARK(first(s(y0), nil))) A__FIRST(s(z0), cons(first(s(y0), s(y1)), z2)) -> c1(MARK(first(s(y0), s(y1)))) A__FIRST(s(z0), cons(first(0, first(y0, y1)), z2)) -> c1(MARK(first(0, first(y0, y1)))) A__FIRST(s(z0), cons(first(nil, first(y0, y1)), z2)) -> c1(MARK(first(nil, first(y0, y1)))) A__FIRST(s(z0), cons(first(0, from(y0)), z2)) -> c1(MARK(first(0, from(y0)))) A__FIRST(s(z0), cons(first(nil, from(y0)), z2)) -> c1(MARK(first(nil, from(y0)))) A__FIRST(s(z0), cons(first(y0, cons(y1, y2)), z2)) -> c1(MARK(first(y0, cons(y1, y2)))) A__FIRST(s(z0), cons(first(0, cons(y0, y1)), z2)) -> c1(MARK(first(0, cons(y0, y1)))) A__FIRST(s(z0), cons(first(nil, cons(y0, y1)), z2)) -> c1(MARK(first(nil, cons(y0, y1)))) MARK(first(x0, cons(0, x2))) -> c5(MARK(x0)) MARK(first(x0, cons(nil, x2))) -> c5(MARK(x0)) MARK(first(x0, cons(0, x2))) -> c6(MARK(cons(0, x2))) MARK(first(x0, cons(nil, x2))) -> c6(MARK(cons(nil, x2))) A__FROM(from(y0)) -> c3(MARK(from(y0))) A__FROM(s(y0)) -> c3(MARK(s(y0))) A__FROM(cons(y0, y1)) -> c3(MARK(cons(y0, y1))) A__FROM(first(y0, 0)) -> c3(MARK(first(y0, 0))) A__FROM(first(y0, nil)) -> c3(MARK(first(y0, nil))) A__FROM(first(y0, s(y1))) -> c3(MARK(first(y0, s(y1)))) A__FROM(first(cons(y0, y1), y2)) -> c3(MARK(first(cons(y0, y1), y2))) A__FROM(first(0, y0)) -> c3(MARK(first(0, y0))) A__FROM(first(nil, y0)) -> c3(MARK(first(nil, y0))) A__FROM(first(y0, first(y1, first(y2, y3)))) -> c3(MARK(first(y0, first(y1, first(y2, y3))))) A__FROM(first(y0, first(y1, from(y2)))) -> c3(MARK(first(y0, first(y1, from(y2))))) A__FROM(first(y0, first(y1, 0))) -> c3(MARK(first(y0, first(y1, 0)))) A__FROM(first(y0, first(y1, nil))) -> c3(MARK(first(y0, first(y1, nil)))) A__FROM(first(y0, first(y1, s(y2)))) -> c3(MARK(first(y0, first(y1, s(y2))))) A__FROM(first(y0, first(y1, cons(y2, y3)))) -> c3(MARK(first(y0, first(y1, cons(y2, y3))))) A__FROM(first(y0, first(first(y1, y2), y3))) -> c3(MARK(first(y0, first(first(y1, y2), y3)))) A__FROM(first(y0, first(from(y1), y2))) -> c3(MARK(first(y0, first(from(y1), y2)))) A__FROM(first(y0, first(0, y1))) -> c3(MARK(first(y0, first(0, y1)))) A__FROM(first(y0, first(nil, y1))) -> c3(MARK(first(y0, first(nil, y1)))) A__FROM(first(y0, first(s(y1), y2))) -> c3(MARK(first(y0, first(s(y1), y2)))) A__FROM(first(y0, first(cons(y1, y2), y3))) -> c3(MARK(first(y0, first(cons(y1, y2), y3)))) A__FROM(first(first(y0, y1), first(y2, y3))) -> c3(MARK(first(first(y0, y1), first(y2, y3)))) A__FROM(first(from(y0), first(y1, y2))) -> c3(MARK(first(from(y0), first(y1, y2)))) A__FROM(first(s(y0), first(y1, y2))) -> c3(MARK(first(s(y0), first(y1, y2)))) A__FROM(first(y0, first(y1, y2))) -> c3(MARK(first(y0, first(y1, y2)))) A__FROM(first(cons(y0, y1), first(y2, y3))) -> c3(MARK(first(cons(y0, y1), first(y2, y3)))) A__FROM(first(y0, from(y1))) -> c3(MARK(first(y0, from(y1)))) A__FROM(first(y0, from(first(y1, y2)))) -> c3(MARK(first(y0, from(first(y1, y2))))) A__FROM(first(y0, from(from(y1)))) -> c3(MARK(first(y0, from(from(y1))))) A__FROM(first(y0, from(0))) -> c3(MARK(first(y0, from(0)))) A__FROM(first(y0, from(nil))) -> c3(MARK(first(y0, from(nil)))) A__FROM(first(y0, from(s(y1)))) -> c3(MARK(first(y0, from(s(y1))))) A__FROM(first(y0, from(cons(y1, y2)))) -> c3(MARK(first(y0, from(cons(y1, y2))))) A__FROM(first(first(y0, y1), from(y2))) -> c3(MARK(first(first(y0, y1), from(y2)))) A__FROM(first(from(y0), from(y1))) -> c3(MARK(first(from(y0), from(y1)))) A__FROM(first(s(y0), from(y1))) -> c3(MARK(first(s(y0), from(y1)))) A__FROM(first(cons(y0, y1), from(y2))) -> c3(MARK(first(cons(y0, y1), from(y2)))) A__FROM(first(y0, cons(first(y1, y2), y3))) -> c3(MARK(first(y0, cons(first(y1, y2), y3)))) A__FROM(first(y0, cons(from(y1), y2))) -> c3(MARK(first(y0, cons(from(y1), y2)))) A__FROM(first(y0, cons(s(y1), y2))) -> c3(MARK(first(y0, cons(s(y1), y2)))) A__FROM(first(y0, cons(cons(y1, y2), y3))) -> c3(MARK(first(y0, cons(cons(y1, y2), y3)))) A__FROM(first(first(y0, y1), cons(y2, y3))) -> c3(MARK(first(first(y0, y1), cons(y2, y3)))) A__FROM(first(from(y0), cons(y1, y2))) -> c3(MARK(first(from(y0), cons(y1, y2)))) A__FROM(first(s(y0), cons(y1, y2))) -> c3(MARK(first(s(y0), cons(y1, y2)))) A__FROM(first(cons(y0, y1), cons(y2, y3))) -> c3(MARK(first(cons(y0, y1), cons(y2, y3)))) A__FROM(first(first(y0, first(y1, y2)), y3)) -> c3(MARK(first(first(y0, first(y1, y2)), y3))) A__FROM(first(first(y0, from(y1)), y2)) -> c3(MARK(first(first(y0, from(y1)), y2))) A__FROM(first(first(y0, 0), y1)) -> c3(MARK(first(first(y0, 0), y1))) A__FROM(first(first(y0, nil), y1)) -> c3(MARK(first(first(y0, nil), y1))) A__FROM(first(first(y0, s(y1)), y2)) -> c3(MARK(first(first(y0, s(y1)), y2))) A__FROM(first(first(y0, cons(y1, y2)), y3)) -> c3(MARK(first(first(y0, cons(y1, y2)), y3))) A__FROM(first(first(first(y0, y1), y2), y3)) -> c3(MARK(first(first(first(y0, y1), y2), y3))) A__FROM(first(first(from(y0), y1), y2)) -> c3(MARK(first(first(from(y0), y1), y2))) A__FROM(first(first(0, y0), y1)) -> c3(MARK(first(first(0, y0), y1))) A__FROM(first(first(nil, y0), y1)) -> c3(MARK(first(first(nil, y0), y1))) A__FROM(first(first(s(y0), y1), y2)) -> c3(MARK(first(first(s(y0), y1), y2))) A__FROM(first(first(cons(y0, y1), y2), y3)) -> c3(MARK(first(first(cons(y0, y1), y2), y3))) A__FROM(first(first(y0, y1), 0)) -> c3(MARK(first(first(y0, y1), 0))) A__FROM(first(first(y0, y1), nil)) -> c3(MARK(first(first(y0, y1), nil))) A__FROM(first(first(y0, y1), s(y2))) -> c3(MARK(first(first(y0, y1), s(y2)))) A__FROM(first(first(y0, y1), y2)) -> c3(MARK(first(first(y0, y1), y2))) A__FROM(first(from(first(y0, y1)), y2)) -> c3(MARK(first(from(first(y0, y1)), y2))) A__FROM(first(from(from(y0)), y1)) -> c3(MARK(first(from(from(y0)), y1))) A__FROM(first(from(0), y0)) -> c3(MARK(first(from(0), y0))) A__FROM(first(from(nil), y0)) -> c3(MARK(first(from(nil), y0))) A__FROM(first(from(s(y0)), y1)) -> c3(MARK(first(from(s(y0)), y1))) A__FROM(first(from(cons(y0, y1)), y2)) -> c3(MARK(first(from(cons(y0, y1)), y2))) A__FROM(first(from(y0), y1)) -> c3(MARK(first(from(y0), y1))) A__FROM(first(from(y0), 0)) -> c3(MARK(first(from(y0), 0))) A__FROM(first(from(y0), nil)) -> c3(MARK(first(from(y0), nil))) A__FROM(first(from(y0), s(y1))) -> c3(MARK(first(from(y0), s(y1)))) A__FROM(first(s(first(y0, y1)), y2)) -> c3(MARK(first(s(first(y0, y1)), y2))) A__FROM(first(s(from(y0)), y1)) -> c3(MARK(first(s(from(y0)), y1))) A__FROM(first(s(0), y0)) -> c3(MARK(first(s(0), y0))) A__FROM(first(s(nil), y0)) -> c3(MARK(first(s(nil), y0))) A__FROM(first(s(s(y0)), y1)) -> c3(MARK(first(s(s(y0)), y1))) A__FROM(first(s(cons(y0, y1)), y2)) -> c3(MARK(first(s(cons(y0, y1)), y2))) A__FROM(first(s(y0), y1)) -> c3(MARK(first(s(y0), y1))) A__FROM(first(s(y0), 0)) -> c3(MARK(first(s(y0), 0))) A__FROM(first(s(y0), nil)) -> c3(MARK(first(s(y0), nil))) A__FROM(first(s(y0), s(y1))) -> c3(MARK(first(s(y0), s(y1)))) A__FROM(first(0, first(y0, y1))) -> c3(MARK(first(0, first(y0, y1)))) A__FROM(first(nil, first(y0, y1))) -> c3(MARK(first(nil, first(y0, y1)))) A__FROM(first(0, from(y0))) -> c3(MARK(first(0, from(y0)))) A__FROM(first(nil, from(y0))) -> c3(MARK(first(nil, from(y0)))) A__FROM(first(y0, cons(y1, y2))) -> c3(MARK(first(y0, cons(y1, y2)))) A__FROM(first(0, cons(y0, y1))) -> c3(MARK(first(0, cons(y0, y1)))) A__FROM(first(nil, cons(y0, y1))) -> c3(MARK(first(nil, cons(y0, y1)))) A__FROM(first(y0, cons(0, y1))) -> c3(MARK(first(y0, cons(0, y1)))) A__FROM(first(y0, cons(nil, y1))) -> c3(MARK(first(y0, cons(nil, y1)))) MARK(from(first(z0, z1))) -> c7(A__FROM(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(from(from(z0))) -> c7(A__FROM(a__from(mark(z0))), MARK(from(z0))) MARK(from(s(z0))) -> c7(A__FROM(s(mark(z0))), MARK(s(z0))) MARK(from(cons(z0, z1))) -> c7(A__FROM(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(from(0), x1)) -> c5(A__FIRST(a__from(0), mark(x1))) MARK(first(from(nil), x1)) -> c5(A__FIRST(a__from(nil), mark(x1))) MARK(first(x0, from(0))) -> c6(A__FIRST(mark(x0), a__from(0))) MARK(first(x0, from(nil))) -> c6(A__FIRST(mark(x0), a__from(nil))) K tuples:none Defined Rule Symbols: a__first_2, a__from_1, mark_1 Defined Pair Symbols: MARK_1, A__FIRST_2, A__FROM_1 Compound Symbols: c10_1, c11_1, c5_1, c6_1, c5_2, c6_2, c1_1, c3_1, c7_2 ---------------------------------------- (147) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(from(first(z0, z1))) -> c7(A__FROM(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) by MARK(from(first(x0, x1))) -> c7(A__FROM(first(mark(x0), mark(x1))), MARK(first(x0, x1))) MARK(from(first(x0, first(z0, z1)))) -> c7(A__FROM(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) MARK(from(first(x0, from(z0)))) -> c7(A__FROM(a__first(mark(x0), a__from(mark(z0)))), MARK(first(x0, from(z0)))) MARK(from(first(x0, 0))) -> c7(A__FROM(a__first(mark(x0), 0)), MARK(first(x0, 0))) MARK(from(first(x0, nil))) -> c7(A__FROM(a__first(mark(x0), nil)), MARK(first(x0, nil))) MARK(from(first(x0, s(z0)))) -> c7(A__FROM(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) MARK(from(first(x0, cons(z0, z1)))) -> c7(A__FROM(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) MARK(from(first(first(z0, z1), x1))) -> c7(A__FROM(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) MARK(from(first(from(z0), x1))) -> c7(A__FROM(a__first(a__from(mark(z0)), mark(x1))), MARK(first(from(z0), x1))) MARK(from(first(0, x1))) -> c7(A__FROM(a__first(0, mark(x1))), MARK(first(0, x1))) MARK(from(first(nil, x1))) -> c7(A__FROM(a__first(nil, mark(x1))), MARK(first(nil, x1))) MARK(from(first(s(z0), x1))) -> c7(A__FROM(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) MARK(from(first(cons(z0, z1), x1))) -> c7(A__FROM(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) ---------------------------------------- (148) Obligation: Complexity Dependency Tuples Problem Rules: a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(0) -> 0 mark(nil) -> nil mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(x0, from(x1))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), from(x1))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(first(x0, cons(from(z0), x2))) -> c5(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(s(z0), x2))) -> c5(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(first(first(z0, z1), cons(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(first(z0, z1))) MARK(first(from(z0), cons(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(first(s(z0), cons(x1, x2))) -> c5(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(s(z0))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(first(x0, first(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(first(x0, first(z0, z1)))) MARK(first(first(x0, from(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(first(x0, from(z0)))) MARK(first(first(x0, 0), x2)) -> c5(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(first(x0, 0))) MARK(first(first(x0, nil), x2)) -> c5(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(first(x0, nil))) MARK(first(first(x0, s(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(first(x0, s(z0)))) MARK(first(first(x0, cons(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(first(x0, cons(z0, z1)))) MARK(first(first(first(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(first(first(z0, z1), x1))) MARK(first(first(from(z0), x1), x2)) -> c5(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(first(from(z0), x1))) MARK(first(first(0, x1), x2)) -> c5(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(first(0, x1))) MARK(first(first(nil, x1), x2)) -> c5(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(first(nil, x1))) MARK(first(first(s(z0), x1), x2)) -> c5(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(first(s(z0), x1))) MARK(first(first(cons(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(first(cons(z0, z1), x1))) MARK(first(first(x0, x1), 0)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), nil)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), s(z0))) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), x2)) -> c5(MARK(first(x0, x1))) MARK(first(from(first(z0, z1)), x1)) -> c5(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(from(first(z0, z1)))) MARK(first(from(from(z0)), x1)) -> c5(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(first(from(s(z0)), x1)) -> c5(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(from(s(z0)))) MARK(first(from(cons(z0, z1)), x1)) -> c5(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(first(from(x0), x1)) -> c5(MARK(from(x0))) MARK(first(from(x0), 0)) -> c5(MARK(from(x0))) MARK(first(from(x0), nil)) -> c5(MARK(from(x0))) MARK(first(from(x0), s(z0))) -> c5(MARK(from(x0))) MARK(first(s(first(z0, z1)), x1)) -> c5(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(s(first(z0, z1)))) MARK(first(s(from(z0)), x1)) -> c5(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(s(from(z0)))) MARK(first(s(0), x1)) -> c5(A__FIRST(s(0), mark(x1)), MARK(s(0))) MARK(first(s(nil), x1)) -> c5(A__FIRST(s(nil), mark(x1)), MARK(s(nil))) MARK(first(s(s(z0)), x1)) -> c5(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(s(s(z0)))) MARK(first(s(cons(z0, z1)), x1)) -> c5(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(s(cons(z0, z1)))) MARK(first(s(x0), x1)) -> c5(MARK(s(x0))) MARK(first(s(x0), 0)) -> c5(MARK(s(x0))) MARK(first(s(x0), nil)) -> c5(MARK(s(x0))) MARK(first(s(x0), s(z0))) -> c5(MARK(s(x0))) MARK(first(x0, first(x1, first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(first(x1, first(z0, z1)))) MARK(first(x0, first(x1, from(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(first(x1, from(z0)))) MARK(first(x0, first(x1, 0))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(first(x1, 0))) MARK(first(x0, first(x1, nil))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(first(x1, nil))) MARK(first(x0, first(x1, s(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(first(x1, s(z0)))) MARK(first(x0, first(x1, cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(first(x1, cons(z0, z1)))) MARK(first(x0, first(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(first(first(z0, z1), x2))) MARK(first(x0, first(from(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(first(from(z0), x2))) MARK(first(x0, first(0, x2))) -> c6(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(first(0, x2))) MARK(first(x0, first(nil, x2))) -> c6(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(first(nil, x2))) MARK(first(x0, first(s(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(first(s(z0), x2))) MARK(first(x0, first(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(first(cons(z0, z1), x2))) MARK(first(first(z0, z1), first(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(from(z0), first(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(s(z0), first(x1, x2))) -> c6(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(x0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(nil, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(cons(z0, z1), first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(x0, from(x1))) -> c6(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(first(x0, from(first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(from(first(z0, z1)))) MARK(first(x0, from(from(z0)))) -> c6(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(first(x0, from(s(z0)))) -> c6(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(from(s(z0)))) MARK(first(x0, from(cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(first(first(z0, z1), from(x1))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(first(from(z0), from(x1))) -> c6(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(s(z0), from(x1))) -> c6(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(x0, from(x1))) -> c6(MARK(from(x1))) MARK(first(0, from(x1))) -> c6(MARK(from(x1))) MARK(first(nil, from(x1))) -> c6(MARK(from(x1))) MARK(first(cons(z0, z1), from(x1))) -> c6(MARK(from(x1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(cons(first(z0, z1), x2))) MARK(first(x0, cons(from(z0), x2))) -> c6(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(first(x0, cons(s(z0), x2))) -> c6(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(cons(s(z0), x2))) MARK(first(x0, cons(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(first(first(z0, z1), cons(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(from(z0), cons(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(s(z0), cons(x1, x2))) -> c6(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(x0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(nil, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(first(x0, first(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(first(first(x0, from(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, 0), x2)) -> c6(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(x2)) MARK(first(first(x0, nil), x2)) -> c6(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(x2)) MARK(first(first(x0, s(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, cons(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(first(first(first(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(from(z0), x1), x2)) -> c6(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(0, x1), x2)) -> c6(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(nil, x1), x2)) -> c6(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(s(z0), x1), x2)) -> c6(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(cons(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(x0, x1), s(z0))) -> c6(MARK(s(z0))) MARK(first(first(x0, x1), x2)) -> c6(MARK(x2)) MARK(first(from(first(z0, z1)), x1)) -> c6(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(first(from(from(z0)), x1)) -> c6(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(first(from(0), x1)) -> c6(A__FIRST(a__from(0), mark(x1)), MARK(x1)) MARK(first(from(nil), x1)) -> c6(A__FIRST(a__from(nil), mark(x1)), MARK(x1)) MARK(first(from(s(z0)), x1)) -> c6(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(x1)) MARK(first(from(cons(z0, z1)), x1)) -> c6(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(first(from(x0), s(z0))) -> c6(MARK(s(z0))) MARK(first(from(x0), x1)) -> c6(MARK(x1)) MARK(first(s(first(z0, z1)), x1)) -> c6(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(first(s(from(z0)), x1)) -> c6(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(first(s(0), x1)) -> c6(A__FIRST(s(0), mark(x1)), MARK(x1)) MARK(first(s(nil), x1)) -> c6(A__FIRST(s(nil), mark(x1)), MARK(x1)) MARK(first(s(s(z0)), x1)) -> c6(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(x1)) MARK(first(s(cons(z0, z1)), x1)) -> c6(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(first(s(x0), s(z0))) -> c6(MARK(s(z0))) A__FIRST(s(z0), cons(from(y0), z2)) -> c1(MARK(from(y0))) A__FIRST(s(z0), cons(s(y0), z2)) -> c1(MARK(s(y0))) A__FIRST(s(z0), cons(cons(y0, y1), z2)) -> c1(MARK(cons(y0, y1))) A__FIRST(s(z0), cons(first(y0, 0), z2)) -> c1(MARK(first(y0, 0))) A__FIRST(s(z0), cons(first(y0, nil), z2)) -> c1(MARK(first(y0, nil))) A__FIRST(s(z0), cons(first(y0, s(y1)), z2)) -> c1(MARK(first(y0, s(y1)))) A__FIRST(s(z0), cons(first(cons(y0, y1), y2), z2)) -> c1(MARK(first(cons(y0, y1), y2))) A__FIRST(s(z0), cons(first(0, y0), z2)) -> c1(MARK(first(0, y0))) A__FIRST(s(z0), cons(first(nil, y0), z2)) -> c1(MARK(first(nil, y0))) A__FIRST(s(z0), cons(first(y0, first(y1, first(y2, y3))), z2)) -> c1(MARK(first(y0, first(y1, first(y2, y3))))) A__FIRST(s(z0), cons(first(y0, first(y1, from(y2))), z2)) -> c1(MARK(first(y0, first(y1, from(y2))))) A__FIRST(s(z0), cons(first(y0, first(y1, 0)), z2)) -> c1(MARK(first(y0, first(y1, 0)))) A__FIRST(s(z0), cons(first(y0, first(y1, nil)), z2)) -> c1(MARK(first(y0, first(y1, nil)))) A__FIRST(s(z0), cons(first(y0, first(y1, s(y2))), z2)) -> c1(MARK(first(y0, first(y1, s(y2))))) A__FIRST(s(z0), cons(first(y0, first(y1, cons(y2, y3))), z2)) -> c1(MARK(first(y0, first(y1, cons(y2, y3))))) A__FIRST(s(z0), cons(first(y0, first(first(y1, y2), y3)), z2)) -> c1(MARK(first(y0, first(first(y1, y2), y3)))) A__FIRST(s(z0), cons(first(y0, first(from(y1), y2)), z2)) -> c1(MARK(first(y0, first(from(y1), y2)))) A__FIRST(s(z0), cons(first(y0, first(0, y1)), z2)) -> c1(MARK(first(y0, first(0, y1)))) A__FIRST(s(z0), cons(first(y0, first(nil, y1)), z2)) -> c1(MARK(first(y0, first(nil, y1)))) A__FIRST(s(z0), cons(first(y0, first(s(y1), y2)), z2)) -> c1(MARK(first(y0, first(s(y1), y2)))) A__FIRST(s(z0), cons(first(y0, first(cons(y1, y2), y3)), z2)) -> c1(MARK(first(y0, first(cons(y1, y2), y3)))) A__FIRST(s(z0), cons(first(first(y0, y1), first(y2, y3)), z2)) -> c1(MARK(first(first(y0, y1), first(y2, y3)))) A__FIRST(s(z0), cons(first(from(y0), first(y1, y2)), z2)) -> c1(MARK(first(from(y0), first(y1, y2)))) A__FIRST(s(z0), cons(first(s(y0), first(y1, y2)), z2)) -> c1(MARK(first(s(y0), first(y1, y2)))) A__FIRST(s(z0), cons(first(y0, first(y1, y2)), z2)) -> c1(MARK(first(y0, first(y1, y2)))) A__FIRST(s(z0), cons(first(cons(y0, y1), first(y2, y3)), z2)) -> c1(MARK(first(cons(y0, y1), first(y2, y3)))) A__FIRST(s(z0), cons(first(y0, from(y1)), z2)) -> c1(MARK(first(y0, from(y1)))) A__FIRST(s(z0), cons(first(y0, from(first(y1, y2))), z2)) -> c1(MARK(first(y0, from(first(y1, y2))))) A__FIRST(s(z0), cons(first(y0, from(from(y1))), z2)) -> c1(MARK(first(y0, from(from(y1))))) A__FIRST(s(z0), cons(first(y0, from(0)), z2)) -> c1(MARK(first(y0, from(0)))) A__FIRST(s(z0), cons(first(y0, from(nil)), z2)) -> c1(MARK(first(y0, from(nil)))) A__FIRST(s(z0), cons(first(y0, from(s(y1))), z2)) -> c1(MARK(first(y0, from(s(y1))))) A__FIRST(s(z0), cons(first(y0, from(cons(y1, y2))), z2)) -> c1(MARK(first(y0, from(cons(y1, y2))))) A__FIRST(s(z0), cons(first(first(y0, y1), from(y2)), z2)) -> c1(MARK(first(first(y0, y1), from(y2)))) A__FIRST(s(z0), cons(first(from(y0), from(y1)), z2)) -> c1(MARK(first(from(y0), from(y1)))) A__FIRST(s(z0), cons(first(s(y0), from(y1)), z2)) -> c1(MARK(first(s(y0), from(y1)))) A__FIRST(s(z0), cons(first(cons(y0, y1), from(y2)), z2)) -> c1(MARK(first(cons(y0, y1), from(y2)))) A__FIRST(s(z0), cons(first(y0, cons(first(y1, y2), y3)), z2)) -> c1(MARK(first(y0, cons(first(y1, y2), y3)))) A__FIRST(s(z0), cons(first(y0, cons(from(y1), y2)), z2)) -> c1(MARK(first(y0, cons(from(y1), y2)))) A__FIRST(s(z0), cons(first(y0, cons(0, y1)), z2)) -> c1(MARK(first(y0, cons(0, y1)))) A__FIRST(s(z0), cons(first(y0, cons(nil, y1)), z2)) -> c1(MARK(first(y0, cons(nil, y1)))) A__FIRST(s(z0), cons(first(y0, cons(s(y1), y2)), z2)) -> c1(MARK(first(y0, cons(s(y1), y2)))) A__FIRST(s(z0), cons(first(y0, cons(cons(y1, y2), y3)), z2)) -> c1(MARK(first(y0, cons(cons(y1, y2), y3)))) A__FIRST(s(z0), cons(first(first(y0, y1), cons(y2, y3)), z2)) -> c1(MARK(first(first(y0, y1), cons(y2, y3)))) A__FIRST(s(z0), cons(first(from(y0), cons(y1, y2)), z2)) -> c1(MARK(first(from(y0), cons(y1, y2)))) A__FIRST(s(z0), cons(first(s(y0), cons(y1, y2)), z2)) -> c1(MARK(first(s(y0), cons(y1, y2)))) A__FIRST(s(z0), cons(first(cons(y0, y1), cons(y2, y3)), z2)) -> c1(MARK(first(cons(y0, y1), cons(y2, y3)))) A__FIRST(s(z0), cons(first(first(y0, first(y1, y2)), y3), z2)) -> c1(MARK(first(first(y0, first(y1, y2)), y3))) A__FIRST(s(z0), cons(first(first(y0, from(y1)), y2), z2)) -> c1(MARK(first(first(y0, from(y1)), y2))) A__FIRST(s(z0), cons(first(first(y0, 0), y1), z2)) -> c1(MARK(first(first(y0, 0), y1))) A__FIRST(s(z0), cons(first(first(y0, nil), y1), z2)) -> c1(MARK(first(first(y0, nil), y1))) A__FIRST(s(z0), cons(first(first(y0, s(y1)), y2), z2)) -> c1(MARK(first(first(y0, s(y1)), y2))) A__FIRST(s(z0), cons(first(first(y0, cons(y1, y2)), y3), z2)) -> c1(MARK(first(first(y0, cons(y1, y2)), y3))) A__FIRST(s(z0), cons(first(first(first(y0, y1), y2), y3), z2)) -> c1(MARK(first(first(first(y0, y1), y2), y3))) A__FIRST(s(z0), cons(first(first(from(y0), y1), y2), z2)) -> c1(MARK(first(first(from(y0), y1), y2))) A__FIRST(s(z0), cons(first(first(0, y0), y1), z2)) -> c1(MARK(first(first(0, y0), y1))) A__FIRST(s(z0), cons(first(first(nil, y0), y1), z2)) -> c1(MARK(first(first(nil, y0), y1))) A__FIRST(s(z0), cons(first(first(s(y0), y1), y2), z2)) -> c1(MARK(first(first(s(y0), y1), y2))) A__FIRST(s(z0), cons(first(first(cons(y0, y1), y2), y3), z2)) -> c1(MARK(first(first(cons(y0, y1), y2), y3))) A__FIRST(s(z0), cons(first(first(y0, y1), 0), z2)) -> c1(MARK(first(first(y0, y1), 0))) A__FIRST(s(z0), cons(first(first(y0, y1), nil), z2)) -> c1(MARK(first(first(y0, y1), nil))) A__FIRST(s(z0), cons(first(first(y0, y1), s(y2)), z2)) -> c1(MARK(first(first(y0, y1), s(y2)))) A__FIRST(s(z0), cons(first(first(y0, y1), y2), z2)) -> c1(MARK(first(first(y0, y1), y2))) A__FIRST(s(z0), cons(first(from(first(y0, y1)), y2), z2)) -> c1(MARK(first(from(first(y0, y1)), y2))) A__FIRST(s(z0), cons(first(from(from(y0)), y1), z2)) -> c1(MARK(first(from(from(y0)), y1))) A__FIRST(s(z0), cons(first(from(0), y0), z2)) -> c1(MARK(first(from(0), y0))) A__FIRST(s(z0), cons(first(from(nil), y0), z2)) -> c1(MARK(first(from(nil), y0))) A__FIRST(s(z0), cons(first(from(s(y0)), y1), z2)) -> c1(MARK(first(from(s(y0)), y1))) A__FIRST(s(z0), cons(first(from(cons(y0, y1)), y2), z2)) -> c1(MARK(first(from(cons(y0, y1)), y2))) A__FIRST(s(z0), cons(first(from(y0), y1), z2)) -> c1(MARK(first(from(y0), y1))) A__FIRST(s(z0), cons(first(from(y0), 0), z2)) -> c1(MARK(first(from(y0), 0))) A__FIRST(s(z0), cons(first(from(y0), nil), z2)) -> c1(MARK(first(from(y0), nil))) A__FIRST(s(z0), cons(first(from(y0), s(y1)), z2)) -> c1(MARK(first(from(y0), s(y1)))) A__FIRST(s(z0), cons(first(s(first(y0, y1)), y2), z2)) -> c1(MARK(first(s(first(y0, y1)), y2))) A__FIRST(s(z0), cons(first(s(from(y0)), y1), z2)) -> c1(MARK(first(s(from(y0)), y1))) A__FIRST(s(z0), cons(first(s(0), y0), z2)) -> c1(MARK(first(s(0), y0))) A__FIRST(s(z0), cons(first(s(nil), y0), z2)) -> c1(MARK(first(s(nil), y0))) A__FIRST(s(z0), cons(first(s(s(y0)), y1), z2)) -> c1(MARK(first(s(s(y0)), y1))) A__FIRST(s(z0), cons(first(s(cons(y0, y1)), y2), z2)) -> c1(MARK(first(s(cons(y0, y1)), y2))) A__FIRST(s(z0), cons(first(s(y0), y1), z2)) -> c1(MARK(first(s(y0), y1))) A__FIRST(s(z0), cons(first(s(y0), 0), z2)) -> c1(MARK(first(s(y0), 0))) A__FIRST(s(z0), cons(first(s(y0), nil), z2)) -> c1(MARK(first(s(y0), nil))) A__FIRST(s(z0), cons(first(s(y0), s(y1)), z2)) -> c1(MARK(first(s(y0), s(y1)))) A__FIRST(s(z0), cons(first(0, first(y0, y1)), z2)) -> c1(MARK(first(0, first(y0, y1)))) A__FIRST(s(z0), cons(first(nil, first(y0, y1)), z2)) -> c1(MARK(first(nil, first(y0, y1)))) A__FIRST(s(z0), cons(first(0, from(y0)), z2)) -> c1(MARK(first(0, from(y0)))) A__FIRST(s(z0), cons(first(nil, from(y0)), z2)) -> c1(MARK(first(nil, from(y0)))) A__FIRST(s(z0), cons(first(y0, cons(y1, y2)), z2)) -> c1(MARK(first(y0, cons(y1, y2)))) A__FIRST(s(z0), cons(first(0, cons(y0, y1)), z2)) -> c1(MARK(first(0, cons(y0, y1)))) A__FIRST(s(z0), cons(first(nil, cons(y0, y1)), z2)) -> c1(MARK(first(nil, cons(y0, y1)))) MARK(first(x0, cons(0, x2))) -> c5(MARK(x0)) MARK(first(x0, cons(nil, x2))) -> c5(MARK(x0)) MARK(first(x0, cons(0, x2))) -> c6(MARK(cons(0, x2))) MARK(first(x0, cons(nil, x2))) -> c6(MARK(cons(nil, x2))) A__FROM(from(y0)) -> c3(MARK(from(y0))) A__FROM(s(y0)) -> c3(MARK(s(y0))) A__FROM(cons(y0, y1)) -> c3(MARK(cons(y0, y1))) A__FROM(first(y0, 0)) -> c3(MARK(first(y0, 0))) A__FROM(first(y0, nil)) -> c3(MARK(first(y0, nil))) A__FROM(first(y0, s(y1))) -> c3(MARK(first(y0, s(y1)))) A__FROM(first(cons(y0, y1), y2)) -> c3(MARK(first(cons(y0, y1), y2))) A__FROM(first(0, y0)) -> c3(MARK(first(0, y0))) A__FROM(first(nil, y0)) -> c3(MARK(first(nil, y0))) A__FROM(first(y0, first(y1, first(y2, y3)))) -> c3(MARK(first(y0, first(y1, first(y2, y3))))) A__FROM(first(y0, first(y1, from(y2)))) -> c3(MARK(first(y0, first(y1, from(y2))))) A__FROM(first(y0, first(y1, 0))) -> c3(MARK(first(y0, first(y1, 0)))) A__FROM(first(y0, first(y1, nil))) -> c3(MARK(first(y0, first(y1, nil)))) A__FROM(first(y0, first(y1, s(y2)))) -> c3(MARK(first(y0, first(y1, s(y2))))) A__FROM(first(y0, first(y1, cons(y2, y3)))) -> c3(MARK(first(y0, first(y1, cons(y2, y3))))) A__FROM(first(y0, first(first(y1, y2), y3))) -> c3(MARK(first(y0, first(first(y1, y2), y3)))) A__FROM(first(y0, first(from(y1), y2))) -> c3(MARK(first(y0, first(from(y1), y2)))) A__FROM(first(y0, first(0, y1))) -> c3(MARK(first(y0, first(0, y1)))) A__FROM(first(y0, first(nil, y1))) -> c3(MARK(first(y0, first(nil, y1)))) A__FROM(first(y0, first(s(y1), y2))) -> c3(MARK(first(y0, first(s(y1), y2)))) A__FROM(first(y0, first(cons(y1, y2), y3))) -> c3(MARK(first(y0, first(cons(y1, y2), y3)))) A__FROM(first(first(y0, y1), first(y2, y3))) -> c3(MARK(first(first(y0, y1), first(y2, y3)))) A__FROM(first(from(y0), first(y1, y2))) -> c3(MARK(first(from(y0), first(y1, y2)))) A__FROM(first(s(y0), first(y1, y2))) -> c3(MARK(first(s(y0), first(y1, y2)))) A__FROM(first(y0, first(y1, y2))) -> c3(MARK(first(y0, first(y1, y2)))) A__FROM(first(cons(y0, y1), first(y2, y3))) -> c3(MARK(first(cons(y0, y1), first(y2, y3)))) A__FROM(first(y0, from(y1))) -> c3(MARK(first(y0, from(y1)))) A__FROM(first(y0, from(first(y1, y2)))) -> c3(MARK(first(y0, from(first(y1, y2))))) A__FROM(first(y0, from(from(y1)))) -> c3(MARK(first(y0, from(from(y1))))) A__FROM(first(y0, from(0))) -> c3(MARK(first(y0, from(0)))) A__FROM(first(y0, from(nil))) -> c3(MARK(first(y0, from(nil)))) A__FROM(first(y0, from(s(y1)))) -> c3(MARK(first(y0, from(s(y1))))) A__FROM(first(y0, from(cons(y1, y2)))) -> c3(MARK(first(y0, from(cons(y1, y2))))) A__FROM(first(first(y0, y1), from(y2))) -> c3(MARK(first(first(y0, y1), from(y2)))) A__FROM(first(from(y0), from(y1))) -> c3(MARK(first(from(y0), from(y1)))) A__FROM(first(s(y0), from(y1))) -> c3(MARK(first(s(y0), from(y1)))) A__FROM(first(cons(y0, y1), from(y2))) -> c3(MARK(first(cons(y0, y1), from(y2)))) A__FROM(first(y0, cons(first(y1, y2), y3))) -> c3(MARK(first(y0, cons(first(y1, y2), y3)))) A__FROM(first(y0, cons(from(y1), y2))) -> c3(MARK(first(y0, cons(from(y1), y2)))) A__FROM(first(y0, cons(s(y1), y2))) -> c3(MARK(first(y0, cons(s(y1), y2)))) A__FROM(first(y0, cons(cons(y1, y2), y3))) -> c3(MARK(first(y0, cons(cons(y1, y2), y3)))) A__FROM(first(first(y0, y1), cons(y2, y3))) -> c3(MARK(first(first(y0, y1), cons(y2, y3)))) A__FROM(first(from(y0), cons(y1, y2))) -> c3(MARK(first(from(y0), cons(y1, y2)))) A__FROM(first(s(y0), cons(y1, y2))) -> c3(MARK(first(s(y0), cons(y1, y2)))) A__FROM(first(cons(y0, y1), cons(y2, y3))) -> c3(MARK(first(cons(y0, y1), cons(y2, y3)))) A__FROM(first(first(y0, first(y1, y2)), y3)) -> c3(MARK(first(first(y0, first(y1, y2)), y3))) A__FROM(first(first(y0, from(y1)), y2)) -> c3(MARK(first(first(y0, from(y1)), y2))) A__FROM(first(first(y0, 0), y1)) -> c3(MARK(first(first(y0, 0), y1))) A__FROM(first(first(y0, nil), y1)) -> c3(MARK(first(first(y0, nil), y1))) A__FROM(first(first(y0, s(y1)), y2)) -> c3(MARK(first(first(y0, s(y1)), y2))) A__FROM(first(first(y0, cons(y1, y2)), y3)) -> c3(MARK(first(first(y0, cons(y1, y2)), y3))) A__FROM(first(first(first(y0, y1), y2), y3)) -> c3(MARK(first(first(first(y0, y1), y2), y3))) A__FROM(first(first(from(y0), y1), y2)) -> c3(MARK(first(first(from(y0), y1), y2))) A__FROM(first(first(0, y0), y1)) -> c3(MARK(first(first(0, y0), y1))) A__FROM(first(first(nil, y0), y1)) -> c3(MARK(first(first(nil, y0), y1))) A__FROM(first(first(s(y0), y1), y2)) -> c3(MARK(first(first(s(y0), y1), y2))) A__FROM(first(first(cons(y0, y1), y2), y3)) -> c3(MARK(first(first(cons(y0, y1), y2), y3))) A__FROM(first(first(y0, y1), 0)) -> c3(MARK(first(first(y0, y1), 0))) A__FROM(first(first(y0, y1), nil)) -> c3(MARK(first(first(y0, y1), nil))) A__FROM(first(first(y0, y1), s(y2))) -> c3(MARK(first(first(y0, y1), s(y2)))) A__FROM(first(first(y0, y1), y2)) -> c3(MARK(first(first(y0, y1), y2))) A__FROM(first(from(first(y0, y1)), y2)) -> c3(MARK(first(from(first(y0, y1)), y2))) A__FROM(first(from(from(y0)), y1)) -> c3(MARK(first(from(from(y0)), y1))) A__FROM(first(from(0), y0)) -> c3(MARK(first(from(0), y0))) A__FROM(first(from(nil), y0)) -> c3(MARK(first(from(nil), y0))) A__FROM(first(from(s(y0)), y1)) -> c3(MARK(first(from(s(y0)), y1))) A__FROM(first(from(cons(y0, y1)), y2)) -> c3(MARK(first(from(cons(y0, y1)), y2))) A__FROM(first(from(y0), y1)) -> c3(MARK(first(from(y0), y1))) A__FROM(first(from(y0), 0)) -> c3(MARK(first(from(y0), 0))) A__FROM(first(from(y0), nil)) -> c3(MARK(first(from(y0), nil))) A__FROM(first(from(y0), s(y1))) -> c3(MARK(first(from(y0), s(y1)))) A__FROM(first(s(first(y0, y1)), y2)) -> c3(MARK(first(s(first(y0, y1)), y2))) A__FROM(first(s(from(y0)), y1)) -> c3(MARK(first(s(from(y0)), y1))) A__FROM(first(s(0), y0)) -> c3(MARK(first(s(0), y0))) A__FROM(first(s(nil), y0)) -> c3(MARK(first(s(nil), y0))) A__FROM(first(s(s(y0)), y1)) -> c3(MARK(first(s(s(y0)), y1))) A__FROM(first(s(cons(y0, y1)), y2)) -> c3(MARK(first(s(cons(y0, y1)), y2))) A__FROM(first(s(y0), y1)) -> c3(MARK(first(s(y0), y1))) A__FROM(first(s(y0), 0)) -> c3(MARK(first(s(y0), 0))) A__FROM(first(s(y0), nil)) -> c3(MARK(first(s(y0), nil))) A__FROM(first(s(y0), s(y1))) -> c3(MARK(first(s(y0), s(y1)))) A__FROM(first(0, first(y0, y1))) -> c3(MARK(first(0, first(y0, y1)))) A__FROM(first(nil, first(y0, y1))) -> c3(MARK(first(nil, first(y0, y1)))) A__FROM(first(0, from(y0))) -> c3(MARK(first(0, from(y0)))) A__FROM(first(nil, from(y0))) -> c3(MARK(first(nil, from(y0)))) A__FROM(first(y0, cons(y1, y2))) -> c3(MARK(first(y0, cons(y1, y2)))) A__FROM(first(0, cons(y0, y1))) -> c3(MARK(first(0, cons(y0, y1)))) A__FROM(first(nil, cons(y0, y1))) -> c3(MARK(first(nil, cons(y0, y1)))) A__FROM(first(y0, cons(0, y1))) -> c3(MARK(first(y0, cons(0, y1)))) A__FROM(first(y0, cons(nil, y1))) -> c3(MARK(first(y0, cons(nil, y1)))) MARK(from(from(z0))) -> c7(A__FROM(a__from(mark(z0))), MARK(from(z0))) MARK(from(s(z0))) -> c7(A__FROM(s(mark(z0))), MARK(s(z0))) MARK(from(cons(z0, z1))) -> c7(A__FROM(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(from(0), x1)) -> c5(A__FIRST(a__from(0), mark(x1))) MARK(first(from(nil), x1)) -> c5(A__FIRST(a__from(nil), mark(x1))) MARK(first(x0, from(0))) -> c6(A__FIRST(mark(x0), a__from(0))) MARK(first(x0, from(nil))) -> c6(A__FIRST(mark(x0), a__from(nil))) MARK(from(first(x0, x1))) -> c7(A__FROM(first(mark(x0), mark(x1))), MARK(first(x0, x1))) MARK(from(first(x0, first(z0, z1)))) -> c7(A__FROM(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) MARK(from(first(x0, from(z0)))) -> c7(A__FROM(a__first(mark(x0), a__from(mark(z0)))), MARK(first(x0, from(z0)))) MARK(from(first(x0, 0))) -> c7(A__FROM(a__first(mark(x0), 0)), MARK(first(x0, 0))) MARK(from(first(x0, nil))) -> c7(A__FROM(a__first(mark(x0), nil)), MARK(first(x0, nil))) MARK(from(first(x0, s(z0)))) -> c7(A__FROM(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) MARK(from(first(x0, cons(z0, z1)))) -> c7(A__FROM(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) MARK(from(first(first(z0, z1), x1))) -> c7(A__FROM(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) MARK(from(first(from(z0), x1))) -> c7(A__FROM(a__first(a__from(mark(z0)), mark(x1))), MARK(first(from(z0), x1))) MARK(from(first(0, x1))) -> c7(A__FROM(a__first(0, mark(x1))), MARK(first(0, x1))) MARK(from(first(nil, x1))) -> c7(A__FROM(a__first(nil, mark(x1))), MARK(first(nil, x1))) MARK(from(first(s(z0), x1))) -> c7(A__FROM(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) MARK(from(first(cons(z0, z1), x1))) -> c7(A__FROM(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) S tuples: MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(x0, from(x1))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), from(x1))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(first(x0, cons(from(z0), x2))) -> c5(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(s(z0), x2))) -> c5(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(first(first(z0, z1), cons(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(first(z0, z1))) MARK(first(from(z0), cons(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(first(s(z0), cons(x1, x2))) -> c5(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(s(z0))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(first(x0, first(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(first(x0, first(z0, z1)))) MARK(first(first(x0, from(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(first(x0, from(z0)))) MARK(first(first(x0, 0), x2)) -> c5(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(first(x0, 0))) MARK(first(first(x0, nil), x2)) -> c5(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(first(x0, nil))) MARK(first(first(x0, s(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(first(x0, s(z0)))) MARK(first(first(x0, cons(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(first(x0, cons(z0, z1)))) MARK(first(first(first(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(first(first(z0, z1), x1))) MARK(first(first(from(z0), x1), x2)) -> c5(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(first(from(z0), x1))) MARK(first(first(0, x1), x2)) -> c5(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(first(0, x1))) MARK(first(first(nil, x1), x2)) -> c5(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(first(nil, x1))) MARK(first(first(s(z0), x1), x2)) -> c5(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(first(s(z0), x1))) MARK(first(first(cons(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(first(cons(z0, z1), x1))) MARK(first(first(x0, x1), 0)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), nil)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), s(z0))) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), x2)) -> c5(MARK(first(x0, x1))) MARK(first(from(first(z0, z1)), x1)) -> c5(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(from(first(z0, z1)))) MARK(first(from(from(z0)), x1)) -> c5(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(first(from(s(z0)), x1)) -> c5(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(from(s(z0)))) MARK(first(from(cons(z0, z1)), x1)) -> c5(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(first(from(x0), x1)) -> c5(MARK(from(x0))) MARK(first(from(x0), 0)) -> c5(MARK(from(x0))) MARK(first(from(x0), nil)) -> c5(MARK(from(x0))) MARK(first(from(x0), s(z0))) -> c5(MARK(from(x0))) MARK(first(s(first(z0, z1)), x1)) -> c5(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(s(first(z0, z1)))) MARK(first(s(from(z0)), x1)) -> c5(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(s(from(z0)))) MARK(first(s(0), x1)) -> c5(A__FIRST(s(0), mark(x1)), MARK(s(0))) MARK(first(s(nil), x1)) -> c5(A__FIRST(s(nil), mark(x1)), MARK(s(nil))) MARK(first(s(s(z0)), x1)) -> c5(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(s(s(z0)))) MARK(first(s(cons(z0, z1)), x1)) -> c5(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(s(cons(z0, z1)))) MARK(first(s(x0), x1)) -> c5(MARK(s(x0))) MARK(first(s(x0), 0)) -> c5(MARK(s(x0))) MARK(first(s(x0), nil)) -> c5(MARK(s(x0))) MARK(first(s(x0), s(z0))) -> c5(MARK(s(x0))) MARK(first(x0, first(x1, first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(first(x1, first(z0, z1)))) MARK(first(x0, first(x1, from(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(first(x1, from(z0)))) MARK(first(x0, first(x1, 0))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(first(x1, 0))) MARK(first(x0, first(x1, nil))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(first(x1, nil))) MARK(first(x0, first(x1, s(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(first(x1, s(z0)))) MARK(first(x0, first(x1, cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(first(x1, cons(z0, z1)))) MARK(first(x0, first(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(first(first(z0, z1), x2))) MARK(first(x0, first(from(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(first(from(z0), x2))) MARK(first(x0, first(0, x2))) -> c6(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(first(0, x2))) MARK(first(x0, first(nil, x2))) -> c6(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(first(nil, x2))) MARK(first(x0, first(s(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(first(s(z0), x2))) MARK(first(x0, first(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(first(cons(z0, z1), x2))) MARK(first(first(z0, z1), first(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(from(z0), first(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(s(z0), first(x1, x2))) -> c6(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(x0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(nil, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(cons(z0, z1), first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(x0, from(x1))) -> c6(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(first(x0, from(first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(from(first(z0, z1)))) MARK(first(x0, from(from(z0)))) -> c6(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(first(x0, from(s(z0)))) -> c6(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(from(s(z0)))) MARK(first(x0, from(cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(first(first(z0, z1), from(x1))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(first(from(z0), from(x1))) -> c6(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(s(z0), from(x1))) -> c6(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(x0, from(x1))) -> c6(MARK(from(x1))) MARK(first(0, from(x1))) -> c6(MARK(from(x1))) MARK(first(nil, from(x1))) -> c6(MARK(from(x1))) MARK(first(cons(z0, z1), from(x1))) -> c6(MARK(from(x1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(cons(first(z0, z1), x2))) MARK(first(x0, cons(from(z0), x2))) -> c6(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(first(x0, cons(s(z0), x2))) -> c6(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(cons(s(z0), x2))) MARK(first(x0, cons(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(first(first(z0, z1), cons(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(from(z0), cons(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(s(z0), cons(x1, x2))) -> c6(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(x0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(nil, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(first(x0, first(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(first(first(x0, from(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, 0), x2)) -> c6(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(x2)) MARK(first(first(x0, nil), x2)) -> c6(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(x2)) MARK(first(first(x0, s(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, cons(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(first(first(first(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(from(z0), x1), x2)) -> c6(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(0, x1), x2)) -> c6(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(nil, x1), x2)) -> c6(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(s(z0), x1), x2)) -> c6(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(cons(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(x0, x1), s(z0))) -> c6(MARK(s(z0))) MARK(first(first(x0, x1), x2)) -> c6(MARK(x2)) MARK(first(from(first(z0, z1)), x1)) -> c6(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(first(from(from(z0)), x1)) -> c6(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(first(from(0), x1)) -> c6(A__FIRST(a__from(0), mark(x1)), MARK(x1)) MARK(first(from(nil), x1)) -> c6(A__FIRST(a__from(nil), mark(x1)), MARK(x1)) MARK(first(from(s(z0)), x1)) -> c6(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(x1)) MARK(first(from(cons(z0, z1)), x1)) -> c6(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(first(from(x0), s(z0))) -> c6(MARK(s(z0))) MARK(first(from(x0), x1)) -> c6(MARK(x1)) MARK(first(s(first(z0, z1)), x1)) -> c6(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(first(s(from(z0)), x1)) -> c6(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(first(s(0), x1)) -> c6(A__FIRST(s(0), mark(x1)), MARK(x1)) MARK(first(s(nil), x1)) -> c6(A__FIRST(s(nil), mark(x1)), MARK(x1)) MARK(first(s(s(z0)), x1)) -> c6(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(x1)) MARK(first(s(cons(z0, z1)), x1)) -> c6(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(first(s(x0), s(z0))) -> c6(MARK(s(z0))) A__FIRST(s(z0), cons(from(y0), z2)) -> c1(MARK(from(y0))) A__FIRST(s(z0), cons(s(y0), z2)) -> c1(MARK(s(y0))) A__FIRST(s(z0), cons(cons(y0, y1), z2)) -> c1(MARK(cons(y0, y1))) A__FIRST(s(z0), cons(first(y0, 0), z2)) -> c1(MARK(first(y0, 0))) A__FIRST(s(z0), cons(first(y0, nil), z2)) -> c1(MARK(first(y0, nil))) A__FIRST(s(z0), cons(first(y0, s(y1)), z2)) -> c1(MARK(first(y0, s(y1)))) A__FIRST(s(z0), cons(first(cons(y0, y1), y2), z2)) -> c1(MARK(first(cons(y0, y1), y2))) A__FIRST(s(z0), cons(first(0, y0), z2)) -> c1(MARK(first(0, y0))) A__FIRST(s(z0), cons(first(nil, y0), z2)) -> c1(MARK(first(nil, y0))) A__FIRST(s(z0), cons(first(y0, first(y1, first(y2, y3))), z2)) -> c1(MARK(first(y0, first(y1, first(y2, y3))))) A__FIRST(s(z0), cons(first(y0, first(y1, from(y2))), z2)) -> c1(MARK(first(y0, first(y1, from(y2))))) A__FIRST(s(z0), cons(first(y0, first(y1, 0)), z2)) -> c1(MARK(first(y0, first(y1, 0)))) A__FIRST(s(z0), cons(first(y0, first(y1, nil)), z2)) -> c1(MARK(first(y0, first(y1, nil)))) A__FIRST(s(z0), cons(first(y0, first(y1, s(y2))), z2)) -> c1(MARK(first(y0, first(y1, s(y2))))) A__FIRST(s(z0), cons(first(y0, first(y1, cons(y2, y3))), z2)) -> c1(MARK(first(y0, first(y1, cons(y2, y3))))) A__FIRST(s(z0), cons(first(y0, first(first(y1, y2), y3)), z2)) -> c1(MARK(first(y0, first(first(y1, y2), y3)))) A__FIRST(s(z0), cons(first(y0, first(from(y1), y2)), z2)) -> c1(MARK(first(y0, first(from(y1), y2)))) A__FIRST(s(z0), cons(first(y0, first(0, y1)), z2)) -> c1(MARK(first(y0, first(0, y1)))) A__FIRST(s(z0), cons(first(y0, first(nil, y1)), z2)) -> c1(MARK(first(y0, first(nil, y1)))) A__FIRST(s(z0), cons(first(y0, first(s(y1), y2)), z2)) -> c1(MARK(first(y0, first(s(y1), y2)))) A__FIRST(s(z0), cons(first(y0, first(cons(y1, y2), y3)), z2)) -> c1(MARK(first(y0, first(cons(y1, y2), y3)))) A__FIRST(s(z0), cons(first(first(y0, y1), first(y2, y3)), z2)) -> c1(MARK(first(first(y0, y1), first(y2, y3)))) A__FIRST(s(z0), cons(first(from(y0), first(y1, y2)), z2)) -> c1(MARK(first(from(y0), first(y1, y2)))) A__FIRST(s(z0), cons(first(s(y0), first(y1, y2)), z2)) -> c1(MARK(first(s(y0), first(y1, y2)))) A__FIRST(s(z0), cons(first(y0, first(y1, y2)), z2)) -> c1(MARK(first(y0, first(y1, y2)))) A__FIRST(s(z0), cons(first(cons(y0, y1), first(y2, y3)), z2)) -> c1(MARK(first(cons(y0, y1), first(y2, y3)))) A__FIRST(s(z0), cons(first(y0, from(y1)), z2)) -> c1(MARK(first(y0, from(y1)))) A__FIRST(s(z0), cons(first(y0, from(first(y1, y2))), z2)) -> c1(MARK(first(y0, from(first(y1, y2))))) A__FIRST(s(z0), cons(first(y0, from(from(y1))), z2)) -> c1(MARK(first(y0, from(from(y1))))) A__FIRST(s(z0), cons(first(y0, from(0)), z2)) -> c1(MARK(first(y0, from(0)))) A__FIRST(s(z0), cons(first(y0, from(nil)), z2)) -> c1(MARK(first(y0, from(nil)))) A__FIRST(s(z0), cons(first(y0, from(s(y1))), z2)) -> c1(MARK(first(y0, from(s(y1))))) A__FIRST(s(z0), cons(first(y0, from(cons(y1, y2))), z2)) -> c1(MARK(first(y0, from(cons(y1, y2))))) A__FIRST(s(z0), cons(first(first(y0, y1), from(y2)), z2)) -> c1(MARK(first(first(y0, y1), from(y2)))) A__FIRST(s(z0), cons(first(from(y0), from(y1)), z2)) -> c1(MARK(first(from(y0), from(y1)))) A__FIRST(s(z0), cons(first(s(y0), from(y1)), z2)) -> c1(MARK(first(s(y0), from(y1)))) A__FIRST(s(z0), cons(first(cons(y0, y1), from(y2)), z2)) -> c1(MARK(first(cons(y0, y1), from(y2)))) A__FIRST(s(z0), cons(first(y0, cons(first(y1, y2), y3)), z2)) -> c1(MARK(first(y0, cons(first(y1, y2), y3)))) A__FIRST(s(z0), cons(first(y0, cons(from(y1), y2)), z2)) -> c1(MARK(first(y0, cons(from(y1), y2)))) A__FIRST(s(z0), cons(first(y0, cons(0, y1)), z2)) -> c1(MARK(first(y0, cons(0, y1)))) A__FIRST(s(z0), cons(first(y0, cons(nil, y1)), z2)) -> c1(MARK(first(y0, cons(nil, y1)))) A__FIRST(s(z0), cons(first(y0, cons(s(y1), y2)), z2)) -> c1(MARK(first(y0, cons(s(y1), y2)))) A__FIRST(s(z0), cons(first(y0, cons(cons(y1, y2), y3)), z2)) -> c1(MARK(first(y0, cons(cons(y1, y2), y3)))) A__FIRST(s(z0), cons(first(first(y0, y1), cons(y2, y3)), z2)) -> c1(MARK(first(first(y0, y1), cons(y2, y3)))) A__FIRST(s(z0), cons(first(from(y0), cons(y1, y2)), z2)) -> c1(MARK(first(from(y0), cons(y1, y2)))) A__FIRST(s(z0), cons(first(s(y0), cons(y1, y2)), z2)) -> c1(MARK(first(s(y0), cons(y1, y2)))) A__FIRST(s(z0), cons(first(cons(y0, y1), cons(y2, y3)), z2)) -> c1(MARK(first(cons(y0, y1), cons(y2, y3)))) A__FIRST(s(z0), cons(first(first(y0, first(y1, y2)), y3), z2)) -> c1(MARK(first(first(y0, first(y1, y2)), y3))) A__FIRST(s(z0), cons(first(first(y0, from(y1)), y2), z2)) -> c1(MARK(first(first(y0, from(y1)), y2))) A__FIRST(s(z0), cons(first(first(y0, 0), y1), z2)) -> c1(MARK(first(first(y0, 0), y1))) A__FIRST(s(z0), cons(first(first(y0, nil), y1), z2)) -> c1(MARK(first(first(y0, nil), y1))) A__FIRST(s(z0), cons(first(first(y0, s(y1)), y2), z2)) -> c1(MARK(first(first(y0, s(y1)), y2))) A__FIRST(s(z0), cons(first(first(y0, cons(y1, y2)), y3), z2)) -> c1(MARK(first(first(y0, cons(y1, y2)), y3))) A__FIRST(s(z0), cons(first(first(first(y0, y1), y2), y3), z2)) -> c1(MARK(first(first(first(y0, y1), y2), y3))) A__FIRST(s(z0), cons(first(first(from(y0), y1), y2), z2)) -> c1(MARK(first(first(from(y0), y1), y2))) A__FIRST(s(z0), cons(first(first(0, y0), y1), z2)) -> c1(MARK(first(first(0, y0), y1))) A__FIRST(s(z0), cons(first(first(nil, y0), y1), z2)) -> c1(MARK(first(first(nil, y0), y1))) A__FIRST(s(z0), cons(first(first(s(y0), y1), y2), z2)) -> c1(MARK(first(first(s(y0), y1), y2))) A__FIRST(s(z0), cons(first(first(cons(y0, y1), y2), y3), z2)) -> c1(MARK(first(first(cons(y0, y1), y2), y3))) A__FIRST(s(z0), cons(first(first(y0, y1), 0), z2)) -> c1(MARK(first(first(y0, y1), 0))) A__FIRST(s(z0), cons(first(first(y0, y1), nil), z2)) -> c1(MARK(first(first(y0, y1), nil))) A__FIRST(s(z0), cons(first(first(y0, y1), s(y2)), z2)) -> c1(MARK(first(first(y0, y1), s(y2)))) A__FIRST(s(z0), cons(first(first(y0, y1), y2), z2)) -> c1(MARK(first(first(y0, y1), y2))) A__FIRST(s(z0), cons(first(from(first(y0, y1)), y2), z2)) -> c1(MARK(first(from(first(y0, y1)), y2))) A__FIRST(s(z0), cons(first(from(from(y0)), y1), z2)) -> c1(MARK(first(from(from(y0)), y1))) A__FIRST(s(z0), cons(first(from(0), y0), z2)) -> c1(MARK(first(from(0), y0))) A__FIRST(s(z0), cons(first(from(nil), y0), z2)) -> c1(MARK(first(from(nil), y0))) A__FIRST(s(z0), cons(first(from(s(y0)), y1), z2)) -> c1(MARK(first(from(s(y0)), y1))) A__FIRST(s(z0), cons(first(from(cons(y0, y1)), y2), z2)) -> c1(MARK(first(from(cons(y0, y1)), y2))) A__FIRST(s(z0), cons(first(from(y0), y1), z2)) -> c1(MARK(first(from(y0), y1))) A__FIRST(s(z0), cons(first(from(y0), 0), z2)) -> c1(MARK(first(from(y0), 0))) A__FIRST(s(z0), cons(first(from(y0), nil), z2)) -> c1(MARK(first(from(y0), nil))) A__FIRST(s(z0), cons(first(from(y0), s(y1)), z2)) -> c1(MARK(first(from(y0), s(y1)))) A__FIRST(s(z0), cons(first(s(first(y0, y1)), y2), z2)) -> c1(MARK(first(s(first(y0, y1)), y2))) A__FIRST(s(z0), cons(first(s(from(y0)), y1), z2)) -> c1(MARK(first(s(from(y0)), y1))) A__FIRST(s(z0), cons(first(s(0), y0), z2)) -> c1(MARK(first(s(0), y0))) A__FIRST(s(z0), cons(first(s(nil), y0), z2)) -> c1(MARK(first(s(nil), y0))) A__FIRST(s(z0), cons(first(s(s(y0)), y1), z2)) -> c1(MARK(first(s(s(y0)), y1))) A__FIRST(s(z0), cons(first(s(cons(y0, y1)), y2), z2)) -> c1(MARK(first(s(cons(y0, y1)), y2))) A__FIRST(s(z0), cons(first(s(y0), y1), z2)) -> c1(MARK(first(s(y0), y1))) A__FIRST(s(z0), cons(first(s(y0), 0), z2)) -> c1(MARK(first(s(y0), 0))) A__FIRST(s(z0), cons(first(s(y0), nil), z2)) -> c1(MARK(first(s(y0), nil))) A__FIRST(s(z0), cons(first(s(y0), s(y1)), z2)) -> c1(MARK(first(s(y0), s(y1)))) A__FIRST(s(z0), cons(first(0, first(y0, y1)), z2)) -> c1(MARK(first(0, first(y0, y1)))) A__FIRST(s(z0), cons(first(nil, first(y0, y1)), z2)) -> c1(MARK(first(nil, first(y0, y1)))) A__FIRST(s(z0), cons(first(0, from(y0)), z2)) -> c1(MARK(first(0, from(y0)))) A__FIRST(s(z0), cons(first(nil, from(y0)), z2)) -> c1(MARK(first(nil, from(y0)))) A__FIRST(s(z0), cons(first(y0, cons(y1, y2)), z2)) -> c1(MARK(first(y0, cons(y1, y2)))) A__FIRST(s(z0), cons(first(0, cons(y0, y1)), z2)) -> c1(MARK(first(0, cons(y0, y1)))) A__FIRST(s(z0), cons(first(nil, cons(y0, y1)), z2)) -> c1(MARK(first(nil, cons(y0, y1)))) MARK(first(x0, cons(0, x2))) -> c5(MARK(x0)) MARK(first(x0, cons(nil, x2))) -> c5(MARK(x0)) MARK(first(x0, cons(0, x2))) -> c6(MARK(cons(0, x2))) MARK(first(x0, cons(nil, x2))) -> c6(MARK(cons(nil, x2))) A__FROM(from(y0)) -> c3(MARK(from(y0))) A__FROM(s(y0)) -> c3(MARK(s(y0))) A__FROM(cons(y0, y1)) -> c3(MARK(cons(y0, y1))) A__FROM(first(y0, 0)) -> c3(MARK(first(y0, 0))) A__FROM(first(y0, nil)) -> c3(MARK(first(y0, nil))) A__FROM(first(y0, s(y1))) -> c3(MARK(first(y0, s(y1)))) A__FROM(first(cons(y0, y1), y2)) -> c3(MARK(first(cons(y0, y1), y2))) A__FROM(first(0, y0)) -> c3(MARK(first(0, y0))) A__FROM(first(nil, y0)) -> c3(MARK(first(nil, y0))) A__FROM(first(y0, first(y1, first(y2, y3)))) -> c3(MARK(first(y0, first(y1, first(y2, y3))))) A__FROM(first(y0, first(y1, from(y2)))) -> c3(MARK(first(y0, first(y1, from(y2))))) A__FROM(first(y0, first(y1, 0))) -> c3(MARK(first(y0, first(y1, 0)))) A__FROM(first(y0, first(y1, nil))) -> c3(MARK(first(y0, first(y1, nil)))) A__FROM(first(y0, first(y1, s(y2)))) -> c3(MARK(first(y0, first(y1, s(y2))))) A__FROM(first(y0, first(y1, cons(y2, y3)))) -> c3(MARK(first(y0, first(y1, cons(y2, y3))))) A__FROM(first(y0, first(first(y1, y2), y3))) -> c3(MARK(first(y0, first(first(y1, y2), y3)))) A__FROM(first(y0, first(from(y1), y2))) -> c3(MARK(first(y0, first(from(y1), y2)))) A__FROM(first(y0, first(0, y1))) -> c3(MARK(first(y0, first(0, y1)))) A__FROM(first(y0, first(nil, y1))) -> c3(MARK(first(y0, first(nil, y1)))) A__FROM(first(y0, first(s(y1), y2))) -> c3(MARK(first(y0, first(s(y1), y2)))) A__FROM(first(y0, first(cons(y1, y2), y3))) -> c3(MARK(first(y0, first(cons(y1, y2), y3)))) A__FROM(first(first(y0, y1), first(y2, y3))) -> c3(MARK(first(first(y0, y1), first(y2, y3)))) A__FROM(first(from(y0), first(y1, y2))) -> c3(MARK(first(from(y0), first(y1, y2)))) A__FROM(first(s(y0), first(y1, y2))) -> c3(MARK(first(s(y0), first(y1, y2)))) A__FROM(first(y0, first(y1, y2))) -> c3(MARK(first(y0, first(y1, y2)))) A__FROM(first(cons(y0, y1), first(y2, y3))) -> c3(MARK(first(cons(y0, y1), first(y2, y3)))) A__FROM(first(y0, from(y1))) -> c3(MARK(first(y0, from(y1)))) A__FROM(first(y0, from(first(y1, y2)))) -> c3(MARK(first(y0, from(first(y1, y2))))) A__FROM(first(y0, from(from(y1)))) -> c3(MARK(first(y0, from(from(y1))))) A__FROM(first(y0, from(0))) -> c3(MARK(first(y0, from(0)))) A__FROM(first(y0, from(nil))) -> c3(MARK(first(y0, from(nil)))) A__FROM(first(y0, from(s(y1)))) -> c3(MARK(first(y0, from(s(y1))))) A__FROM(first(y0, from(cons(y1, y2)))) -> c3(MARK(first(y0, from(cons(y1, y2))))) A__FROM(first(first(y0, y1), from(y2))) -> c3(MARK(first(first(y0, y1), from(y2)))) A__FROM(first(from(y0), from(y1))) -> c3(MARK(first(from(y0), from(y1)))) A__FROM(first(s(y0), from(y1))) -> c3(MARK(first(s(y0), from(y1)))) A__FROM(first(cons(y0, y1), from(y2))) -> c3(MARK(first(cons(y0, y1), from(y2)))) A__FROM(first(y0, cons(first(y1, y2), y3))) -> c3(MARK(first(y0, cons(first(y1, y2), y3)))) A__FROM(first(y0, cons(from(y1), y2))) -> c3(MARK(first(y0, cons(from(y1), y2)))) A__FROM(first(y0, cons(s(y1), y2))) -> c3(MARK(first(y0, cons(s(y1), y2)))) A__FROM(first(y0, cons(cons(y1, y2), y3))) -> c3(MARK(first(y0, cons(cons(y1, y2), y3)))) A__FROM(first(first(y0, y1), cons(y2, y3))) -> c3(MARK(first(first(y0, y1), cons(y2, y3)))) A__FROM(first(from(y0), cons(y1, y2))) -> c3(MARK(first(from(y0), cons(y1, y2)))) A__FROM(first(s(y0), cons(y1, y2))) -> c3(MARK(first(s(y0), cons(y1, y2)))) A__FROM(first(cons(y0, y1), cons(y2, y3))) -> c3(MARK(first(cons(y0, y1), cons(y2, y3)))) A__FROM(first(first(y0, first(y1, y2)), y3)) -> c3(MARK(first(first(y0, first(y1, y2)), y3))) A__FROM(first(first(y0, from(y1)), y2)) -> c3(MARK(first(first(y0, from(y1)), y2))) A__FROM(first(first(y0, 0), y1)) -> c3(MARK(first(first(y0, 0), y1))) A__FROM(first(first(y0, nil), y1)) -> c3(MARK(first(first(y0, nil), y1))) A__FROM(first(first(y0, s(y1)), y2)) -> c3(MARK(first(first(y0, s(y1)), y2))) A__FROM(first(first(y0, cons(y1, y2)), y3)) -> c3(MARK(first(first(y0, cons(y1, y2)), y3))) A__FROM(first(first(first(y0, y1), y2), y3)) -> c3(MARK(first(first(first(y0, y1), y2), y3))) A__FROM(first(first(from(y0), y1), y2)) -> c3(MARK(first(first(from(y0), y1), y2))) A__FROM(first(first(0, y0), y1)) -> c3(MARK(first(first(0, y0), y1))) A__FROM(first(first(nil, y0), y1)) -> c3(MARK(first(first(nil, y0), y1))) A__FROM(first(first(s(y0), y1), y2)) -> c3(MARK(first(first(s(y0), y1), y2))) A__FROM(first(first(cons(y0, y1), y2), y3)) -> c3(MARK(first(first(cons(y0, y1), y2), y3))) A__FROM(first(first(y0, y1), 0)) -> c3(MARK(first(first(y0, y1), 0))) A__FROM(first(first(y0, y1), nil)) -> c3(MARK(first(first(y0, y1), nil))) A__FROM(first(first(y0, y1), s(y2))) -> c3(MARK(first(first(y0, y1), s(y2)))) A__FROM(first(first(y0, y1), y2)) -> c3(MARK(first(first(y0, y1), y2))) A__FROM(first(from(first(y0, y1)), y2)) -> c3(MARK(first(from(first(y0, y1)), y2))) A__FROM(first(from(from(y0)), y1)) -> c3(MARK(first(from(from(y0)), y1))) A__FROM(first(from(0), y0)) -> c3(MARK(first(from(0), y0))) A__FROM(first(from(nil), y0)) -> c3(MARK(first(from(nil), y0))) A__FROM(first(from(s(y0)), y1)) -> c3(MARK(first(from(s(y0)), y1))) A__FROM(first(from(cons(y0, y1)), y2)) -> c3(MARK(first(from(cons(y0, y1)), y2))) A__FROM(first(from(y0), y1)) -> c3(MARK(first(from(y0), y1))) A__FROM(first(from(y0), 0)) -> c3(MARK(first(from(y0), 0))) A__FROM(first(from(y0), nil)) -> c3(MARK(first(from(y0), nil))) A__FROM(first(from(y0), s(y1))) -> c3(MARK(first(from(y0), s(y1)))) A__FROM(first(s(first(y0, y1)), y2)) -> c3(MARK(first(s(first(y0, y1)), y2))) A__FROM(first(s(from(y0)), y1)) -> c3(MARK(first(s(from(y0)), y1))) A__FROM(first(s(0), y0)) -> c3(MARK(first(s(0), y0))) A__FROM(first(s(nil), y0)) -> c3(MARK(first(s(nil), y0))) A__FROM(first(s(s(y0)), y1)) -> c3(MARK(first(s(s(y0)), y1))) A__FROM(first(s(cons(y0, y1)), y2)) -> c3(MARK(first(s(cons(y0, y1)), y2))) A__FROM(first(s(y0), y1)) -> c3(MARK(first(s(y0), y1))) A__FROM(first(s(y0), 0)) -> c3(MARK(first(s(y0), 0))) A__FROM(first(s(y0), nil)) -> c3(MARK(first(s(y0), nil))) A__FROM(first(s(y0), s(y1))) -> c3(MARK(first(s(y0), s(y1)))) A__FROM(first(0, first(y0, y1))) -> c3(MARK(first(0, first(y0, y1)))) A__FROM(first(nil, first(y0, y1))) -> c3(MARK(first(nil, first(y0, y1)))) A__FROM(first(0, from(y0))) -> c3(MARK(first(0, from(y0)))) A__FROM(first(nil, from(y0))) -> c3(MARK(first(nil, from(y0)))) A__FROM(first(y0, cons(y1, y2))) -> c3(MARK(first(y0, cons(y1, y2)))) A__FROM(first(0, cons(y0, y1))) -> c3(MARK(first(0, cons(y0, y1)))) A__FROM(first(nil, cons(y0, y1))) -> c3(MARK(first(nil, cons(y0, y1)))) A__FROM(first(y0, cons(0, y1))) -> c3(MARK(first(y0, cons(0, y1)))) A__FROM(first(y0, cons(nil, y1))) -> c3(MARK(first(y0, cons(nil, y1)))) MARK(from(from(z0))) -> c7(A__FROM(a__from(mark(z0))), MARK(from(z0))) MARK(from(s(z0))) -> c7(A__FROM(s(mark(z0))), MARK(s(z0))) MARK(from(cons(z0, z1))) -> c7(A__FROM(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(from(0), x1)) -> c5(A__FIRST(a__from(0), mark(x1))) MARK(first(from(nil), x1)) -> c5(A__FIRST(a__from(nil), mark(x1))) MARK(first(x0, from(0))) -> c6(A__FIRST(mark(x0), a__from(0))) MARK(first(x0, from(nil))) -> c6(A__FIRST(mark(x0), a__from(nil))) MARK(from(first(x0, x1))) -> c7(A__FROM(first(mark(x0), mark(x1))), MARK(first(x0, x1))) MARK(from(first(x0, first(z0, z1)))) -> c7(A__FROM(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) MARK(from(first(x0, from(z0)))) -> c7(A__FROM(a__first(mark(x0), a__from(mark(z0)))), MARK(first(x0, from(z0)))) MARK(from(first(x0, 0))) -> c7(A__FROM(a__first(mark(x0), 0)), MARK(first(x0, 0))) MARK(from(first(x0, nil))) -> c7(A__FROM(a__first(mark(x0), nil)), MARK(first(x0, nil))) MARK(from(first(x0, s(z0)))) -> c7(A__FROM(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) MARK(from(first(x0, cons(z0, z1)))) -> c7(A__FROM(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) MARK(from(first(first(z0, z1), x1))) -> c7(A__FROM(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) MARK(from(first(from(z0), x1))) -> c7(A__FROM(a__first(a__from(mark(z0)), mark(x1))), MARK(first(from(z0), x1))) MARK(from(first(0, x1))) -> c7(A__FROM(a__first(0, mark(x1))), MARK(first(0, x1))) MARK(from(first(nil, x1))) -> c7(A__FROM(a__first(nil, mark(x1))), MARK(first(nil, x1))) MARK(from(first(s(z0), x1))) -> c7(A__FROM(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) MARK(from(first(cons(z0, z1), x1))) -> c7(A__FROM(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) K tuples:none Defined Rule Symbols: a__first_2, a__from_1, mark_1 Defined Pair Symbols: MARK_1, A__FIRST_2, A__FROM_1 Compound Symbols: c10_1, c11_1, c5_1, c6_1, c5_2, c6_2, c1_1, c3_1, c7_2 ---------------------------------------- (149) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(from(from(z0))) -> c7(A__FROM(a__from(mark(z0))), MARK(from(z0))) by MARK(from(from(x0))) -> c7(A__FROM(cons(mark(mark(x0)), from(s(mark(x0))))), MARK(from(x0))) MARK(from(from(x0))) -> c7(A__FROM(from(mark(x0))), MARK(from(x0))) MARK(from(from(first(z0, z1)))) -> c7(A__FROM(a__from(a__first(mark(z0), mark(z1)))), MARK(from(first(z0, z1)))) MARK(from(from(from(z0)))) -> c7(A__FROM(a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(from(from(0))) -> c7(A__FROM(a__from(0)), MARK(from(0))) MARK(from(from(nil))) -> c7(A__FROM(a__from(nil)), MARK(from(nil))) MARK(from(from(s(z0)))) -> c7(A__FROM(a__from(s(mark(z0)))), MARK(from(s(z0)))) MARK(from(from(cons(z0, z1)))) -> c7(A__FROM(a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) ---------------------------------------- (150) Obligation: Complexity Dependency Tuples Problem Rules: a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(0) -> 0 mark(nil) -> nil mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(x0, from(x1))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), from(x1))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(first(x0, cons(from(z0), x2))) -> c5(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(s(z0), x2))) -> c5(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(first(first(z0, z1), cons(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(first(z0, z1))) MARK(first(from(z0), cons(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(first(s(z0), cons(x1, x2))) -> c5(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(s(z0))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(first(x0, first(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(first(x0, first(z0, z1)))) MARK(first(first(x0, from(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(first(x0, from(z0)))) MARK(first(first(x0, 0), x2)) -> c5(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(first(x0, 0))) MARK(first(first(x0, nil), x2)) -> c5(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(first(x0, nil))) MARK(first(first(x0, s(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(first(x0, s(z0)))) MARK(first(first(x0, cons(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(first(x0, cons(z0, z1)))) MARK(first(first(first(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(first(first(z0, z1), x1))) MARK(first(first(from(z0), x1), x2)) -> c5(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(first(from(z0), x1))) MARK(first(first(0, x1), x2)) -> c5(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(first(0, x1))) MARK(first(first(nil, x1), x2)) -> c5(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(first(nil, x1))) MARK(first(first(s(z0), x1), x2)) -> c5(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(first(s(z0), x1))) MARK(first(first(cons(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(first(cons(z0, z1), x1))) MARK(first(first(x0, x1), 0)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), nil)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), s(z0))) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), x2)) -> c5(MARK(first(x0, x1))) MARK(first(from(first(z0, z1)), x1)) -> c5(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(from(first(z0, z1)))) MARK(first(from(from(z0)), x1)) -> c5(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(first(from(s(z0)), x1)) -> c5(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(from(s(z0)))) MARK(first(from(cons(z0, z1)), x1)) -> c5(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(first(from(x0), x1)) -> c5(MARK(from(x0))) MARK(first(from(x0), 0)) -> c5(MARK(from(x0))) MARK(first(from(x0), nil)) -> c5(MARK(from(x0))) MARK(first(from(x0), s(z0))) -> c5(MARK(from(x0))) MARK(first(s(first(z0, z1)), x1)) -> c5(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(s(first(z0, z1)))) MARK(first(s(from(z0)), x1)) -> c5(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(s(from(z0)))) MARK(first(s(0), x1)) -> c5(A__FIRST(s(0), mark(x1)), MARK(s(0))) MARK(first(s(nil), x1)) -> c5(A__FIRST(s(nil), mark(x1)), MARK(s(nil))) MARK(first(s(s(z0)), x1)) -> c5(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(s(s(z0)))) MARK(first(s(cons(z0, z1)), x1)) -> c5(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(s(cons(z0, z1)))) MARK(first(s(x0), x1)) -> c5(MARK(s(x0))) MARK(first(s(x0), 0)) -> c5(MARK(s(x0))) MARK(first(s(x0), nil)) -> c5(MARK(s(x0))) MARK(first(s(x0), s(z0))) -> c5(MARK(s(x0))) MARK(first(x0, first(x1, first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(first(x1, first(z0, z1)))) MARK(first(x0, first(x1, from(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(first(x1, from(z0)))) MARK(first(x0, first(x1, 0))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(first(x1, 0))) MARK(first(x0, first(x1, nil))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(first(x1, nil))) MARK(first(x0, first(x1, s(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(first(x1, s(z0)))) MARK(first(x0, first(x1, cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(first(x1, cons(z0, z1)))) MARK(first(x0, first(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(first(first(z0, z1), x2))) MARK(first(x0, first(from(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(first(from(z0), x2))) MARK(first(x0, first(0, x2))) -> c6(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(first(0, x2))) MARK(first(x0, first(nil, x2))) -> c6(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(first(nil, x2))) MARK(first(x0, first(s(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(first(s(z0), x2))) MARK(first(x0, first(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(first(cons(z0, z1), x2))) MARK(first(first(z0, z1), first(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(from(z0), first(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(s(z0), first(x1, x2))) -> c6(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(x0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(nil, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(cons(z0, z1), first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(x0, from(x1))) -> c6(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(first(x0, from(first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(from(first(z0, z1)))) MARK(first(x0, from(from(z0)))) -> c6(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(first(x0, from(s(z0)))) -> c6(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(from(s(z0)))) MARK(first(x0, from(cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(first(first(z0, z1), from(x1))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(first(from(z0), from(x1))) -> c6(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(s(z0), from(x1))) -> c6(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(x0, from(x1))) -> c6(MARK(from(x1))) MARK(first(0, from(x1))) -> c6(MARK(from(x1))) MARK(first(nil, from(x1))) -> c6(MARK(from(x1))) MARK(first(cons(z0, z1), from(x1))) -> c6(MARK(from(x1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(cons(first(z0, z1), x2))) MARK(first(x0, cons(from(z0), x2))) -> c6(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(first(x0, cons(s(z0), x2))) -> c6(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(cons(s(z0), x2))) MARK(first(x0, cons(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(first(first(z0, z1), cons(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(from(z0), cons(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(s(z0), cons(x1, x2))) -> c6(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(x0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(nil, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(first(x0, first(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(first(first(x0, from(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, 0), x2)) -> c6(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(x2)) MARK(first(first(x0, nil), x2)) -> c6(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(x2)) MARK(first(first(x0, s(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, cons(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(first(first(first(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(from(z0), x1), x2)) -> c6(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(0, x1), x2)) -> c6(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(nil, x1), x2)) -> c6(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(s(z0), x1), x2)) -> c6(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(cons(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(x0, x1), s(z0))) -> c6(MARK(s(z0))) MARK(first(first(x0, x1), x2)) -> c6(MARK(x2)) MARK(first(from(first(z0, z1)), x1)) -> c6(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(first(from(from(z0)), x1)) -> c6(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(first(from(0), x1)) -> c6(A__FIRST(a__from(0), mark(x1)), MARK(x1)) MARK(first(from(nil), x1)) -> c6(A__FIRST(a__from(nil), mark(x1)), MARK(x1)) MARK(first(from(s(z0)), x1)) -> c6(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(x1)) MARK(first(from(cons(z0, z1)), x1)) -> c6(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(first(from(x0), s(z0))) -> c6(MARK(s(z0))) MARK(first(from(x0), x1)) -> c6(MARK(x1)) MARK(first(s(first(z0, z1)), x1)) -> c6(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(first(s(from(z0)), x1)) -> c6(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(first(s(0), x1)) -> c6(A__FIRST(s(0), mark(x1)), MARK(x1)) MARK(first(s(nil), x1)) -> c6(A__FIRST(s(nil), mark(x1)), MARK(x1)) MARK(first(s(s(z0)), x1)) -> c6(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(x1)) MARK(first(s(cons(z0, z1)), x1)) -> c6(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(first(s(x0), s(z0))) -> c6(MARK(s(z0))) A__FIRST(s(z0), cons(from(y0), z2)) -> c1(MARK(from(y0))) A__FIRST(s(z0), cons(s(y0), z2)) -> c1(MARK(s(y0))) A__FIRST(s(z0), cons(cons(y0, y1), z2)) -> c1(MARK(cons(y0, y1))) A__FIRST(s(z0), cons(first(y0, 0), z2)) -> c1(MARK(first(y0, 0))) A__FIRST(s(z0), cons(first(y0, nil), z2)) -> c1(MARK(first(y0, nil))) A__FIRST(s(z0), cons(first(y0, s(y1)), z2)) -> c1(MARK(first(y0, s(y1)))) A__FIRST(s(z0), cons(first(cons(y0, y1), y2), z2)) -> c1(MARK(first(cons(y0, y1), y2))) A__FIRST(s(z0), cons(first(0, y0), z2)) -> c1(MARK(first(0, y0))) A__FIRST(s(z0), cons(first(nil, y0), z2)) -> c1(MARK(first(nil, y0))) A__FIRST(s(z0), cons(first(y0, first(y1, first(y2, y3))), z2)) -> c1(MARK(first(y0, first(y1, first(y2, y3))))) A__FIRST(s(z0), cons(first(y0, first(y1, from(y2))), z2)) -> c1(MARK(first(y0, first(y1, from(y2))))) A__FIRST(s(z0), cons(first(y0, first(y1, 0)), z2)) -> c1(MARK(first(y0, first(y1, 0)))) A__FIRST(s(z0), cons(first(y0, first(y1, nil)), z2)) -> c1(MARK(first(y0, first(y1, nil)))) A__FIRST(s(z0), cons(first(y0, first(y1, s(y2))), z2)) -> c1(MARK(first(y0, first(y1, s(y2))))) A__FIRST(s(z0), cons(first(y0, first(y1, cons(y2, y3))), z2)) -> c1(MARK(first(y0, first(y1, cons(y2, y3))))) A__FIRST(s(z0), cons(first(y0, first(first(y1, y2), y3)), z2)) -> c1(MARK(first(y0, first(first(y1, y2), y3)))) A__FIRST(s(z0), cons(first(y0, first(from(y1), y2)), z2)) -> c1(MARK(first(y0, first(from(y1), y2)))) A__FIRST(s(z0), cons(first(y0, first(0, y1)), z2)) -> c1(MARK(first(y0, first(0, y1)))) A__FIRST(s(z0), cons(first(y0, first(nil, y1)), z2)) -> c1(MARK(first(y0, first(nil, y1)))) A__FIRST(s(z0), cons(first(y0, first(s(y1), y2)), z2)) -> c1(MARK(first(y0, first(s(y1), y2)))) A__FIRST(s(z0), cons(first(y0, first(cons(y1, y2), y3)), z2)) -> c1(MARK(first(y0, first(cons(y1, y2), y3)))) A__FIRST(s(z0), cons(first(first(y0, y1), first(y2, y3)), z2)) -> c1(MARK(first(first(y0, y1), first(y2, y3)))) A__FIRST(s(z0), cons(first(from(y0), first(y1, y2)), z2)) -> c1(MARK(first(from(y0), first(y1, y2)))) A__FIRST(s(z0), cons(first(s(y0), first(y1, y2)), z2)) -> c1(MARK(first(s(y0), first(y1, y2)))) A__FIRST(s(z0), cons(first(y0, first(y1, y2)), z2)) -> c1(MARK(first(y0, first(y1, y2)))) A__FIRST(s(z0), cons(first(cons(y0, y1), first(y2, y3)), z2)) -> c1(MARK(first(cons(y0, y1), first(y2, y3)))) A__FIRST(s(z0), cons(first(y0, from(y1)), z2)) -> c1(MARK(first(y0, from(y1)))) A__FIRST(s(z0), cons(first(y0, from(first(y1, y2))), z2)) -> c1(MARK(first(y0, from(first(y1, y2))))) A__FIRST(s(z0), cons(first(y0, from(from(y1))), z2)) -> c1(MARK(first(y0, from(from(y1))))) A__FIRST(s(z0), cons(first(y0, from(0)), z2)) -> c1(MARK(first(y0, from(0)))) A__FIRST(s(z0), cons(first(y0, from(nil)), z2)) -> c1(MARK(first(y0, from(nil)))) A__FIRST(s(z0), cons(first(y0, from(s(y1))), z2)) -> c1(MARK(first(y0, from(s(y1))))) A__FIRST(s(z0), cons(first(y0, from(cons(y1, y2))), z2)) -> c1(MARK(first(y0, from(cons(y1, y2))))) A__FIRST(s(z0), cons(first(first(y0, y1), from(y2)), z2)) -> c1(MARK(first(first(y0, y1), from(y2)))) A__FIRST(s(z0), cons(first(from(y0), from(y1)), z2)) -> c1(MARK(first(from(y0), from(y1)))) A__FIRST(s(z0), cons(first(s(y0), from(y1)), z2)) -> c1(MARK(first(s(y0), from(y1)))) A__FIRST(s(z0), cons(first(cons(y0, y1), from(y2)), z2)) -> c1(MARK(first(cons(y0, y1), from(y2)))) A__FIRST(s(z0), cons(first(y0, cons(first(y1, y2), y3)), z2)) -> c1(MARK(first(y0, cons(first(y1, y2), y3)))) A__FIRST(s(z0), cons(first(y0, cons(from(y1), y2)), z2)) -> c1(MARK(first(y0, cons(from(y1), y2)))) A__FIRST(s(z0), cons(first(y0, cons(0, y1)), z2)) -> c1(MARK(first(y0, cons(0, y1)))) A__FIRST(s(z0), cons(first(y0, cons(nil, y1)), z2)) -> c1(MARK(first(y0, cons(nil, y1)))) A__FIRST(s(z0), cons(first(y0, cons(s(y1), y2)), z2)) -> c1(MARK(first(y0, cons(s(y1), y2)))) A__FIRST(s(z0), cons(first(y0, cons(cons(y1, y2), y3)), z2)) -> c1(MARK(first(y0, cons(cons(y1, y2), y3)))) A__FIRST(s(z0), cons(first(first(y0, y1), cons(y2, y3)), z2)) -> c1(MARK(first(first(y0, y1), cons(y2, y3)))) A__FIRST(s(z0), cons(first(from(y0), cons(y1, y2)), z2)) -> c1(MARK(first(from(y0), cons(y1, y2)))) A__FIRST(s(z0), cons(first(s(y0), cons(y1, y2)), z2)) -> c1(MARK(first(s(y0), cons(y1, y2)))) A__FIRST(s(z0), cons(first(cons(y0, y1), cons(y2, y3)), z2)) -> c1(MARK(first(cons(y0, y1), cons(y2, y3)))) A__FIRST(s(z0), cons(first(first(y0, first(y1, y2)), y3), z2)) -> c1(MARK(first(first(y0, first(y1, y2)), y3))) A__FIRST(s(z0), cons(first(first(y0, from(y1)), y2), z2)) -> c1(MARK(first(first(y0, from(y1)), y2))) A__FIRST(s(z0), cons(first(first(y0, 0), y1), z2)) -> c1(MARK(first(first(y0, 0), y1))) A__FIRST(s(z0), cons(first(first(y0, nil), y1), z2)) -> c1(MARK(first(first(y0, nil), y1))) A__FIRST(s(z0), cons(first(first(y0, s(y1)), y2), z2)) -> c1(MARK(first(first(y0, s(y1)), y2))) A__FIRST(s(z0), cons(first(first(y0, cons(y1, y2)), y3), z2)) -> c1(MARK(first(first(y0, cons(y1, y2)), y3))) A__FIRST(s(z0), cons(first(first(first(y0, y1), y2), y3), z2)) -> c1(MARK(first(first(first(y0, y1), y2), y3))) A__FIRST(s(z0), cons(first(first(from(y0), y1), y2), z2)) -> c1(MARK(first(first(from(y0), y1), y2))) A__FIRST(s(z0), cons(first(first(0, y0), y1), z2)) -> c1(MARK(first(first(0, y0), y1))) A__FIRST(s(z0), cons(first(first(nil, y0), y1), z2)) -> c1(MARK(first(first(nil, y0), y1))) A__FIRST(s(z0), cons(first(first(s(y0), y1), y2), z2)) -> c1(MARK(first(first(s(y0), y1), y2))) A__FIRST(s(z0), cons(first(first(cons(y0, y1), y2), y3), z2)) -> c1(MARK(first(first(cons(y0, y1), y2), y3))) A__FIRST(s(z0), cons(first(first(y0, y1), 0), z2)) -> c1(MARK(first(first(y0, y1), 0))) A__FIRST(s(z0), cons(first(first(y0, y1), nil), z2)) -> c1(MARK(first(first(y0, y1), nil))) A__FIRST(s(z0), cons(first(first(y0, y1), s(y2)), z2)) -> c1(MARK(first(first(y0, y1), s(y2)))) A__FIRST(s(z0), cons(first(first(y0, y1), y2), z2)) -> c1(MARK(first(first(y0, y1), y2))) A__FIRST(s(z0), cons(first(from(first(y0, y1)), y2), z2)) -> c1(MARK(first(from(first(y0, y1)), y2))) A__FIRST(s(z0), cons(first(from(from(y0)), y1), z2)) -> c1(MARK(first(from(from(y0)), y1))) A__FIRST(s(z0), cons(first(from(0), y0), z2)) -> c1(MARK(first(from(0), y0))) A__FIRST(s(z0), cons(first(from(nil), y0), z2)) -> c1(MARK(first(from(nil), y0))) A__FIRST(s(z0), cons(first(from(s(y0)), y1), z2)) -> c1(MARK(first(from(s(y0)), y1))) A__FIRST(s(z0), cons(first(from(cons(y0, y1)), y2), z2)) -> c1(MARK(first(from(cons(y0, y1)), y2))) A__FIRST(s(z0), cons(first(from(y0), y1), z2)) -> c1(MARK(first(from(y0), y1))) A__FIRST(s(z0), cons(first(from(y0), 0), z2)) -> c1(MARK(first(from(y0), 0))) A__FIRST(s(z0), cons(first(from(y0), nil), z2)) -> c1(MARK(first(from(y0), nil))) A__FIRST(s(z0), cons(first(from(y0), s(y1)), z2)) -> c1(MARK(first(from(y0), s(y1)))) A__FIRST(s(z0), cons(first(s(first(y0, y1)), y2), z2)) -> c1(MARK(first(s(first(y0, y1)), y2))) A__FIRST(s(z0), cons(first(s(from(y0)), y1), z2)) -> c1(MARK(first(s(from(y0)), y1))) A__FIRST(s(z0), cons(first(s(0), y0), z2)) -> c1(MARK(first(s(0), y0))) A__FIRST(s(z0), cons(first(s(nil), y0), z2)) -> c1(MARK(first(s(nil), y0))) A__FIRST(s(z0), cons(first(s(s(y0)), y1), z2)) -> c1(MARK(first(s(s(y0)), y1))) A__FIRST(s(z0), cons(first(s(cons(y0, y1)), y2), z2)) -> c1(MARK(first(s(cons(y0, y1)), y2))) A__FIRST(s(z0), cons(first(s(y0), y1), z2)) -> c1(MARK(first(s(y0), y1))) A__FIRST(s(z0), cons(first(s(y0), 0), z2)) -> c1(MARK(first(s(y0), 0))) A__FIRST(s(z0), cons(first(s(y0), nil), z2)) -> c1(MARK(first(s(y0), nil))) A__FIRST(s(z0), cons(first(s(y0), s(y1)), z2)) -> c1(MARK(first(s(y0), s(y1)))) A__FIRST(s(z0), cons(first(0, first(y0, y1)), z2)) -> c1(MARK(first(0, first(y0, y1)))) A__FIRST(s(z0), cons(first(nil, first(y0, y1)), z2)) -> c1(MARK(first(nil, first(y0, y1)))) A__FIRST(s(z0), cons(first(0, from(y0)), z2)) -> c1(MARK(first(0, from(y0)))) A__FIRST(s(z0), cons(first(nil, from(y0)), z2)) -> c1(MARK(first(nil, from(y0)))) A__FIRST(s(z0), cons(first(y0, cons(y1, y2)), z2)) -> c1(MARK(first(y0, cons(y1, y2)))) A__FIRST(s(z0), cons(first(0, cons(y0, y1)), z2)) -> c1(MARK(first(0, cons(y0, y1)))) A__FIRST(s(z0), cons(first(nil, cons(y0, y1)), z2)) -> c1(MARK(first(nil, cons(y0, y1)))) MARK(first(x0, cons(0, x2))) -> c5(MARK(x0)) MARK(first(x0, cons(nil, x2))) -> c5(MARK(x0)) MARK(first(x0, cons(0, x2))) -> c6(MARK(cons(0, x2))) MARK(first(x0, cons(nil, x2))) -> c6(MARK(cons(nil, x2))) A__FROM(from(y0)) -> c3(MARK(from(y0))) A__FROM(s(y0)) -> c3(MARK(s(y0))) A__FROM(cons(y0, y1)) -> c3(MARK(cons(y0, y1))) A__FROM(first(y0, 0)) -> c3(MARK(first(y0, 0))) A__FROM(first(y0, nil)) -> c3(MARK(first(y0, nil))) A__FROM(first(y0, s(y1))) -> c3(MARK(first(y0, s(y1)))) A__FROM(first(cons(y0, y1), y2)) -> c3(MARK(first(cons(y0, y1), y2))) A__FROM(first(0, y0)) -> c3(MARK(first(0, y0))) A__FROM(first(nil, y0)) -> c3(MARK(first(nil, y0))) A__FROM(first(y0, first(y1, first(y2, y3)))) -> c3(MARK(first(y0, first(y1, first(y2, y3))))) A__FROM(first(y0, first(y1, from(y2)))) -> c3(MARK(first(y0, first(y1, from(y2))))) A__FROM(first(y0, first(y1, 0))) -> c3(MARK(first(y0, first(y1, 0)))) A__FROM(first(y0, first(y1, nil))) -> c3(MARK(first(y0, first(y1, nil)))) A__FROM(first(y0, first(y1, s(y2)))) -> c3(MARK(first(y0, first(y1, s(y2))))) A__FROM(first(y0, first(y1, cons(y2, y3)))) -> c3(MARK(first(y0, first(y1, cons(y2, y3))))) A__FROM(first(y0, first(first(y1, y2), y3))) -> c3(MARK(first(y0, first(first(y1, y2), y3)))) A__FROM(first(y0, first(from(y1), y2))) -> c3(MARK(first(y0, first(from(y1), y2)))) A__FROM(first(y0, first(0, y1))) -> c3(MARK(first(y0, first(0, y1)))) A__FROM(first(y0, first(nil, y1))) -> c3(MARK(first(y0, first(nil, y1)))) A__FROM(first(y0, first(s(y1), y2))) -> c3(MARK(first(y0, first(s(y1), y2)))) A__FROM(first(y0, first(cons(y1, y2), y3))) -> c3(MARK(first(y0, first(cons(y1, y2), y3)))) A__FROM(first(first(y0, y1), first(y2, y3))) -> c3(MARK(first(first(y0, y1), first(y2, y3)))) A__FROM(first(from(y0), first(y1, y2))) -> c3(MARK(first(from(y0), first(y1, y2)))) A__FROM(first(s(y0), first(y1, y2))) -> c3(MARK(first(s(y0), first(y1, y2)))) A__FROM(first(y0, first(y1, y2))) -> c3(MARK(first(y0, first(y1, y2)))) A__FROM(first(cons(y0, y1), first(y2, y3))) -> c3(MARK(first(cons(y0, y1), first(y2, y3)))) A__FROM(first(y0, from(y1))) -> c3(MARK(first(y0, from(y1)))) A__FROM(first(y0, from(first(y1, y2)))) -> c3(MARK(first(y0, from(first(y1, y2))))) A__FROM(first(y0, from(from(y1)))) -> c3(MARK(first(y0, from(from(y1))))) A__FROM(first(y0, from(0))) -> c3(MARK(first(y0, from(0)))) A__FROM(first(y0, from(nil))) -> c3(MARK(first(y0, from(nil)))) A__FROM(first(y0, from(s(y1)))) -> c3(MARK(first(y0, from(s(y1))))) A__FROM(first(y0, from(cons(y1, y2)))) -> c3(MARK(first(y0, from(cons(y1, y2))))) A__FROM(first(first(y0, y1), from(y2))) -> c3(MARK(first(first(y0, y1), from(y2)))) A__FROM(first(from(y0), from(y1))) -> c3(MARK(first(from(y0), from(y1)))) A__FROM(first(s(y0), from(y1))) -> c3(MARK(first(s(y0), from(y1)))) A__FROM(first(cons(y0, y1), from(y2))) -> c3(MARK(first(cons(y0, y1), from(y2)))) A__FROM(first(y0, cons(first(y1, y2), y3))) -> c3(MARK(first(y0, cons(first(y1, y2), y3)))) A__FROM(first(y0, cons(from(y1), y2))) -> c3(MARK(first(y0, cons(from(y1), y2)))) A__FROM(first(y0, cons(s(y1), y2))) -> c3(MARK(first(y0, cons(s(y1), y2)))) A__FROM(first(y0, cons(cons(y1, y2), y3))) -> c3(MARK(first(y0, cons(cons(y1, y2), y3)))) A__FROM(first(first(y0, y1), cons(y2, y3))) -> c3(MARK(first(first(y0, y1), cons(y2, y3)))) A__FROM(first(from(y0), cons(y1, y2))) -> c3(MARK(first(from(y0), cons(y1, y2)))) A__FROM(first(s(y0), cons(y1, y2))) -> c3(MARK(first(s(y0), cons(y1, y2)))) A__FROM(first(cons(y0, y1), cons(y2, y3))) -> c3(MARK(first(cons(y0, y1), cons(y2, y3)))) A__FROM(first(first(y0, first(y1, y2)), y3)) -> c3(MARK(first(first(y0, first(y1, y2)), y3))) A__FROM(first(first(y0, from(y1)), y2)) -> c3(MARK(first(first(y0, from(y1)), y2))) A__FROM(first(first(y0, 0), y1)) -> c3(MARK(first(first(y0, 0), y1))) A__FROM(first(first(y0, nil), y1)) -> c3(MARK(first(first(y0, nil), y1))) A__FROM(first(first(y0, s(y1)), y2)) -> c3(MARK(first(first(y0, s(y1)), y2))) A__FROM(first(first(y0, cons(y1, y2)), y3)) -> c3(MARK(first(first(y0, cons(y1, y2)), y3))) A__FROM(first(first(first(y0, y1), y2), y3)) -> c3(MARK(first(first(first(y0, y1), y2), y3))) A__FROM(first(first(from(y0), y1), y2)) -> c3(MARK(first(first(from(y0), y1), y2))) A__FROM(first(first(0, y0), y1)) -> c3(MARK(first(first(0, y0), y1))) A__FROM(first(first(nil, y0), y1)) -> c3(MARK(first(first(nil, y0), y1))) A__FROM(first(first(s(y0), y1), y2)) -> c3(MARK(first(first(s(y0), y1), y2))) A__FROM(first(first(cons(y0, y1), y2), y3)) -> c3(MARK(first(first(cons(y0, y1), y2), y3))) A__FROM(first(first(y0, y1), 0)) -> c3(MARK(first(first(y0, y1), 0))) A__FROM(first(first(y0, y1), nil)) -> c3(MARK(first(first(y0, y1), nil))) A__FROM(first(first(y0, y1), s(y2))) -> c3(MARK(first(first(y0, y1), s(y2)))) A__FROM(first(first(y0, y1), y2)) -> c3(MARK(first(first(y0, y1), y2))) A__FROM(first(from(first(y0, y1)), y2)) -> c3(MARK(first(from(first(y0, y1)), y2))) A__FROM(first(from(from(y0)), y1)) -> c3(MARK(first(from(from(y0)), y1))) A__FROM(first(from(0), y0)) -> c3(MARK(first(from(0), y0))) A__FROM(first(from(nil), y0)) -> c3(MARK(first(from(nil), y0))) A__FROM(first(from(s(y0)), y1)) -> c3(MARK(first(from(s(y0)), y1))) A__FROM(first(from(cons(y0, y1)), y2)) -> c3(MARK(first(from(cons(y0, y1)), y2))) A__FROM(first(from(y0), y1)) -> c3(MARK(first(from(y0), y1))) A__FROM(first(from(y0), 0)) -> c3(MARK(first(from(y0), 0))) A__FROM(first(from(y0), nil)) -> c3(MARK(first(from(y0), nil))) A__FROM(first(from(y0), s(y1))) -> c3(MARK(first(from(y0), s(y1)))) A__FROM(first(s(first(y0, y1)), y2)) -> c3(MARK(first(s(first(y0, y1)), y2))) A__FROM(first(s(from(y0)), y1)) -> c3(MARK(first(s(from(y0)), y1))) A__FROM(first(s(0), y0)) -> c3(MARK(first(s(0), y0))) A__FROM(first(s(nil), y0)) -> c3(MARK(first(s(nil), y0))) A__FROM(first(s(s(y0)), y1)) -> c3(MARK(first(s(s(y0)), y1))) A__FROM(first(s(cons(y0, y1)), y2)) -> c3(MARK(first(s(cons(y0, y1)), y2))) A__FROM(first(s(y0), y1)) -> c3(MARK(first(s(y0), y1))) A__FROM(first(s(y0), 0)) -> c3(MARK(first(s(y0), 0))) A__FROM(first(s(y0), nil)) -> c3(MARK(first(s(y0), nil))) A__FROM(first(s(y0), s(y1))) -> c3(MARK(first(s(y0), s(y1)))) A__FROM(first(0, first(y0, y1))) -> c3(MARK(first(0, first(y0, y1)))) A__FROM(first(nil, first(y0, y1))) -> c3(MARK(first(nil, first(y0, y1)))) A__FROM(first(0, from(y0))) -> c3(MARK(first(0, from(y0)))) A__FROM(first(nil, from(y0))) -> c3(MARK(first(nil, from(y0)))) A__FROM(first(y0, cons(y1, y2))) -> c3(MARK(first(y0, cons(y1, y2)))) A__FROM(first(0, cons(y0, y1))) -> c3(MARK(first(0, cons(y0, y1)))) A__FROM(first(nil, cons(y0, y1))) -> c3(MARK(first(nil, cons(y0, y1)))) A__FROM(first(y0, cons(0, y1))) -> c3(MARK(first(y0, cons(0, y1)))) A__FROM(first(y0, cons(nil, y1))) -> c3(MARK(first(y0, cons(nil, y1)))) MARK(from(s(z0))) -> c7(A__FROM(s(mark(z0))), MARK(s(z0))) MARK(from(cons(z0, z1))) -> c7(A__FROM(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(from(0), x1)) -> c5(A__FIRST(a__from(0), mark(x1))) MARK(first(from(nil), x1)) -> c5(A__FIRST(a__from(nil), mark(x1))) MARK(first(x0, from(0))) -> c6(A__FIRST(mark(x0), a__from(0))) MARK(first(x0, from(nil))) -> c6(A__FIRST(mark(x0), a__from(nil))) MARK(from(first(x0, x1))) -> c7(A__FROM(first(mark(x0), mark(x1))), MARK(first(x0, x1))) MARK(from(first(x0, first(z0, z1)))) -> c7(A__FROM(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) MARK(from(first(x0, from(z0)))) -> c7(A__FROM(a__first(mark(x0), a__from(mark(z0)))), MARK(first(x0, from(z0)))) MARK(from(first(x0, 0))) -> c7(A__FROM(a__first(mark(x0), 0)), MARK(first(x0, 0))) MARK(from(first(x0, nil))) -> c7(A__FROM(a__first(mark(x0), nil)), MARK(first(x0, nil))) MARK(from(first(x0, s(z0)))) -> c7(A__FROM(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) MARK(from(first(x0, cons(z0, z1)))) -> c7(A__FROM(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) MARK(from(first(first(z0, z1), x1))) -> c7(A__FROM(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) MARK(from(first(from(z0), x1))) -> c7(A__FROM(a__first(a__from(mark(z0)), mark(x1))), MARK(first(from(z0), x1))) MARK(from(first(0, x1))) -> c7(A__FROM(a__first(0, mark(x1))), MARK(first(0, x1))) MARK(from(first(nil, x1))) -> c7(A__FROM(a__first(nil, mark(x1))), MARK(first(nil, x1))) MARK(from(first(s(z0), x1))) -> c7(A__FROM(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) MARK(from(first(cons(z0, z1), x1))) -> c7(A__FROM(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) MARK(from(from(x0))) -> c7(A__FROM(cons(mark(mark(x0)), from(s(mark(x0))))), MARK(from(x0))) MARK(from(from(x0))) -> c7(A__FROM(from(mark(x0))), MARK(from(x0))) MARK(from(from(first(z0, z1)))) -> c7(A__FROM(a__from(a__first(mark(z0), mark(z1)))), MARK(from(first(z0, z1)))) MARK(from(from(from(z0)))) -> c7(A__FROM(a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(from(from(0))) -> c7(A__FROM(a__from(0)), MARK(from(0))) MARK(from(from(nil))) -> c7(A__FROM(a__from(nil)), MARK(from(nil))) MARK(from(from(s(z0)))) -> c7(A__FROM(a__from(s(mark(z0)))), MARK(from(s(z0)))) MARK(from(from(cons(z0, z1)))) -> c7(A__FROM(a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) S tuples: MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(x0, from(x1))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), from(x1))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(first(x0, cons(from(z0), x2))) -> c5(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(s(z0), x2))) -> c5(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(first(first(z0, z1), cons(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(first(z0, z1))) MARK(first(from(z0), cons(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(first(s(z0), cons(x1, x2))) -> c5(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(s(z0))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(first(x0, first(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(first(x0, first(z0, z1)))) MARK(first(first(x0, from(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(first(x0, from(z0)))) MARK(first(first(x0, 0), x2)) -> c5(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(first(x0, 0))) MARK(first(first(x0, nil), x2)) -> c5(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(first(x0, nil))) MARK(first(first(x0, s(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(first(x0, s(z0)))) MARK(first(first(x0, cons(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(first(x0, cons(z0, z1)))) MARK(first(first(first(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(first(first(z0, z1), x1))) MARK(first(first(from(z0), x1), x2)) -> c5(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(first(from(z0), x1))) MARK(first(first(0, x1), x2)) -> c5(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(first(0, x1))) MARK(first(first(nil, x1), x2)) -> c5(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(first(nil, x1))) MARK(first(first(s(z0), x1), x2)) -> c5(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(first(s(z0), x1))) MARK(first(first(cons(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(first(cons(z0, z1), x1))) MARK(first(first(x0, x1), 0)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), nil)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), s(z0))) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), x2)) -> c5(MARK(first(x0, x1))) MARK(first(from(first(z0, z1)), x1)) -> c5(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(from(first(z0, z1)))) MARK(first(from(from(z0)), x1)) -> c5(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(first(from(s(z0)), x1)) -> c5(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(from(s(z0)))) MARK(first(from(cons(z0, z1)), x1)) -> c5(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(first(from(x0), x1)) -> c5(MARK(from(x0))) MARK(first(from(x0), 0)) -> c5(MARK(from(x0))) MARK(first(from(x0), nil)) -> c5(MARK(from(x0))) MARK(first(from(x0), s(z0))) -> c5(MARK(from(x0))) MARK(first(s(first(z0, z1)), x1)) -> c5(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(s(first(z0, z1)))) MARK(first(s(from(z0)), x1)) -> c5(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(s(from(z0)))) MARK(first(s(0), x1)) -> c5(A__FIRST(s(0), mark(x1)), MARK(s(0))) MARK(first(s(nil), x1)) -> c5(A__FIRST(s(nil), mark(x1)), MARK(s(nil))) MARK(first(s(s(z0)), x1)) -> c5(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(s(s(z0)))) MARK(first(s(cons(z0, z1)), x1)) -> c5(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(s(cons(z0, z1)))) MARK(first(s(x0), x1)) -> c5(MARK(s(x0))) MARK(first(s(x0), 0)) -> c5(MARK(s(x0))) MARK(first(s(x0), nil)) -> c5(MARK(s(x0))) MARK(first(s(x0), s(z0))) -> c5(MARK(s(x0))) MARK(first(x0, first(x1, first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(first(x1, first(z0, z1)))) MARK(first(x0, first(x1, from(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(first(x1, from(z0)))) MARK(first(x0, first(x1, 0))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(first(x1, 0))) MARK(first(x0, first(x1, nil))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(first(x1, nil))) MARK(first(x0, first(x1, s(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(first(x1, s(z0)))) MARK(first(x0, first(x1, cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(first(x1, cons(z0, z1)))) MARK(first(x0, first(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(first(first(z0, z1), x2))) MARK(first(x0, first(from(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(first(from(z0), x2))) MARK(first(x0, first(0, x2))) -> c6(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(first(0, x2))) MARK(first(x0, first(nil, x2))) -> c6(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(first(nil, x2))) MARK(first(x0, first(s(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(first(s(z0), x2))) MARK(first(x0, first(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(first(cons(z0, z1), x2))) MARK(first(first(z0, z1), first(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(from(z0), first(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(s(z0), first(x1, x2))) -> c6(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(x0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(nil, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(cons(z0, z1), first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(x0, from(x1))) -> c6(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(first(x0, from(first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(from(first(z0, z1)))) MARK(first(x0, from(from(z0)))) -> c6(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(first(x0, from(s(z0)))) -> c6(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(from(s(z0)))) MARK(first(x0, from(cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(first(first(z0, z1), from(x1))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(first(from(z0), from(x1))) -> c6(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(s(z0), from(x1))) -> c6(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(x0, from(x1))) -> c6(MARK(from(x1))) MARK(first(0, from(x1))) -> c6(MARK(from(x1))) MARK(first(nil, from(x1))) -> c6(MARK(from(x1))) MARK(first(cons(z0, z1), from(x1))) -> c6(MARK(from(x1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(cons(first(z0, z1), x2))) MARK(first(x0, cons(from(z0), x2))) -> c6(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(first(x0, cons(s(z0), x2))) -> c6(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(cons(s(z0), x2))) MARK(first(x0, cons(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(first(first(z0, z1), cons(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(from(z0), cons(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(s(z0), cons(x1, x2))) -> c6(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(x0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(nil, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(first(x0, first(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(first(first(x0, from(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, 0), x2)) -> c6(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(x2)) MARK(first(first(x0, nil), x2)) -> c6(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(x2)) MARK(first(first(x0, s(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, cons(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(first(first(first(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(from(z0), x1), x2)) -> c6(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(0, x1), x2)) -> c6(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(nil, x1), x2)) -> c6(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(s(z0), x1), x2)) -> c6(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(cons(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(x0, x1), s(z0))) -> c6(MARK(s(z0))) MARK(first(first(x0, x1), x2)) -> c6(MARK(x2)) MARK(first(from(first(z0, z1)), x1)) -> c6(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(first(from(from(z0)), x1)) -> c6(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(first(from(0), x1)) -> c6(A__FIRST(a__from(0), mark(x1)), MARK(x1)) MARK(first(from(nil), x1)) -> c6(A__FIRST(a__from(nil), mark(x1)), MARK(x1)) MARK(first(from(s(z0)), x1)) -> c6(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(x1)) MARK(first(from(cons(z0, z1)), x1)) -> c6(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(first(from(x0), s(z0))) -> c6(MARK(s(z0))) MARK(first(from(x0), x1)) -> c6(MARK(x1)) MARK(first(s(first(z0, z1)), x1)) -> c6(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(first(s(from(z0)), x1)) -> c6(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(first(s(0), x1)) -> c6(A__FIRST(s(0), mark(x1)), MARK(x1)) MARK(first(s(nil), x1)) -> c6(A__FIRST(s(nil), mark(x1)), MARK(x1)) MARK(first(s(s(z0)), x1)) -> c6(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(x1)) MARK(first(s(cons(z0, z1)), x1)) -> c6(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(first(s(x0), s(z0))) -> c6(MARK(s(z0))) A__FIRST(s(z0), cons(from(y0), z2)) -> c1(MARK(from(y0))) A__FIRST(s(z0), cons(s(y0), z2)) -> c1(MARK(s(y0))) A__FIRST(s(z0), cons(cons(y0, y1), z2)) -> c1(MARK(cons(y0, y1))) A__FIRST(s(z0), cons(first(y0, 0), z2)) -> c1(MARK(first(y0, 0))) A__FIRST(s(z0), cons(first(y0, nil), z2)) -> c1(MARK(first(y0, nil))) A__FIRST(s(z0), cons(first(y0, s(y1)), z2)) -> c1(MARK(first(y0, s(y1)))) A__FIRST(s(z0), cons(first(cons(y0, y1), y2), z2)) -> c1(MARK(first(cons(y0, y1), y2))) A__FIRST(s(z0), cons(first(0, y0), z2)) -> c1(MARK(first(0, y0))) A__FIRST(s(z0), cons(first(nil, y0), z2)) -> c1(MARK(first(nil, y0))) A__FIRST(s(z0), cons(first(y0, first(y1, first(y2, y3))), z2)) -> c1(MARK(first(y0, first(y1, first(y2, y3))))) A__FIRST(s(z0), cons(first(y0, first(y1, from(y2))), z2)) -> c1(MARK(first(y0, first(y1, from(y2))))) A__FIRST(s(z0), cons(first(y0, first(y1, 0)), z2)) -> c1(MARK(first(y0, first(y1, 0)))) A__FIRST(s(z0), cons(first(y0, first(y1, nil)), z2)) -> c1(MARK(first(y0, first(y1, nil)))) A__FIRST(s(z0), cons(first(y0, first(y1, s(y2))), z2)) -> c1(MARK(first(y0, first(y1, s(y2))))) A__FIRST(s(z0), cons(first(y0, first(y1, cons(y2, y3))), z2)) -> c1(MARK(first(y0, first(y1, cons(y2, y3))))) A__FIRST(s(z0), cons(first(y0, first(first(y1, y2), y3)), z2)) -> c1(MARK(first(y0, first(first(y1, y2), y3)))) A__FIRST(s(z0), cons(first(y0, first(from(y1), y2)), z2)) -> c1(MARK(first(y0, first(from(y1), y2)))) A__FIRST(s(z0), cons(first(y0, first(0, y1)), z2)) -> c1(MARK(first(y0, first(0, y1)))) A__FIRST(s(z0), cons(first(y0, first(nil, y1)), z2)) -> c1(MARK(first(y0, first(nil, y1)))) A__FIRST(s(z0), cons(first(y0, first(s(y1), y2)), z2)) -> c1(MARK(first(y0, first(s(y1), y2)))) A__FIRST(s(z0), cons(first(y0, first(cons(y1, y2), y3)), z2)) -> c1(MARK(first(y0, first(cons(y1, y2), y3)))) A__FIRST(s(z0), cons(first(first(y0, y1), first(y2, y3)), z2)) -> c1(MARK(first(first(y0, y1), first(y2, y3)))) A__FIRST(s(z0), cons(first(from(y0), first(y1, y2)), z2)) -> c1(MARK(first(from(y0), first(y1, y2)))) A__FIRST(s(z0), cons(first(s(y0), first(y1, y2)), z2)) -> c1(MARK(first(s(y0), first(y1, y2)))) A__FIRST(s(z0), cons(first(y0, first(y1, y2)), z2)) -> c1(MARK(first(y0, first(y1, y2)))) A__FIRST(s(z0), cons(first(cons(y0, y1), first(y2, y3)), z2)) -> c1(MARK(first(cons(y0, y1), first(y2, y3)))) A__FIRST(s(z0), cons(first(y0, from(y1)), z2)) -> c1(MARK(first(y0, from(y1)))) A__FIRST(s(z0), cons(first(y0, from(first(y1, y2))), z2)) -> c1(MARK(first(y0, from(first(y1, y2))))) A__FIRST(s(z0), cons(first(y0, from(from(y1))), z2)) -> c1(MARK(first(y0, from(from(y1))))) A__FIRST(s(z0), cons(first(y0, from(0)), z2)) -> c1(MARK(first(y0, from(0)))) A__FIRST(s(z0), cons(first(y0, from(nil)), z2)) -> c1(MARK(first(y0, from(nil)))) A__FIRST(s(z0), cons(first(y0, from(s(y1))), z2)) -> c1(MARK(first(y0, from(s(y1))))) A__FIRST(s(z0), cons(first(y0, from(cons(y1, y2))), z2)) -> c1(MARK(first(y0, from(cons(y1, y2))))) A__FIRST(s(z0), cons(first(first(y0, y1), from(y2)), z2)) -> c1(MARK(first(first(y0, y1), from(y2)))) A__FIRST(s(z0), cons(first(from(y0), from(y1)), z2)) -> c1(MARK(first(from(y0), from(y1)))) A__FIRST(s(z0), cons(first(s(y0), from(y1)), z2)) -> c1(MARK(first(s(y0), from(y1)))) A__FIRST(s(z0), cons(first(cons(y0, y1), from(y2)), z2)) -> c1(MARK(first(cons(y0, y1), from(y2)))) A__FIRST(s(z0), cons(first(y0, cons(first(y1, y2), y3)), z2)) -> c1(MARK(first(y0, cons(first(y1, y2), y3)))) A__FIRST(s(z0), cons(first(y0, cons(from(y1), y2)), z2)) -> c1(MARK(first(y0, cons(from(y1), y2)))) A__FIRST(s(z0), cons(first(y0, cons(0, y1)), z2)) -> c1(MARK(first(y0, cons(0, y1)))) A__FIRST(s(z0), cons(first(y0, cons(nil, y1)), z2)) -> c1(MARK(first(y0, cons(nil, y1)))) A__FIRST(s(z0), cons(first(y0, cons(s(y1), y2)), z2)) -> c1(MARK(first(y0, cons(s(y1), y2)))) A__FIRST(s(z0), cons(first(y0, cons(cons(y1, y2), y3)), z2)) -> c1(MARK(first(y0, cons(cons(y1, y2), y3)))) A__FIRST(s(z0), cons(first(first(y0, y1), cons(y2, y3)), z2)) -> c1(MARK(first(first(y0, y1), cons(y2, y3)))) A__FIRST(s(z0), cons(first(from(y0), cons(y1, y2)), z2)) -> c1(MARK(first(from(y0), cons(y1, y2)))) A__FIRST(s(z0), cons(first(s(y0), cons(y1, y2)), z2)) -> c1(MARK(first(s(y0), cons(y1, y2)))) A__FIRST(s(z0), cons(first(cons(y0, y1), cons(y2, y3)), z2)) -> c1(MARK(first(cons(y0, y1), cons(y2, y3)))) A__FIRST(s(z0), cons(first(first(y0, first(y1, y2)), y3), z2)) -> c1(MARK(first(first(y0, first(y1, y2)), y3))) A__FIRST(s(z0), cons(first(first(y0, from(y1)), y2), z2)) -> c1(MARK(first(first(y0, from(y1)), y2))) A__FIRST(s(z0), cons(first(first(y0, 0), y1), z2)) -> c1(MARK(first(first(y0, 0), y1))) A__FIRST(s(z0), cons(first(first(y0, nil), y1), z2)) -> c1(MARK(first(first(y0, nil), y1))) A__FIRST(s(z0), cons(first(first(y0, s(y1)), y2), z2)) -> c1(MARK(first(first(y0, s(y1)), y2))) A__FIRST(s(z0), cons(first(first(y0, cons(y1, y2)), y3), z2)) -> c1(MARK(first(first(y0, cons(y1, y2)), y3))) A__FIRST(s(z0), cons(first(first(first(y0, y1), y2), y3), z2)) -> c1(MARK(first(first(first(y0, y1), y2), y3))) A__FIRST(s(z0), cons(first(first(from(y0), y1), y2), z2)) -> c1(MARK(first(first(from(y0), y1), y2))) A__FIRST(s(z0), cons(first(first(0, y0), y1), z2)) -> c1(MARK(first(first(0, y0), y1))) A__FIRST(s(z0), cons(first(first(nil, y0), y1), z2)) -> c1(MARK(first(first(nil, y0), y1))) A__FIRST(s(z0), cons(first(first(s(y0), y1), y2), z2)) -> c1(MARK(first(first(s(y0), y1), y2))) A__FIRST(s(z0), cons(first(first(cons(y0, y1), y2), y3), z2)) -> c1(MARK(first(first(cons(y0, y1), y2), y3))) A__FIRST(s(z0), cons(first(first(y0, y1), 0), z2)) -> c1(MARK(first(first(y0, y1), 0))) A__FIRST(s(z0), cons(first(first(y0, y1), nil), z2)) -> c1(MARK(first(first(y0, y1), nil))) A__FIRST(s(z0), cons(first(first(y0, y1), s(y2)), z2)) -> c1(MARK(first(first(y0, y1), s(y2)))) A__FIRST(s(z0), cons(first(first(y0, y1), y2), z2)) -> c1(MARK(first(first(y0, y1), y2))) A__FIRST(s(z0), cons(first(from(first(y0, y1)), y2), z2)) -> c1(MARK(first(from(first(y0, y1)), y2))) A__FIRST(s(z0), cons(first(from(from(y0)), y1), z2)) -> c1(MARK(first(from(from(y0)), y1))) A__FIRST(s(z0), cons(first(from(0), y0), z2)) -> c1(MARK(first(from(0), y0))) A__FIRST(s(z0), cons(first(from(nil), y0), z2)) -> c1(MARK(first(from(nil), y0))) A__FIRST(s(z0), cons(first(from(s(y0)), y1), z2)) -> c1(MARK(first(from(s(y0)), y1))) A__FIRST(s(z0), cons(first(from(cons(y0, y1)), y2), z2)) -> c1(MARK(first(from(cons(y0, y1)), y2))) A__FIRST(s(z0), cons(first(from(y0), y1), z2)) -> c1(MARK(first(from(y0), y1))) A__FIRST(s(z0), cons(first(from(y0), 0), z2)) -> c1(MARK(first(from(y0), 0))) A__FIRST(s(z0), cons(first(from(y0), nil), z2)) -> c1(MARK(first(from(y0), nil))) A__FIRST(s(z0), cons(first(from(y0), s(y1)), z2)) -> c1(MARK(first(from(y0), s(y1)))) A__FIRST(s(z0), cons(first(s(first(y0, y1)), y2), z2)) -> c1(MARK(first(s(first(y0, y1)), y2))) A__FIRST(s(z0), cons(first(s(from(y0)), y1), z2)) -> c1(MARK(first(s(from(y0)), y1))) A__FIRST(s(z0), cons(first(s(0), y0), z2)) -> c1(MARK(first(s(0), y0))) A__FIRST(s(z0), cons(first(s(nil), y0), z2)) -> c1(MARK(first(s(nil), y0))) A__FIRST(s(z0), cons(first(s(s(y0)), y1), z2)) -> c1(MARK(first(s(s(y0)), y1))) A__FIRST(s(z0), cons(first(s(cons(y0, y1)), y2), z2)) -> c1(MARK(first(s(cons(y0, y1)), y2))) A__FIRST(s(z0), cons(first(s(y0), y1), z2)) -> c1(MARK(first(s(y0), y1))) A__FIRST(s(z0), cons(first(s(y0), 0), z2)) -> c1(MARK(first(s(y0), 0))) A__FIRST(s(z0), cons(first(s(y0), nil), z2)) -> c1(MARK(first(s(y0), nil))) A__FIRST(s(z0), cons(first(s(y0), s(y1)), z2)) -> c1(MARK(first(s(y0), s(y1)))) A__FIRST(s(z0), cons(first(0, first(y0, y1)), z2)) -> c1(MARK(first(0, first(y0, y1)))) A__FIRST(s(z0), cons(first(nil, first(y0, y1)), z2)) -> c1(MARK(first(nil, first(y0, y1)))) A__FIRST(s(z0), cons(first(0, from(y0)), z2)) -> c1(MARK(first(0, from(y0)))) A__FIRST(s(z0), cons(first(nil, from(y0)), z2)) -> c1(MARK(first(nil, from(y0)))) A__FIRST(s(z0), cons(first(y0, cons(y1, y2)), z2)) -> c1(MARK(first(y0, cons(y1, y2)))) A__FIRST(s(z0), cons(first(0, cons(y0, y1)), z2)) -> c1(MARK(first(0, cons(y0, y1)))) A__FIRST(s(z0), cons(first(nil, cons(y0, y1)), z2)) -> c1(MARK(first(nil, cons(y0, y1)))) MARK(first(x0, cons(0, x2))) -> c5(MARK(x0)) MARK(first(x0, cons(nil, x2))) -> c5(MARK(x0)) MARK(first(x0, cons(0, x2))) -> c6(MARK(cons(0, x2))) MARK(first(x0, cons(nil, x2))) -> c6(MARK(cons(nil, x2))) A__FROM(from(y0)) -> c3(MARK(from(y0))) A__FROM(s(y0)) -> c3(MARK(s(y0))) A__FROM(cons(y0, y1)) -> c3(MARK(cons(y0, y1))) A__FROM(first(y0, 0)) -> c3(MARK(first(y0, 0))) A__FROM(first(y0, nil)) -> c3(MARK(first(y0, nil))) A__FROM(first(y0, s(y1))) -> c3(MARK(first(y0, s(y1)))) A__FROM(first(cons(y0, y1), y2)) -> c3(MARK(first(cons(y0, y1), y2))) A__FROM(first(0, y0)) -> c3(MARK(first(0, y0))) A__FROM(first(nil, y0)) -> c3(MARK(first(nil, y0))) A__FROM(first(y0, first(y1, first(y2, y3)))) -> c3(MARK(first(y0, first(y1, first(y2, y3))))) A__FROM(first(y0, first(y1, from(y2)))) -> c3(MARK(first(y0, first(y1, from(y2))))) A__FROM(first(y0, first(y1, 0))) -> c3(MARK(first(y0, first(y1, 0)))) A__FROM(first(y0, first(y1, nil))) -> c3(MARK(first(y0, first(y1, nil)))) A__FROM(first(y0, first(y1, s(y2)))) -> c3(MARK(first(y0, first(y1, s(y2))))) A__FROM(first(y0, first(y1, cons(y2, y3)))) -> c3(MARK(first(y0, first(y1, cons(y2, y3))))) A__FROM(first(y0, first(first(y1, y2), y3))) -> c3(MARK(first(y0, first(first(y1, y2), y3)))) A__FROM(first(y0, first(from(y1), y2))) -> c3(MARK(first(y0, first(from(y1), y2)))) A__FROM(first(y0, first(0, y1))) -> c3(MARK(first(y0, first(0, y1)))) A__FROM(first(y0, first(nil, y1))) -> c3(MARK(first(y0, first(nil, y1)))) A__FROM(first(y0, first(s(y1), y2))) -> c3(MARK(first(y0, first(s(y1), y2)))) A__FROM(first(y0, first(cons(y1, y2), y3))) -> c3(MARK(first(y0, first(cons(y1, y2), y3)))) A__FROM(first(first(y0, y1), first(y2, y3))) -> c3(MARK(first(first(y0, y1), first(y2, y3)))) A__FROM(first(from(y0), first(y1, y2))) -> c3(MARK(first(from(y0), first(y1, y2)))) A__FROM(first(s(y0), first(y1, y2))) -> c3(MARK(first(s(y0), first(y1, y2)))) A__FROM(first(y0, first(y1, y2))) -> c3(MARK(first(y0, first(y1, y2)))) A__FROM(first(cons(y0, y1), first(y2, y3))) -> c3(MARK(first(cons(y0, y1), first(y2, y3)))) A__FROM(first(y0, from(y1))) -> c3(MARK(first(y0, from(y1)))) A__FROM(first(y0, from(first(y1, y2)))) -> c3(MARK(first(y0, from(first(y1, y2))))) A__FROM(first(y0, from(from(y1)))) -> c3(MARK(first(y0, from(from(y1))))) A__FROM(first(y0, from(0))) -> c3(MARK(first(y0, from(0)))) A__FROM(first(y0, from(nil))) -> c3(MARK(first(y0, from(nil)))) A__FROM(first(y0, from(s(y1)))) -> c3(MARK(first(y0, from(s(y1))))) A__FROM(first(y0, from(cons(y1, y2)))) -> c3(MARK(first(y0, from(cons(y1, y2))))) A__FROM(first(first(y0, y1), from(y2))) -> c3(MARK(first(first(y0, y1), from(y2)))) A__FROM(first(from(y0), from(y1))) -> c3(MARK(first(from(y0), from(y1)))) A__FROM(first(s(y0), from(y1))) -> c3(MARK(first(s(y0), from(y1)))) A__FROM(first(cons(y0, y1), from(y2))) -> c3(MARK(first(cons(y0, y1), from(y2)))) A__FROM(first(y0, cons(first(y1, y2), y3))) -> c3(MARK(first(y0, cons(first(y1, y2), y3)))) A__FROM(first(y0, cons(from(y1), y2))) -> c3(MARK(first(y0, cons(from(y1), y2)))) A__FROM(first(y0, cons(s(y1), y2))) -> c3(MARK(first(y0, cons(s(y1), y2)))) A__FROM(first(y0, cons(cons(y1, y2), y3))) -> c3(MARK(first(y0, cons(cons(y1, y2), y3)))) A__FROM(first(first(y0, y1), cons(y2, y3))) -> c3(MARK(first(first(y0, y1), cons(y2, y3)))) A__FROM(first(from(y0), cons(y1, y2))) -> c3(MARK(first(from(y0), cons(y1, y2)))) A__FROM(first(s(y0), cons(y1, y2))) -> c3(MARK(first(s(y0), cons(y1, y2)))) A__FROM(first(cons(y0, y1), cons(y2, y3))) -> c3(MARK(first(cons(y0, y1), cons(y2, y3)))) A__FROM(first(first(y0, first(y1, y2)), y3)) -> c3(MARK(first(first(y0, first(y1, y2)), y3))) A__FROM(first(first(y0, from(y1)), y2)) -> c3(MARK(first(first(y0, from(y1)), y2))) A__FROM(first(first(y0, 0), y1)) -> c3(MARK(first(first(y0, 0), y1))) A__FROM(first(first(y0, nil), y1)) -> c3(MARK(first(first(y0, nil), y1))) A__FROM(first(first(y0, s(y1)), y2)) -> c3(MARK(first(first(y0, s(y1)), y2))) A__FROM(first(first(y0, cons(y1, y2)), y3)) -> c3(MARK(first(first(y0, cons(y1, y2)), y3))) A__FROM(first(first(first(y0, y1), y2), y3)) -> c3(MARK(first(first(first(y0, y1), y2), y3))) A__FROM(first(first(from(y0), y1), y2)) -> c3(MARK(first(first(from(y0), y1), y2))) A__FROM(first(first(0, y0), y1)) -> c3(MARK(first(first(0, y0), y1))) A__FROM(first(first(nil, y0), y1)) -> c3(MARK(first(first(nil, y0), y1))) A__FROM(first(first(s(y0), y1), y2)) -> c3(MARK(first(first(s(y0), y1), y2))) A__FROM(first(first(cons(y0, y1), y2), y3)) -> c3(MARK(first(first(cons(y0, y1), y2), y3))) A__FROM(first(first(y0, y1), 0)) -> c3(MARK(first(first(y0, y1), 0))) A__FROM(first(first(y0, y1), nil)) -> c3(MARK(first(first(y0, y1), nil))) A__FROM(first(first(y0, y1), s(y2))) -> c3(MARK(first(first(y0, y1), s(y2)))) A__FROM(first(first(y0, y1), y2)) -> c3(MARK(first(first(y0, y1), y2))) A__FROM(first(from(first(y0, y1)), y2)) -> c3(MARK(first(from(first(y0, y1)), y2))) A__FROM(first(from(from(y0)), y1)) -> c3(MARK(first(from(from(y0)), y1))) A__FROM(first(from(0), y0)) -> c3(MARK(first(from(0), y0))) A__FROM(first(from(nil), y0)) -> c3(MARK(first(from(nil), y0))) A__FROM(first(from(s(y0)), y1)) -> c3(MARK(first(from(s(y0)), y1))) A__FROM(first(from(cons(y0, y1)), y2)) -> c3(MARK(first(from(cons(y0, y1)), y2))) A__FROM(first(from(y0), y1)) -> c3(MARK(first(from(y0), y1))) A__FROM(first(from(y0), 0)) -> c3(MARK(first(from(y0), 0))) A__FROM(first(from(y0), nil)) -> c3(MARK(first(from(y0), nil))) A__FROM(first(from(y0), s(y1))) -> c3(MARK(first(from(y0), s(y1)))) A__FROM(first(s(first(y0, y1)), y2)) -> c3(MARK(first(s(first(y0, y1)), y2))) A__FROM(first(s(from(y0)), y1)) -> c3(MARK(first(s(from(y0)), y1))) A__FROM(first(s(0), y0)) -> c3(MARK(first(s(0), y0))) A__FROM(first(s(nil), y0)) -> c3(MARK(first(s(nil), y0))) A__FROM(first(s(s(y0)), y1)) -> c3(MARK(first(s(s(y0)), y1))) A__FROM(first(s(cons(y0, y1)), y2)) -> c3(MARK(first(s(cons(y0, y1)), y2))) A__FROM(first(s(y0), y1)) -> c3(MARK(first(s(y0), y1))) A__FROM(first(s(y0), 0)) -> c3(MARK(first(s(y0), 0))) A__FROM(first(s(y0), nil)) -> c3(MARK(first(s(y0), nil))) A__FROM(first(s(y0), s(y1))) -> c3(MARK(first(s(y0), s(y1)))) A__FROM(first(0, first(y0, y1))) -> c3(MARK(first(0, first(y0, y1)))) A__FROM(first(nil, first(y0, y1))) -> c3(MARK(first(nil, first(y0, y1)))) A__FROM(first(0, from(y0))) -> c3(MARK(first(0, from(y0)))) A__FROM(first(nil, from(y0))) -> c3(MARK(first(nil, from(y0)))) A__FROM(first(y0, cons(y1, y2))) -> c3(MARK(first(y0, cons(y1, y2)))) A__FROM(first(0, cons(y0, y1))) -> c3(MARK(first(0, cons(y0, y1)))) A__FROM(first(nil, cons(y0, y1))) -> c3(MARK(first(nil, cons(y0, y1)))) A__FROM(first(y0, cons(0, y1))) -> c3(MARK(first(y0, cons(0, y1)))) A__FROM(first(y0, cons(nil, y1))) -> c3(MARK(first(y0, cons(nil, y1)))) MARK(from(s(z0))) -> c7(A__FROM(s(mark(z0))), MARK(s(z0))) MARK(from(cons(z0, z1))) -> c7(A__FROM(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(from(0), x1)) -> c5(A__FIRST(a__from(0), mark(x1))) MARK(first(from(nil), x1)) -> c5(A__FIRST(a__from(nil), mark(x1))) MARK(first(x0, from(0))) -> c6(A__FIRST(mark(x0), a__from(0))) MARK(first(x0, from(nil))) -> c6(A__FIRST(mark(x0), a__from(nil))) MARK(from(first(x0, x1))) -> c7(A__FROM(first(mark(x0), mark(x1))), MARK(first(x0, x1))) MARK(from(first(x0, first(z0, z1)))) -> c7(A__FROM(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) MARK(from(first(x0, from(z0)))) -> c7(A__FROM(a__first(mark(x0), a__from(mark(z0)))), MARK(first(x0, from(z0)))) MARK(from(first(x0, 0))) -> c7(A__FROM(a__first(mark(x0), 0)), MARK(first(x0, 0))) MARK(from(first(x0, nil))) -> c7(A__FROM(a__first(mark(x0), nil)), MARK(first(x0, nil))) MARK(from(first(x0, s(z0)))) -> c7(A__FROM(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) MARK(from(first(x0, cons(z0, z1)))) -> c7(A__FROM(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) MARK(from(first(first(z0, z1), x1))) -> c7(A__FROM(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) MARK(from(first(from(z0), x1))) -> c7(A__FROM(a__first(a__from(mark(z0)), mark(x1))), MARK(first(from(z0), x1))) MARK(from(first(0, x1))) -> c7(A__FROM(a__first(0, mark(x1))), MARK(first(0, x1))) MARK(from(first(nil, x1))) -> c7(A__FROM(a__first(nil, mark(x1))), MARK(first(nil, x1))) MARK(from(first(s(z0), x1))) -> c7(A__FROM(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) MARK(from(first(cons(z0, z1), x1))) -> c7(A__FROM(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) MARK(from(from(x0))) -> c7(A__FROM(cons(mark(mark(x0)), from(s(mark(x0))))), MARK(from(x0))) MARK(from(from(x0))) -> c7(A__FROM(from(mark(x0))), MARK(from(x0))) MARK(from(from(first(z0, z1)))) -> c7(A__FROM(a__from(a__first(mark(z0), mark(z1)))), MARK(from(first(z0, z1)))) MARK(from(from(from(z0)))) -> c7(A__FROM(a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(from(from(0))) -> c7(A__FROM(a__from(0)), MARK(from(0))) MARK(from(from(nil))) -> c7(A__FROM(a__from(nil)), MARK(from(nil))) MARK(from(from(s(z0)))) -> c7(A__FROM(a__from(s(mark(z0)))), MARK(from(s(z0)))) MARK(from(from(cons(z0, z1)))) -> c7(A__FROM(a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) K tuples:none Defined Rule Symbols: a__first_2, a__from_1, mark_1 Defined Pair Symbols: MARK_1, A__FIRST_2, A__FROM_1 Compound Symbols: c10_1, c11_1, c5_1, c6_1, c5_2, c6_2, c1_1, c3_1, c7_2 ---------------------------------------- (151) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (152) Obligation: Complexity Dependency Tuples Problem Rules: a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(0) -> 0 mark(nil) -> nil mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(x0, from(x1))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), from(x1))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(first(x0, cons(from(z0), x2))) -> c5(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(s(z0), x2))) -> c5(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(first(first(z0, z1), cons(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(first(z0, z1))) MARK(first(from(z0), cons(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(first(s(z0), cons(x1, x2))) -> c5(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(s(z0))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(first(x0, first(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(first(x0, first(z0, z1)))) MARK(first(first(x0, from(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(first(x0, from(z0)))) MARK(first(first(x0, 0), x2)) -> c5(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(first(x0, 0))) MARK(first(first(x0, nil), x2)) -> c5(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(first(x0, nil))) MARK(first(first(x0, s(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(first(x0, s(z0)))) MARK(first(first(x0, cons(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(first(x0, cons(z0, z1)))) MARK(first(first(first(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(first(first(z0, z1), x1))) MARK(first(first(from(z0), x1), x2)) -> c5(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(first(from(z0), x1))) MARK(first(first(0, x1), x2)) -> c5(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(first(0, x1))) MARK(first(first(nil, x1), x2)) -> c5(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(first(nil, x1))) MARK(first(first(s(z0), x1), x2)) -> c5(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(first(s(z0), x1))) MARK(first(first(cons(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(first(cons(z0, z1), x1))) MARK(first(first(x0, x1), 0)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), nil)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), s(z0))) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), x2)) -> c5(MARK(first(x0, x1))) MARK(first(from(first(z0, z1)), x1)) -> c5(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(from(first(z0, z1)))) MARK(first(from(from(z0)), x1)) -> c5(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(first(from(s(z0)), x1)) -> c5(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(from(s(z0)))) MARK(first(from(cons(z0, z1)), x1)) -> c5(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(first(from(x0), x1)) -> c5(MARK(from(x0))) MARK(first(from(x0), 0)) -> c5(MARK(from(x0))) MARK(first(from(x0), nil)) -> c5(MARK(from(x0))) MARK(first(from(x0), s(z0))) -> c5(MARK(from(x0))) MARK(first(s(first(z0, z1)), x1)) -> c5(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(s(first(z0, z1)))) MARK(first(s(from(z0)), x1)) -> c5(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(s(from(z0)))) MARK(first(s(0), x1)) -> c5(A__FIRST(s(0), mark(x1)), MARK(s(0))) MARK(first(s(nil), x1)) -> c5(A__FIRST(s(nil), mark(x1)), MARK(s(nil))) MARK(first(s(s(z0)), x1)) -> c5(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(s(s(z0)))) MARK(first(s(cons(z0, z1)), x1)) -> c5(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(s(cons(z0, z1)))) MARK(first(s(x0), x1)) -> c5(MARK(s(x0))) MARK(first(s(x0), 0)) -> c5(MARK(s(x0))) MARK(first(s(x0), nil)) -> c5(MARK(s(x0))) MARK(first(s(x0), s(z0))) -> c5(MARK(s(x0))) MARK(first(x0, first(x1, first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(first(x1, first(z0, z1)))) MARK(first(x0, first(x1, from(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(first(x1, from(z0)))) MARK(first(x0, first(x1, 0))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(first(x1, 0))) MARK(first(x0, first(x1, nil))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(first(x1, nil))) MARK(first(x0, first(x1, s(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(first(x1, s(z0)))) MARK(first(x0, first(x1, cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(first(x1, cons(z0, z1)))) MARK(first(x0, first(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(first(first(z0, z1), x2))) MARK(first(x0, first(from(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(first(from(z0), x2))) MARK(first(x0, first(0, x2))) -> c6(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(first(0, x2))) MARK(first(x0, first(nil, x2))) -> c6(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(first(nil, x2))) MARK(first(x0, first(s(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(first(s(z0), x2))) MARK(first(x0, first(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(first(cons(z0, z1), x2))) MARK(first(first(z0, z1), first(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(from(z0), first(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(s(z0), first(x1, x2))) -> c6(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(x0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(nil, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(cons(z0, z1), first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(x0, from(x1))) -> c6(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(first(x0, from(first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(from(first(z0, z1)))) MARK(first(x0, from(from(z0)))) -> c6(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(first(x0, from(s(z0)))) -> c6(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(from(s(z0)))) MARK(first(x0, from(cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(first(first(z0, z1), from(x1))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(first(from(z0), from(x1))) -> c6(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(s(z0), from(x1))) -> c6(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(x0, from(x1))) -> c6(MARK(from(x1))) MARK(first(0, from(x1))) -> c6(MARK(from(x1))) MARK(first(nil, from(x1))) -> c6(MARK(from(x1))) MARK(first(cons(z0, z1), from(x1))) -> c6(MARK(from(x1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(cons(first(z0, z1), x2))) MARK(first(x0, cons(from(z0), x2))) -> c6(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(first(x0, cons(s(z0), x2))) -> c6(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(cons(s(z0), x2))) MARK(first(x0, cons(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(first(first(z0, z1), cons(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(from(z0), cons(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(s(z0), cons(x1, x2))) -> c6(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(x0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(nil, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(first(x0, first(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(first(first(x0, from(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, 0), x2)) -> c6(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(x2)) MARK(first(first(x0, nil), x2)) -> c6(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(x2)) MARK(first(first(x0, s(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, cons(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(first(first(first(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(from(z0), x1), x2)) -> c6(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(0, x1), x2)) -> c6(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(nil, x1), x2)) -> c6(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(s(z0), x1), x2)) -> c6(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(cons(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(x0, x1), s(z0))) -> c6(MARK(s(z0))) MARK(first(first(x0, x1), x2)) -> c6(MARK(x2)) MARK(first(from(first(z0, z1)), x1)) -> c6(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(first(from(from(z0)), x1)) -> c6(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(first(from(0), x1)) -> c6(A__FIRST(a__from(0), mark(x1)), MARK(x1)) MARK(first(from(nil), x1)) -> c6(A__FIRST(a__from(nil), mark(x1)), MARK(x1)) MARK(first(from(s(z0)), x1)) -> c6(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(x1)) MARK(first(from(cons(z0, z1)), x1)) -> c6(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(first(from(x0), s(z0))) -> c6(MARK(s(z0))) MARK(first(from(x0), x1)) -> c6(MARK(x1)) MARK(first(s(first(z0, z1)), x1)) -> c6(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(first(s(from(z0)), x1)) -> c6(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(first(s(0), x1)) -> c6(A__FIRST(s(0), mark(x1)), MARK(x1)) MARK(first(s(nil), x1)) -> c6(A__FIRST(s(nil), mark(x1)), MARK(x1)) MARK(first(s(s(z0)), x1)) -> c6(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(x1)) MARK(first(s(cons(z0, z1)), x1)) -> c6(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(first(s(x0), s(z0))) -> c6(MARK(s(z0))) A__FIRST(s(z0), cons(from(y0), z2)) -> c1(MARK(from(y0))) A__FIRST(s(z0), cons(s(y0), z2)) -> c1(MARK(s(y0))) A__FIRST(s(z0), cons(cons(y0, y1), z2)) -> c1(MARK(cons(y0, y1))) A__FIRST(s(z0), cons(first(y0, 0), z2)) -> c1(MARK(first(y0, 0))) A__FIRST(s(z0), cons(first(y0, nil), z2)) -> c1(MARK(first(y0, nil))) A__FIRST(s(z0), cons(first(y0, s(y1)), z2)) -> c1(MARK(first(y0, s(y1)))) A__FIRST(s(z0), cons(first(cons(y0, y1), y2), z2)) -> c1(MARK(first(cons(y0, y1), y2))) A__FIRST(s(z0), cons(first(0, y0), z2)) -> c1(MARK(first(0, y0))) A__FIRST(s(z0), cons(first(nil, y0), z2)) -> c1(MARK(first(nil, y0))) A__FIRST(s(z0), cons(first(y0, first(y1, first(y2, y3))), z2)) -> c1(MARK(first(y0, first(y1, first(y2, y3))))) A__FIRST(s(z0), cons(first(y0, first(y1, from(y2))), z2)) -> c1(MARK(first(y0, first(y1, from(y2))))) A__FIRST(s(z0), cons(first(y0, first(y1, 0)), z2)) -> c1(MARK(first(y0, first(y1, 0)))) A__FIRST(s(z0), cons(first(y0, first(y1, nil)), z2)) -> c1(MARK(first(y0, first(y1, nil)))) A__FIRST(s(z0), cons(first(y0, first(y1, s(y2))), z2)) -> c1(MARK(first(y0, first(y1, s(y2))))) A__FIRST(s(z0), cons(first(y0, first(y1, cons(y2, y3))), z2)) -> c1(MARK(first(y0, first(y1, cons(y2, y3))))) A__FIRST(s(z0), cons(first(y0, first(first(y1, y2), y3)), z2)) -> c1(MARK(first(y0, first(first(y1, y2), y3)))) A__FIRST(s(z0), cons(first(y0, first(from(y1), y2)), z2)) -> c1(MARK(first(y0, first(from(y1), y2)))) A__FIRST(s(z0), cons(first(y0, first(0, y1)), z2)) -> c1(MARK(first(y0, first(0, y1)))) A__FIRST(s(z0), cons(first(y0, first(nil, y1)), z2)) -> c1(MARK(first(y0, first(nil, y1)))) A__FIRST(s(z0), cons(first(y0, first(s(y1), y2)), z2)) -> c1(MARK(first(y0, first(s(y1), y2)))) A__FIRST(s(z0), cons(first(y0, first(cons(y1, y2), y3)), z2)) -> c1(MARK(first(y0, first(cons(y1, y2), y3)))) A__FIRST(s(z0), cons(first(first(y0, y1), first(y2, y3)), z2)) -> c1(MARK(first(first(y0, y1), first(y2, y3)))) A__FIRST(s(z0), cons(first(from(y0), first(y1, y2)), z2)) -> c1(MARK(first(from(y0), first(y1, y2)))) A__FIRST(s(z0), cons(first(s(y0), first(y1, y2)), z2)) -> c1(MARK(first(s(y0), first(y1, y2)))) A__FIRST(s(z0), cons(first(y0, first(y1, y2)), z2)) -> c1(MARK(first(y0, first(y1, y2)))) A__FIRST(s(z0), cons(first(cons(y0, y1), first(y2, y3)), z2)) -> c1(MARK(first(cons(y0, y1), first(y2, y3)))) A__FIRST(s(z0), cons(first(y0, from(y1)), z2)) -> c1(MARK(first(y0, from(y1)))) A__FIRST(s(z0), cons(first(y0, from(first(y1, y2))), z2)) -> c1(MARK(first(y0, from(first(y1, y2))))) A__FIRST(s(z0), cons(first(y0, from(from(y1))), z2)) -> c1(MARK(first(y0, from(from(y1))))) A__FIRST(s(z0), cons(first(y0, from(0)), z2)) -> c1(MARK(first(y0, from(0)))) A__FIRST(s(z0), cons(first(y0, from(nil)), z2)) -> c1(MARK(first(y0, from(nil)))) A__FIRST(s(z0), cons(first(y0, from(s(y1))), z2)) -> c1(MARK(first(y0, from(s(y1))))) A__FIRST(s(z0), cons(first(y0, from(cons(y1, y2))), z2)) -> c1(MARK(first(y0, from(cons(y1, y2))))) A__FIRST(s(z0), cons(first(first(y0, y1), from(y2)), z2)) -> c1(MARK(first(first(y0, y1), from(y2)))) A__FIRST(s(z0), cons(first(from(y0), from(y1)), z2)) -> c1(MARK(first(from(y0), from(y1)))) A__FIRST(s(z0), cons(first(s(y0), from(y1)), z2)) -> c1(MARK(first(s(y0), from(y1)))) A__FIRST(s(z0), cons(first(cons(y0, y1), from(y2)), z2)) -> c1(MARK(first(cons(y0, y1), from(y2)))) A__FIRST(s(z0), cons(first(y0, cons(first(y1, y2), y3)), z2)) -> c1(MARK(first(y0, cons(first(y1, y2), y3)))) A__FIRST(s(z0), cons(first(y0, cons(from(y1), y2)), z2)) -> c1(MARK(first(y0, cons(from(y1), y2)))) A__FIRST(s(z0), cons(first(y0, cons(0, y1)), z2)) -> c1(MARK(first(y0, cons(0, y1)))) A__FIRST(s(z0), cons(first(y0, cons(nil, y1)), z2)) -> c1(MARK(first(y0, cons(nil, y1)))) A__FIRST(s(z0), cons(first(y0, cons(s(y1), y2)), z2)) -> c1(MARK(first(y0, cons(s(y1), y2)))) A__FIRST(s(z0), cons(first(y0, cons(cons(y1, y2), y3)), z2)) -> c1(MARK(first(y0, cons(cons(y1, y2), y3)))) A__FIRST(s(z0), cons(first(first(y0, y1), cons(y2, y3)), z2)) -> c1(MARK(first(first(y0, y1), cons(y2, y3)))) A__FIRST(s(z0), cons(first(from(y0), cons(y1, y2)), z2)) -> c1(MARK(first(from(y0), cons(y1, y2)))) A__FIRST(s(z0), cons(first(s(y0), cons(y1, y2)), z2)) -> c1(MARK(first(s(y0), cons(y1, y2)))) A__FIRST(s(z0), cons(first(cons(y0, y1), cons(y2, y3)), z2)) -> c1(MARK(first(cons(y0, y1), cons(y2, y3)))) A__FIRST(s(z0), cons(first(first(y0, first(y1, y2)), y3), z2)) -> c1(MARK(first(first(y0, first(y1, y2)), y3))) A__FIRST(s(z0), cons(first(first(y0, from(y1)), y2), z2)) -> c1(MARK(first(first(y0, from(y1)), y2))) A__FIRST(s(z0), cons(first(first(y0, 0), y1), z2)) -> c1(MARK(first(first(y0, 0), y1))) A__FIRST(s(z0), cons(first(first(y0, nil), y1), z2)) -> c1(MARK(first(first(y0, nil), y1))) A__FIRST(s(z0), cons(first(first(y0, s(y1)), y2), z2)) -> c1(MARK(first(first(y0, s(y1)), y2))) A__FIRST(s(z0), cons(first(first(y0, cons(y1, y2)), y3), z2)) -> c1(MARK(first(first(y0, cons(y1, y2)), y3))) A__FIRST(s(z0), cons(first(first(first(y0, y1), y2), y3), z2)) -> c1(MARK(first(first(first(y0, y1), y2), y3))) A__FIRST(s(z0), cons(first(first(from(y0), y1), y2), z2)) -> c1(MARK(first(first(from(y0), y1), y2))) A__FIRST(s(z0), cons(first(first(0, y0), y1), z2)) -> c1(MARK(first(first(0, y0), y1))) A__FIRST(s(z0), cons(first(first(nil, y0), y1), z2)) -> c1(MARK(first(first(nil, y0), y1))) A__FIRST(s(z0), cons(first(first(s(y0), y1), y2), z2)) -> c1(MARK(first(first(s(y0), y1), y2))) A__FIRST(s(z0), cons(first(first(cons(y0, y1), y2), y3), z2)) -> c1(MARK(first(first(cons(y0, y1), y2), y3))) A__FIRST(s(z0), cons(first(first(y0, y1), 0), z2)) -> c1(MARK(first(first(y0, y1), 0))) A__FIRST(s(z0), cons(first(first(y0, y1), nil), z2)) -> c1(MARK(first(first(y0, y1), nil))) A__FIRST(s(z0), cons(first(first(y0, y1), s(y2)), z2)) -> c1(MARK(first(first(y0, y1), s(y2)))) A__FIRST(s(z0), cons(first(first(y0, y1), y2), z2)) -> c1(MARK(first(first(y0, y1), y2))) A__FIRST(s(z0), cons(first(from(first(y0, y1)), y2), z2)) -> c1(MARK(first(from(first(y0, y1)), y2))) A__FIRST(s(z0), cons(first(from(from(y0)), y1), z2)) -> c1(MARK(first(from(from(y0)), y1))) A__FIRST(s(z0), cons(first(from(0), y0), z2)) -> c1(MARK(first(from(0), y0))) A__FIRST(s(z0), cons(first(from(nil), y0), z2)) -> c1(MARK(first(from(nil), y0))) A__FIRST(s(z0), cons(first(from(s(y0)), y1), z2)) -> c1(MARK(first(from(s(y0)), y1))) A__FIRST(s(z0), cons(first(from(cons(y0, y1)), y2), z2)) -> c1(MARK(first(from(cons(y0, y1)), y2))) A__FIRST(s(z0), cons(first(from(y0), y1), z2)) -> c1(MARK(first(from(y0), y1))) A__FIRST(s(z0), cons(first(from(y0), 0), z2)) -> c1(MARK(first(from(y0), 0))) A__FIRST(s(z0), cons(first(from(y0), nil), z2)) -> c1(MARK(first(from(y0), nil))) A__FIRST(s(z0), cons(first(from(y0), s(y1)), z2)) -> c1(MARK(first(from(y0), s(y1)))) A__FIRST(s(z0), cons(first(s(first(y0, y1)), y2), z2)) -> c1(MARK(first(s(first(y0, y1)), y2))) A__FIRST(s(z0), cons(first(s(from(y0)), y1), z2)) -> c1(MARK(first(s(from(y0)), y1))) A__FIRST(s(z0), cons(first(s(0), y0), z2)) -> c1(MARK(first(s(0), y0))) A__FIRST(s(z0), cons(first(s(nil), y0), z2)) -> c1(MARK(first(s(nil), y0))) A__FIRST(s(z0), cons(first(s(s(y0)), y1), z2)) -> c1(MARK(first(s(s(y0)), y1))) A__FIRST(s(z0), cons(first(s(cons(y0, y1)), y2), z2)) -> c1(MARK(first(s(cons(y0, y1)), y2))) A__FIRST(s(z0), cons(first(s(y0), y1), z2)) -> c1(MARK(first(s(y0), y1))) A__FIRST(s(z0), cons(first(s(y0), 0), z2)) -> c1(MARK(first(s(y0), 0))) A__FIRST(s(z0), cons(first(s(y0), nil), z2)) -> c1(MARK(first(s(y0), nil))) A__FIRST(s(z0), cons(first(s(y0), s(y1)), z2)) -> c1(MARK(first(s(y0), s(y1)))) A__FIRST(s(z0), cons(first(0, first(y0, y1)), z2)) -> c1(MARK(first(0, first(y0, y1)))) A__FIRST(s(z0), cons(first(nil, first(y0, y1)), z2)) -> c1(MARK(first(nil, first(y0, y1)))) A__FIRST(s(z0), cons(first(0, from(y0)), z2)) -> c1(MARK(first(0, from(y0)))) A__FIRST(s(z0), cons(first(nil, from(y0)), z2)) -> c1(MARK(first(nil, from(y0)))) A__FIRST(s(z0), cons(first(y0, cons(y1, y2)), z2)) -> c1(MARK(first(y0, cons(y1, y2)))) A__FIRST(s(z0), cons(first(0, cons(y0, y1)), z2)) -> c1(MARK(first(0, cons(y0, y1)))) A__FIRST(s(z0), cons(first(nil, cons(y0, y1)), z2)) -> c1(MARK(first(nil, cons(y0, y1)))) MARK(first(x0, cons(0, x2))) -> c5(MARK(x0)) MARK(first(x0, cons(nil, x2))) -> c5(MARK(x0)) MARK(first(x0, cons(0, x2))) -> c6(MARK(cons(0, x2))) MARK(first(x0, cons(nil, x2))) -> c6(MARK(cons(nil, x2))) A__FROM(from(y0)) -> c3(MARK(from(y0))) A__FROM(s(y0)) -> c3(MARK(s(y0))) A__FROM(cons(y0, y1)) -> c3(MARK(cons(y0, y1))) A__FROM(first(y0, 0)) -> c3(MARK(first(y0, 0))) A__FROM(first(y0, nil)) -> c3(MARK(first(y0, nil))) A__FROM(first(y0, s(y1))) -> c3(MARK(first(y0, s(y1)))) A__FROM(first(cons(y0, y1), y2)) -> c3(MARK(first(cons(y0, y1), y2))) A__FROM(first(0, y0)) -> c3(MARK(first(0, y0))) A__FROM(first(nil, y0)) -> c3(MARK(first(nil, y0))) A__FROM(first(y0, first(y1, first(y2, y3)))) -> c3(MARK(first(y0, first(y1, first(y2, y3))))) A__FROM(first(y0, first(y1, from(y2)))) -> c3(MARK(first(y0, first(y1, from(y2))))) A__FROM(first(y0, first(y1, 0))) -> c3(MARK(first(y0, first(y1, 0)))) A__FROM(first(y0, first(y1, nil))) -> c3(MARK(first(y0, first(y1, nil)))) A__FROM(first(y0, first(y1, s(y2)))) -> c3(MARK(first(y0, first(y1, s(y2))))) A__FROM(first(y0, first(y1, cons(y2, y3)))) -> c3(MARK(first(y0, first(y1, cons(y2, y3))))) A__FROM(first(y0, first(first(y1, y2), y3))) -> c3(MARK(first(y0, first(first(y1, y2), y3)))) A__FROM(first(y0, first(from(y1), y2))) -> c3(MARK(first(y0, first(from(y1), y2)))) A__FROM(first(y0, first(0, y1))) -> c3(MARK(first(y0, first(0, y1)))) A__FROM(first(y0, first(nil, y1))) -> c3(MARK(first(y0, first(nil, y1)))) A__FROM(first(y0, first(s(y1), y2))) -> c3(MARK(first(y0, first(s(y1), y2)))) A__FROM(first(y0, first(cons(y1, y2), y3))) -> c3(MARK(first(y0, first(cons(y1, y2), y3)))) A__FROM(first(first(y0, y1), first(y2, y3))) -> c3(MARK(first(first(y0, y1), first(y2, y3)))) A__FROM(first(from(y0), first(y1, y2))) -> c3(MARK(first(from(y0), first(y1, y2)))) A__FROM(first(s(y0), first(y1, y2))) -> c3(MARK(first(s(y0), first(y1, y2)))) A__FROM(first(y0, first(y1, y2))) -> c3(MARK(first(y0, first(y1, y2)))) A__FROM(first(cons(y0, y1), first(y2, y3))) -> c3(MARK(first(cons(y0, y1), first(y2, y3)))) A__FROM(first(y0, from(y1))) -> c3(MARK(first(y0, from(y1)))) A__FROM(first(y0, from(first(y1, y2)))) -> c3(MARK(first(y0, from(first(y1, y2))))) A__FROM(first(y0, from(from(y1)))) -> c3(MARK(first(y0, from(from(y1))))) A__FROM(first(y0, from(0))) -> c3(MARK(first(y0, from(0)))) A__FROM(first(y0, from(nil))) -> c3(MARK(first(y0, from(nil)))) A__FROM(first(y0, from(s(y1)))) -> c3(MARK(first(y0, from(s(y1))))) A__FROM(first(y0, from(cons(y1, y2)))) -> c3(MARK(first(y0, from(cons(y1, y2))))) A__FROM(first(first(y0, y1), from(y2))) -> c3(MARK(first(first(y0, y1), from(y2)))) A__FROM(first(from(y0), from(y1))) -> c3(MARK(first(from(y0), from(y1)))) A__FROM(first(s(y0), from(y1))) -> c3(MARK(first(s(y0), from(y1)))) A__FROM(first(cons(y0, y1), from(y2))) -> c3(MARK(first(cons(y0, y1), from(y2)))) A__FROM(first(y0, cons(first(y1, y2), y3))) -> c3(MARK(first(y0, cons(first(y1, y2), y3)))) A__FROM(first(y0, cons(from(y1), y2))) -> c3(MARK(first(y0, cons(from(y1), y2)))) A__FROM(first(y0, cons(s(y1), y2))) -> c3(MARK(first(y0, cons(s(y1), y2)))) A__FROM(first(y0, cons(cons(y1, y2), y3))) -> c3(MARK(first(y0, cons(cons(y1, y2), y3)))) A__FROM(first(first(y0, y1), cons(y2, y3))) -> c3(MARK(first(first(y0, y1), cons(y2, y3)))) A__FROM(first(from(y0), cons(y1, y2))) -> c3(MARK(first(from(y0), cons(y1, y2)))) A__FROM(first(s(y0), cons(y1, y2))) -> c3(MARK(first(s(y0), cons(y1, y2)))) A__FROM(first(cons(y0, y1), cons(y2, y3))) -> c3(MARK(first(cons(y0, y1), cons(y2, y3)))) A__FROM(first(first(y0, first(y1, y2)), y3)) -> c3(MARK(first(first(y0, first(y1, y2)), y3))) A__FROM(first(first(y0, from(y1)), y2)) -> c3(MARK(first(first(y0, from(y1)), y2))) A__FROM(first(first(y0, 0), y1)) -> c3(MARK(first(first(y0, 0), y1))) A__FROM(first(first(y0, nil), y1)) -> c3(MARK(first(first(y0, nil), y1))) A__FROM(first(first(y0, s(y1)), y2)) -> c3(MARK(first(first(y0, s(y1)), y2))) A__FROM(first(first(y0, cons(y1, y2)), y3)) -> c3(MARK(first(first(y0, cons(y1, y2)), y3))) A__FROM(first(first(first(y0, y1), y2), y3)) -> c3(MARK(first(first(first(y0, y1), y2), y3))) A__FROM(first(first(from(y0), y1), y2)) -> c3(MARK(first(first(from(y0), y1), y2))) A__FROM(first(first(0, y0), y1)) -> c3(MARK(first(first(0, y0), y1))) A__FROM(first(first(nil, y0), y1)) -> c3(MARK(first(first(nil, y0), y1))) A__FROM(first(first(s(y0), y1), y2)) -> c3(MARK(first(first(s(y0), y1), y2))) A__FROM(first(first(cons(y0, y1), y2), y3)) -> c3(MARK(first(first(cons(y0, y1), y2), y3))) A__FROM(first(first(y0, y1), 0)) -> c3(MARK(first(first(y0, y1), 0))) A__FROM(first(first(y0, y1), nil)) -> c3(MARK(first(first(y0, y1), nil))) A__FROM(first(first(y0, y1), s(y2))) -> c3(MARK(first(first(y0, y1), s(y2)))) A__FROM(first(first(y0, y1), y2)) -> c3(MARK(first(first(y0, y1), y2))) A__FROM(first(from(first(y0, y1)), y2)) -> c3(MARK(first(from(first(y0, y1)), y2))) A__FROM(first(from(from(y0)), y1)) -> c3(MARK(first(from(from(y0)), y1))) A__FROM(first(from(0), y0)) -> c3(MARK(first(from(0), y0))) A__FROM(first(from(nil), y0)) -> c3(MARK(first(from(nil), y0))) A__FROM(first(from(s(y0)), y1)) -> c3(MARK(first(from(s(y0)), y1))) A__FROM(first(from(cons(y0, y1)), y2)) -> c3(MARK(first(from(cons(y0, y1)), y2))) A__FROM(first(from(y0), y1)) -> c3(MARK(first(from(y0), y1))) A__FROM(first(from(y0), 0)) -> c3(MARK(first(from(y0), 0))) A__FROM(first(from(y0), nil)) -> c3(MARK(first(from(y0), nil))) A__FROM(first(from(y0), s(y1))) -> c3(MARK(first(from(y0), s(y1)))) A__FROM(first(s(first(y0, y1)), y2)) -> c3(MARK(first(s(first(y0, y1)), y2))) A__FROM(first(s(from(y0)), y1)) -> c3(MARK(first(s(from(y0)), y1))) A__FROM(first(s(0), y0)) -> c3(MARK(first(s(0), y0))) A__FROM(first(s(nil), y0)) -> c3(MARK(first(s(nil), y0))) A__FROM(first(s(s(y0)), y1)) -> c3(MARK(first(s(s(y0)), y1))) A__FROM(first(s(cons(y0, y1)), y2)) -> c3(MARK(first(s(cons(y0, y1)), y2))) A__FROM(first(s(y0), y1)) -> c3(MARK(first(s(y0), y1))) A__FROM(first(s(y0), 0)) -> c3(MARK(first(s(y0), 0))) A__FROM(first(s(y0), nil)) -> c3(MARK(first(s(y0), nil))) A__FROM(first(s(y0), s(y1))) -> c3(MARK(first(s(y0), s(y1)))) A__FROM(first(0, first(y0, y1))) -> c3(MARK(first(0, first(y0, y1)))) A__FROM(first(nil, first(y0, y1))) -> c3(MARK(first(nil, first(y0, y1)))) A__FROM(first(0, from(y0))) -> c3(MARK(first(0, from(y0)))) A__FROM(first(nil, from(y0))) -> c3(MARK(first(nil, from(y0)))) A__FROM(first(y0, cons(y1, y2))) -> c3(MARK(first(y0, cons(y1, y2)))) A__FROM(first(0, cons(y0, y1))) -> c3(MARK(first(0, cons(y0, y1)))) A__FROM(first(nil, cons(y0, y1))) -> c3(MARK(first(nil, cons(y0, y1)))) A__FROM(first(y0, cons(0, y1))) -> c3(MARK(first(y0, cons(0, y1)))) A__FROM(first(y0, cons(nil, y1))) -> c3(MARK(first(y0, cons(nil, y1)))) MARK(from(s(z0))) -> c7(A__FROM(s(mark(z0))), MARK(s(z0))) MARK(from(cons(z0, z1))) -> c7(A__FROM(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(from(0), x1)) -> c5(A__FIRST(a__from(0), mark(x1))) MARK(first(from(nil), x1)) -> c5(A__FIRST(a__from(nil), mark(x1))) MARK(first(x0, from(0))) -> c6(A__FIRST(mark(x0), a__from(0))) MARK(first(x0, from(nil))) -> c6(A__FIRST(mark(x0), a__from(nil))) MARK(from(first(x0, x1))) -> c7(A__FROM(first(mark(x0), mark(x1))), MARK(first(x0, x1))) MARK(from(first(x0, first(z0, z1)))) -> c7(A__FROM(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) MARK(from(first(x0, from(z0)))) -> c7(A__FROM(a__first(mark(x0), a__from(mark(z0)))), MARK(first(x0, from(z0)))) MARK(from(first(x0, 0))) -> c7(A__FROM(a__first(mark(x0), 0)), MARK(first(x0, 0))) MARK(from(first(x0, nil))) -> c7(A__FROM(a__first(mark(x0), nil)), MARK(first(x0, nil))) MARK(from(first(x0, s(z0)))) -> c7(A__FROM(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) MARK(from(first(x0, cons(z0, z1)))) -> c7(A__FROM(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) MARK(from(first(first(z0, z1), x1))) -> c7(A__FROM(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) MARK(from(first(from(z0), x1))) -> c7(A__FROM(a__first(a__from(mark(z0)), mark(x1))), MARK(first(from(z0), x1))) MARK(from(first(0, x1))) -> c7(A__FROM(a__first(0, mark(x1))), MARK(first(0, x1))) MARK(from(first(nil, x1))) -> c7(A__FROM(a__first(nil, mark(x1))), MARK(first(nil, x1))) MARK(from(first(s(z0), x1))) -> c7(A__FROM(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) MARK(from(first(cons(z0, z1), x1))) -> c7(A__FROM(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) MARK(from(from(x0))) -> c7(A__FROM(cons(mark(mark(x0)), from(s(mark(x0))))), MARK(from(x0))) MARK(from(from(x0))) -> c7(A__FROM(from(mark(x0))), MARK(from(x0))) MARK(from(from(first(z0, z1)))) -> c7(A__FROM(a__from(a__first(mark(z0), mark(z1)))), MARK(from(first(z0, z1)))) MARK(from(from(from(z0)))) -> c7(A__FROM(a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(from(from(s(z0)))) -> c7(A__FROM(a__from(s(mark(z0)))), MARK(from(s(z0)))) MARK(from(from(cons(z0, z1)))) -> c7(A__FROM(a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(from(from(0))) -> c7(A__FROM(a__from(0))) MARK(from(from(nil))) -> c7(A__FROM(a__from(nil))) S tuples: MARK(s(z0)) -> c10(MARK(z0)) MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(x0, from(x1))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), from(x1))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(first(x0, cons(from(z0), x2))) -> c5(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(s(z0), x2))) -> c5(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(first(first(z0, z1), cons(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(first(z0, z1))) MARK(first(from(z0), cons(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(first(s(z0), cons(x1, x2))) -> c5(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(s(z0))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(first(x0, first(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(first(x0, first(z0, z1)))) MARK(first(first(x0, from(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(first(x0, from(z0)))) MARK(first(first(x0, 0), x2)) -> c5(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(first(x0, 0))) MARK(first(first(x0, nil), x2)) -> c5(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(first(x0, nil))) MARK(first(first(x0, s(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(first(x0, s(z0)))) MARK(first(first(x0, cons(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(first(x0, cons(z0, z1)))) MARK(first(first(first(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(first(first(z0, z1), x1))) MARK(first(first(from(z0), x1), x2)) -> c5(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(first(from(z0), x1))) MARK(first(first(0, x1), x2)) -> c5(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(first(0, x1))) MARK(first(first(nil, x1), x2)) -> c5(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(first(nil, x1))) MARK(first(first(s(z0), x1), x2)) -> c5(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(first(s(z0), x1))) MARK(first(first(cons(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(first(cons(z0, z1), x1))) MARK(first(first(x0, x1), 0)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), nil)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), s(z0))) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), x2)) -> c5(MARK(first(x0, x1))) MARK(first(from(first(z0, z1)), x1)) -> c5(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(from(first(z0, z1)))) MARK(first(from(from(z0)), x1)) -> c5(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(first(from(s(z0)), x1)) -> c5(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(from(s(z0)))) MARK(first(from(cons(z0, z1)), x1)) -> c5(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(first(from(x0), x1)) -> c5(MARK(from(x0))) MARK(first(from(x0), 0)) -> c5(MARK(from(x0))) MARK(first(from(x0), nil)) -> c5(MARK(from(x0))) MARK(first(from(x0), s(z0))) -> c5(MARK(from(x0))) MARK(first(s(first(z0, z1)), x1)) -> c5(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(s(first(z0, z1)))) MARK(first(s(from(z0)), x1)) -> c5(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(s(from(z0)))) MARK(first(s(0), x1)) -> c5(A__FIRST(s(0), mark(x1)), MARK(s(0))) MARK(first(s(nil), x1)) -> c5(A__FIRST(s(nil), mark(x1)), MARK(s(nil))) MARK(first(s(s(z0)), x1)) -> c5(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(s(s(z0)))) MARK(first(s(cons(z0, z1)), x1)) -> c5(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(s(cons(z0, z1)))) MARK(first(s(x0), x1)) -> c5(MARK(s(x0))) MARK(first(s(x0), 0)) -> c5(MARK(s(x0))) MARK(first(s(x0), nil)) -> c5(MARK(s(x0))) MARK(first(s(x0), s(z0))) -> c5(MARK(s(x0))) MARK(first(x0, first(x1, first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(first(x1, first(z0, z1)))) MARK(first(x0, first(x1, from(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(first(x1, from(z0)))) MARK(first(x0, first(x1, 0))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(first(x1, 0))) MARK(first(x0, first(x1, nil))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(first(x1, nil))) MARK(first(x0, first(x1, s(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(first(x1, s(z0)))) MARK(first(x0, first(x1, cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(first(x1, cons(z0, z1)))) MARK(first(x0, first(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(first(first(z0, z1), x2))) MARK(first(x0, first(from(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(first(from(z0), x2))) MARK(first(x0, first(0, x2))) -> c6(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(first(0, x2))) MARK(first(x0, first(nil, x2))) -> c6(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(first(nil, x2))) MARK(first(x0, first(s(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(first(s(z0), x2))) MARK(first(x0, first(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(first(cons(z0, z1), x2))) MARK(first(first(z0, z1), first(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(from(z0), first(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(s(z0), first(x1, x2))) -> c6(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(x0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(nil, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(cons(z0, z1), first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(x0, from(x1))) -> c6(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(first(x0, from(first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(from(first(z0, z1)))) MARK(first(x0, from(from(z0)))) -> c6(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(first(x0, from(s(z0)))) -> c6(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(from(s(z0)))) MARK(first(x0, from(cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(first(first(z0, z1), from(x1))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(first(from(z0), from(x1))) -> c6(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(s(z0), from(x1))) -> c6(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(x0, from(x1))) -> c6(MARK(from(x1))) MARK(first(0, from(x1))) -> c6(MARK(from(x1))) MARK(first(nil, from(x1))) -> c6(MARK(from(x1))) MARK(first(cons(z0, z1), from(x1))) -> c6(MARK(from(x1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(cons(first(z0, z1), x2))) MARK(first(x0, cons(from(z0), x2))) -> c6(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(first(x0, cons(s(z0), x2))) -> c6(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(cons(s(z0), x2))) MARK(first(x0, cons(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(first(first(z0, z1), cons(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(from(z0), cons(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(s(z0), cons(x1, x2))) -> c6(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(x0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(nil, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(first(x0, first(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(first(first(x0, from(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, 0), x2)) -> c6(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(x2)) MARK(first(first(x0, nil), x2)) -> c6(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(x2)) MARK(first(first(x0, s(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, cons(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(first(first(first(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(from(z0), x1), x2)) -> c6(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(0, x1), x2)) -> c6(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(nil, x1), x2)) -> c6(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(s(z0), x1), x2)) -> c6(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(cons(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(x0, x1), s(z0))) -> c6(MARK(s(z0))) MARK(first(first(x0, x1), x2)) -> c6(MARK(x2)) MARK(first(from(first(z0, z1)), x1)) -> c6(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(first(from(from(z0)), x1)) -> c6(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(first(from(0), x1)) -> c6(A__FIRST(a__from(0), mark(x1)), MARK(x1)) MARK(first(from(nil), x1)) -> c6(A__FIRST(a__from(nil), mark(x1)), MARK(x1)) MARK(first(from(s(z0)), x1)) -> c6(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(x1)) MARK(first(from(cons(z0, z1)), x1)) -> c6(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(first(from(x0), s(z0))) -> c6(MARK(s(z0))) MARK(first(from(x0), x1)) -> c6(MARK(x1)) MARK(first(s(first(z0, z1)), x1)) -> c6(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(first(s(from(z0)), x1)) -> c6(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(first(s(0), x1)) -> c6(A__FIRST(s(0), mark(x1)), MARK(x1)) MARK(first(s(nil), x1)) -> c6(A__FIRST(s(nil), mark(x1)), MARK(x1)) MARK(first(s(s(z0)), x1)) -> c6(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(x1)) MARK(first(s(cons(z0, z1)), x1)) -> c6(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(first(s(x0), s(z0))) -> c6(MARK(s(z0))) A__FIRST(s(z0), cons(from(y0), z2)) -> c1(MARK(from(y0))) A__FIRST(s(z0), cons(s(y0), z2)) -> c1(MARK(s(y0))) A__FIRST(s(z0), cons(cons(y0, y1), z2)) -> c1(MARK(cons(y0, y1))) A__FIRST(s(z0), cons(first(y0, 0), z2)) -> c1(MARK(first(y0, 0))) A__FIRST(s(z0), cons(first(y0, nil), z2)) -> c1(MARK(first(y0, nil))) A__FIRST(s(z0), cons(first(y0, s(y1)), z2)) -> c1(MARK(first(y0, s(y1)))) A__FIRST(s(z0), cons(first(cons(y0, y1), y2), z2)) -> c1(MARK(first(cons(y0, y1), y2))) A__FIRST(s(z0), cons(first(0, y0), z2)) -> c1(MARK(first(0, y0))) A__FIRST(s(z0), cons(first(nil, y0), z2)) -> c1(MARK(first(nil, y0))) A__FIRST(s(z0), cons(first(y0, first(y1, first(y2, y3))), z2)) -> c1(MARK(first(y0, first(y1, first(y2, y3))))) A__FIRST(s(z0), cons(first(y0, first(y1, from(y2))), z2)) -> c1(MARK(first(y0, first(y1, from(y2))))) A__FIRST(s(z0), cons(first(y0, first(y1, 0)), z2)) -> c1(MARK(first(y0, first(y1, 0)))) A__FIRST(s(z0), cons(first(y0, first(y1, nil)), z2)) -> c1(MARK(first(y0, first(y1, nil)))) A__FIRST(s(z0), cons(first(y0, first(y1, s(y2))), z2)) -> c1(MARK(first(y0, first(y1, s(y2))))) A__FIRST(s(z0), cons(first(y0, first(y1, cons(y2, y3))), z2)) -> c1(MARK(first(y0, first(y1, cons(y2, y3))))) A__FIRST(s(z0), cons(first(y0, first(first(y1, y2), y3)), z2)) -> c1(MARK(first(y0, first(first(y1, y2), y3)))) A__FIRST(s(z0), cons(first(y0, first(from(y1), y2)), z2)) -> c1(MARK(first(y0, first(from(y1), y2)))) A__FIRST(s(z0), cons(first(y0, first(0, y1)), z2)) -> c1(MARK(first(y0, first(0, y1)))) A__FIRST(s(z0), cons(first(y0, first(nil, y1)), z2)) -> c1(MARK(first(y0, first(nil, y1)))) A__FIRST(s(z0), cons(first(y0, first(s(y1), y2)), z2)) -> c1(MARK(first(y0, first(s(y1), y2)))) A__FIRST(s(z0), cons(first(y0, first(cons(y1, y2), y3)), z2)) -> c1(MARK(first(y0, first(cons(y1, y2), y3)))) A__FIRST(s(z0), cons(first(first(y0, y1), first(y2, y3)), z2)) -> c1(MARK(first(first(y0, y1), first(y2, y3)))) A__FIRST(s(z0), cons(first(from(y0), first(y1, y2)), z2)) -> c1(MARK(first(from(y0), first(y1, y2)))) A__FIRST(s(z0), cons(first(s(y0), first(y1, y2)), z2)) -> c1(MARK(first(s(y0), first(y1, y2)))) A__FIRST(s(z0), cons(first(y0, first(y1, y2)), z2)) -> c1(MARK(first(y0, first(y1, y2)))) A__FIRST(s(z0), cons(first(cons(y0, y1), first(y2, y3)), z2)) -> c1(MARK(first(cons(y0, y1), first(y2, y3)))) A__FIRST(s(z0), cons(first(y0, from(y1)), z2)) -> c1(MARK(first(y0, from(y1)))) A__FIRST(s(z0), cons(first(y0, from(first(y1, y2))), z2)) -> c1(MARK(first(y0, from(first(y1, y2))))) A__FIRST(s(z0), cons(first(y0, from(from(y1))), z2)) -> c1(MARK(first(y0, from(from(y1))))) A__FIRST(s(z0), cons(first(y0, from(0)), z2)) -> c1(MARK(first(y0, from(0)))) A__FIRST(s(z0), cons(first(y0, from(nil)), z2)) -> c1(MARK(first(y0, from(nil)))) A__FIRST(s(z0), cons(first(y0, from(s(y1))), z2)) -> c1(MARK(first(y0, from(s(y1))))) A__FIRST(s(z0), cons(first(y0, from(cons(y1, y2))), z2)) -> c1(MARK(first(y0, from(cons(y1, y2))))) A__FIRST(s(z0), cons(first(first(y0, y1), from(y2)), z2)) -> c1(MARK(first(first(y0, y1), from(y2)))) A__FIRST(s(z0), cons(first(from(y0), from(y1)), z2)) -> c1(MARK(first(from(y0), from(y1)))) A__FIRST(s(z0), cons(first(s(y0), from(y1)), z2)) -> c1(MARK(first(s(y0), from(y1)))) A__FIRST(s(z0), cons(first(cons(y0, y1), from(y2)), z2)) -> c1(MARK(first(cons(y0, y1), from(y2)))) A__FIRST(s(z0), cons(first(y0, cons(first(y1, y2), y3)), z2)) -> c1(MARK(first(y0, cons(first(y1, y2), y3)))) A__FIRST(s(z0), cons(first(y0, cons(from(y1), y2)), z2)) -> c1(MARK(first(y0, cons(from(y1), y2)))) A__FIRST(s(z0), cons(first(y0, cons(0, y1)), z2)) -> c1(MARK(first(y0, cons(0, y1)))) A__FIRST(s(z0), cons(first(y0, cons(nil, y1)), z2)) -> c1(MARK(first(y0, cons(nil, y1)))) A__FIRST(s(z0), cons(first(y0, cons(s(y1), y2)), z2)) -> c1(MARK(first(y0, cons(s(y1), y2)))) A__FIRST(s(z0), cons(first(y0, cons(cons(y1, y2), y3)), z2)) -> c1(MARK(first(y0, cons(cons(y1, y2), y3)))) A__FIRST(s(z0), cons(first(first(y0, y1), cons(y2, y3)), z2)) -> c1(MARK(first(first(y0, y1), cons(y2, y3)))) A__FIRST(s(z0), cons(first(from(y0), cons(y1, y2)), z2)) -> c1(MARK(first(from(y0), cons(y1, y2)))) A__FIRST(s(z0), cons(first(s(y0), cons(y1, y2)), z2)) -> c1(MARK(first(s(y0), cons(y1, y2)))) A__FIRST(s(z0), cons(first(cons(y0, y1), cons(y2, y3)), z2)) -> c1(MARK(first(cons(y0, y1), cons(y2, y3)))) A__FIRST(s(z0), cons(first(first(y0, first(y1, y2)), y3), z2)) -> c1(MARK(first(first(y0, first(y1, y2)), y3))) A__FIRST(s(z0), cons(first(first(y0, from(y1)), y2), z2)) -> c1(MARK(first(first(y0, from(y1)), y2))) A__FIRST(s(z0), cons(first(first(y0, 0), y1), z2)) -> c1(MARK(first(first(y0, 0), y1))) A__FIRST(s(z0), cons(first(first(y0, nil), y1), z2)) -> c1(MARK(first(first(y0, nil), y1))) A__FIRST(s(z0), cons(first(first(y0, s(y1)), y2), z2)) -> c1(MARK(first(first(y0, s(y1)), y2))) A__FIRST(s(z0), cons(first(first(y0, cons(y1, y2)), y3), z2)) -> c1(MARK(first(first(y0, cons(y1, y2)), y3))) A__FIRST(s(z0), cons(first(first(first(y0, y1), y2), y3), z2)) -> c1(MARK(first(first(first(y0, y1), y2), y3))) A__FIRST(s(z0), cons(first(first(from(y0), y1), y2), z2)) -> c1(MARK(first(first(from(y0), y1), y2))) A__FIRST(s(z0), cons(first(first(0, y0), y1), z2)) -> c1(MARK(first(first(0, y0), y1))) A__FIRST(s(z0), cons(first(first(nil, y0), y1), z2)) -> c1(MARK(first(first(nil, y0), y1))) A__FIRST(s(z0), cons(first(first(s(y0), y1), y2), z2)) -> c1(MARK(first(first(s(y0), y1), y2))) A__FIRST(s(z0), cons(first(first(cons(y0, y1), y2), y3), z2)) -> c1(MARK(first(first(cons(y0, y1), y2), y3))) A__FIRST(s(z0), cons(first(first(y0, y1), 0), z2)) -> c1(MARK(first(first(y0, y1), 0))) A__FIRST(s(z0), cons(first(first(y0, y1), nil), z2)) -> c1(MARK(first(first(y0, y1), nil))) A__FIRST(s(z0), cons(first(first(y0, y1), s(y2)), z2)) -> c1(MARK(first(first(y0, y1), s(y2)))) A__FIRST(s(z0), cons(first(first(y0, y1), y2), z2)) -> c1(MARK(first(first(y0, y1), y2))) A__FIRST(s(z0), cons(first(from(first(y0, y1)), y2), z2)) -> c1(MARK(first(from(first(y0, y1)), y2))) A__FIRST(s(z0), cons(first(from(from(y0)), y1), z2)) -> c1(MARK(first(from(from(y0)), y1))) A__FIRST(s(z0), cons(first(from(0), y0), z2)) -> c1(MARK(first(from(0), y0))) A__FIRST(s(z0), cons(first(from(nil), y0), z2)) -> c1(MARK(first(from(nil), y0))) A__FIRST(s(z0), cons(first(from(s(y0)), y1), z2)) -> c1(MARK(first(from(s(y0)), y1))) A__FIRST(s(z0), cons(first(from(cons(y0, y1)), y2), z2)) -> c1(MARK(first(from(cons(y0, y1)), y2))) A__FIRST(s(z0), cons(first(from(y0), y1), z2)) -> c1(MARK(first(from(y0), y1))) A__FIRST(s(z0), cons(first(from(y0), 0), z2)) -> c1(MARK(first(from(y0), 0))) A__FIRST(s(z0), cons(first(from(y0), nil), z2)) -> c1(MARK(first(from(y0), nil))) A__FIRST(s(z0), cons(first(from(y0), s(y1)), z2)) -> c1(MARK(first(from(y0), s(y1)))) A__FIRST(s(z0), cons(first(s(first(y0, y1)), y2), z2)) -> c1(MARK(first(s(first(y0, y1)), y2))) A__FIRST(s(z0), cons(first(s(from(y0)), y1), z2)) -> c1(MARK(first(s(from(y0)), y1))) A__FIRST(s(z0), cons(first(s(0), y0), z2)) -> c1(MARK(first(s(0), y0))) A__FIRST(s(z0), cons(first(s(nil), y0), z2)) -> c1(MARK(first(s(nil), y0))) A__FIRST(s(z0), cons(first(s(s(y0)), y1), z2)) -> c1(MARK(first(s(s(y0)), y1))) A__FIRST(s(z0), cons(first(s(cons(y0, y1)), y2), z2)) -> c1(MARK(first(s(cons(y0, y1)), y2))) A__FIRST(s(z0), cons(first(s(y0), y1), z2)) -> c1(MARK(first(s(y0), y1))) A__FIRST(s(z0), cons(first(s(y0), 0), z2)) -> c1(MARK(first(s(y0), 0))) A__FIRST(s(z0), cons(first(s(y0), nil), z2)) -> c1(MARK(first(s(y0), nil))) A__FIRST(s(z0), cons(first(s(y0), s(y1)), z2)) -> c1(MARK(first(s(y0), s(y1)))) A__FIRST(s(z0), cons(first(0, first(y0, y1)), z2)) -> c1(MARK(first(0, first(y0, y1)))) A__FIRST(s(z0), cons(first(nil, first(y0, y1)), z2)) -> c1(MARK(first(nil, first(y0, y1)))) A__FIRST(s(z0), cons(first(0, from(y0)), z2)) -> c1(MARK(first(0, from(y0)))) A__FIRST(s(z0), cons(first(nil, from(y0)), z2)) -> c1(MARK(first(nil, from(y0)))) A__FIRST(s(z0), cons(first(y0, cons(y1, y2)), z2)) -> c1(MARK(first(y0, cons(y1, y2)))) A__FIRST(s(z0), cons(first(0, cons(y0, y1)), z2)) -> c1(MARK(first(0, cons(y0, y1)))) A__FIRST(s(z0), cons(first(nil, cons(y0, y1)), z2)) -> c1(MARK(first(nil, cons(y0, y1)))) MARK(first(x0, cons(0, x2))) -> c5(MARK(x0)) MARK(first(x0, cons(nil, x2))) -> c5(MARK(x0)) MARK(first(x0, cons(0, x2))) -> c6(MARK(cons(0, x2))) MARK(first(x0, cons(nil, x2))) -> c6(MARK(cons(nil, x2))) A__FROM(from(y0)) -> c3(MARK(from(y0))) A__FROM(s(y0)) -> c3(MARK(s(y0))) A__FROM(cons(y0, y1)) -> c3(MARK(cons(y0, y1))) A__FROM(first(y0, 0)) -> c3(MARK(first(y0, 0))) A__FROM(first(y0, nil)) -> c3(MARK(first(y0, nil))) A__FROM(first(y0, s(y1))) -> c3(MARK(first(y0, s(y1)))) A__FROM(first(cons(y0, y1), y2)) -> c3(MARK(first(cons(y0, y1), y2))) A__FROM(first(0, y0)) -> c3(MARK(first(0, y0))) A__FROM(first(nil, y0)) -> c3(MARK(first(nil, y0))) A__FROM(first(y0, first(y1, first(y2, y3)))) -> c3(MARK(first(y0, first(y1, first(y2, y3))))) A__FROM(first(y0, first(y1, from(y2)))) -> c3(MARK(first(y0, first(y1, from(y2))))) A__FROM(first(y0, first(y1, 0))) -> c3(MARK(first(y0, first(y1, 0)))) A__FROM(first(y0, first(y1, nil))) -> c3(MARK(first(y0, first(y1, nil)))) A__FROM(first(y0, first(y1, s(y2)))) -> c3(MARK(first(y0, first(y1, s(y2))))) A__FROM(first(y0, first(y1, cons(y2, y3)))) -> c3(MARK(first(y0, first(y1, cons(y2, y3))))) A__FROM(first(y0, first(first(y1, y2), y3))) -> c3(MARK(first(y0, first(first(y1, y2), y3)))) A__FROM(first(y0, first(from(y1), y2))) -> c3(MARK(first(y0, first(from(y1), y2)))) A__FROM(first(y0, first(0, y1))) -> c3(MARK(first(y0, first(0, y1)))) A__FROM(first(y0, first(nil, y1))) -> c3(MARK(first(y0, first(nil, y1)))) A__FROM(first(y0, first(s(y1), y2))) -> c3(MARK(first(y0, first(s(y1), y2)))) A__FROM(first(y0, first(cons(y1, y2), y3))) -> c3(MARK(first(y0, first(cons(y1, y2), y3)))) A__FROM(first(first(y0, y1), first(y2, y3))) -> c3(MARK(first(first(y0, y1), first(y2, y3)))) A__FROM(first(from(y0), first(y1, y2))) -> c3(MARK(first(from(y0), first(y1, y2)))) A__FROM(first(s(y0), first(y1, y2))) -> c3(MARK(first(s(y0), first(y1, y2)))) A__FROM(first(y0, first(y1, y2))) -> c3(MARK(first(y0, first(y1, y2)))) A__FROM(first(cons(y0, y1), first(y2, y3))) -> c3(MARK(first(cons(y0, y1), first(y2, y3)))) A__FROM(first(y0, from(y1))) -> c3(MARK(first(y0, from(y1)))) A__FROM(first(y0, from(first(y1, y2)))) -> c3(MARK(first(y0, from(first(y1, y2))))) A__FROM(first(y0, from(from(y1)))) -> c3(MARK(first(y0, from(from(y1))))) A__FROM(first(y0, from(0))) -> c3(MARK(first(y0, from(0)))) A__FROM(first(y0, from(nil))) -> c3(MARK(first(y0, from(nil)))) A__FROM(first(y0, from(s(y1)))) -> c3(MARK(first(y0, from(s(y1))))) A__FROM(first(y0, from(cons(y1, y2)))) -> c3(MARK(first(y0, from(cons(y1, y2))))) A__FROM(first(first(y0, y1), from(y2))) -> c3(MARK(first(first(y0, y1), from(y2)))) A__FROM(first(from(y0), from(y1))) -> c3(MARK(first(from(y0), from(y1)))) A__FROM(first(s(y0), from(y1))) -> c3(MARK(first(s(y0), from(y1)))) A__FROM(first(cons(y0, y1), from(y2))) -> c3(MARK(first(cons(y0, y1), from(y2)))) A__FROM(first(y0, cons(first(y1, y2), y3))) -> c3(MARK(first(y0, cons(first(y1, y2), y3)))) A__FROM(first(y0, cons(from(y1), y2))) -> c3(MARK(first(y0, cons(from(y1), y2)))) A__FROM(first(y0, cons(s(y1), y2))) -> c3(MARK(first(y0, cons(s(y1), y2)))) A__FROM(first(y0, cons(cons(y1, y2), y3))) -> c3(MARK(first(y0, cons(cons(y1, y2), y3)))) A__FROM(first(first(y0, y1), cons(y2, y3))) -> c3(MARK(first(first(y0, y1), cons(y2, y3)))) A__FROM(first(from(y0), cons(y1, y2))) -> c3(MARK(first(from(y0), cons(y1, y2)))) A__FROM(first(s(y0), cons(y1, y2))) -> c3(MARK(first(s(y0), cons(y1, y2)))) A__FROM(first(cons(y0, y1), cons(y2, y3))) -> c3(MARK(first(cons(y0, y1), cons(y2, y3)))) A__FROM(first(first(y0, first(y1, y2)), y3)) -> c3(MARK(first(first(y0, first(y1, y2)), y3))) A__FROM(first(first(y0, from(y1)), y2)) -> c3(MARK(first(first(y0, from(y1)), y2))) A__FROM(first(first(y0, 0), y1)) -> c3(MARK(first(first(y0, 0), y1))) A__FROM(first(first(y0, nil), y1)) -> c3(MARK(first(first(y0, nil), y1))) A__FROM(first(first(y0, s(y1)), y2)) -> c3(MARK(first(first(y0, s(y1)), y2))) A__FROM(first(first(y0, cons(y1, y2)), y3)) -> c3(MARK(first(first(y0, cons(y1, y2)), y3))) A__FROM(first(first(first(y0, y1), y2), y3)) -> c3(MARK(first(first(first(y0, y1), y2), y3))) A__FROM(first(first(from(y0), y1), y2)) -> c3(MARK(first(first(from(y0), y1), y2))) A__FROM(first(first(0, y0), y1)) -> c3(MARK(first(first(0, y0), y1))) A__FROM(first(first(nil, y0), y1)) -> c3(MARK(first(first(nil, y0), y1))) A__FROM(first(first(s(y0), y1), y2)) -> c3(MARK(first(first(s(y0), y1), y2))) A__FROM(first(first(cons(y0, y1), y2), y3)) -> c3(MARK(first(first(cons(y0, y1), y2), y3))) A__FROM(first(first(y0, y1), 0)) -> c3(MARK(first(first(y0, y1), 0))) A__FROM(first(first(y0, y1), nil)) -> c3(MARK(first(first(y0, y1), nil))) A__FROM(first(first(y0, y1), s(y2))) -> c3(MARK(first(first(y0, y1), s(y2)))) A__FROM(first(first(y0, y1), y2)) -> c3(MARK(first(first(y0, y1), y2))) A__FROM(first(from(first(y0, y1)), y2)) -> c3(MARK(first(from(first(y0, y1)), y2))) A__FROM(first(from(from(y0)), y1)) -> c3(MARK(first(from(from(y0)), y1))) A__FROM(first(from(0), y0)) -> c3(MARK(first(from(0), y0))) A__FROM(first(from(nil), y0)) -> c3(MARK(first(from(nil), y0))) A__FROM(first(from(s(y0)), y1)) -> c3(MARK(first(from(s(y0)), y1))) A__FROM(first(from(cons(y0, y1)), y2)) -> c3(MARK(first(from(cons(y0, y1)), y2))) A__FROM(first(from(y0), y1)) -> c3(MARK(first(from(y0), y1))) A__FROM(first(from(y0), 0)) -> c3(MARK(first(from(y0), 0))) A__FROM(first(from(y0), nil)) -> c3(MARK(first(from(y0), nil))) A__FROM(first(from(y0), s(y1))) -> c3(MARK(first(from(y0), s(y1)))) A__FROM(first(s(first(y0, y1)), y2)) -> c3(MARK(first(s(first(y0, y1)), y2))) A__FROM(first(s(from(y0)), y1)) -> c3(MARK(first(s(from(y0)), y1))) A__FROM(first(s(0), y0)) -> c3(MARK(first(s(0), y0))) A__FROM(first(s(nil), y0)) -> c3(MARK(first(s(nil), y0))) A__FROM(first(s(s(y0)), y1)) -> c3(MARK(first(s(s(y0)), y1))) A__FROM(first(s(cons(y0, y1)), y2)) -> c3(MARK(first(s(cons(y0, y1)), y2))) A__FROM(first(s(y0), y1)) -> c3(MARK(first(s(y0), y1))) A__FROM(first(s(y0), 0)) -> c3(MARK(first(s(y0), 0))) A__FROM(first(s(y0), nil)) -> c3(MARK(first(s(y0), nil))) A__FROM(first(s(y0), s(y1))) -> c3(MARK(first(s(y0), s(y1)))) A__FROM(first(0, first(y0, y1))) -> c3(MARK(first(0, first(y0, y1)))) A__FROM(first(nil, first(y0, y1))) -> c3(MARK(first(nil, first(y0, y1)))) A__FROM(first(0, from(y0))) -> c3(MARK(first(0, from(y0)))) A__FROM(first(nil, from(y0))) -> c3(MARK(first(nil, from(y0)))) A__FROM(first(y0, cons(y1, y2))) -> c3(MARK(first(y0, cons(y1, y2)))) A__FROM(first(0, cons(y0, y1))) -> c3(MARK(first(0, cons(y0, y1)))) A__FROM(first(nil, cons(y0, y1))) -> c3(MARK(first(nil, cons(y0, y1)))) A__FROM(first(y0, cons(0, y1))) -> c3(MARK(first(y0, cons(0, y1)))) A__FROM(first(y0, cons(nil, y1))) -> c3(MARK(first(y0, cons(nil, y1)))) MARK(from(s(z0))) -> c7(A__FROM(s(mark(z0))), MARK(s(z0))) MARK(from(cons(z0, z1))) -> c7(A__FROM(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(from(0), x1)) -> c5(A__FIRST(a__from(0), mark(x1))) MARK(first(from(nil), x1)) -> c5(A__FIRST(a__from(nil), mark(x1))) MARK(first(x0, from(0))) -> c6(A__FIRST(mark(x0), a__from(0))) MARK(first(x0, from(nil))) -> c6(A__FIRST(mark(x0), a__from(nil))) MARK(from(first(x0, x1))) -> c7(A__FROM(first(mark(x0), mark(x1))), MARK(first(x0, x1))) MARK(from(first(x0, first(z0, z1)))) -> c7(A__FROM(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) MARK(from(first(x0, from(z0)))) -> c7(A__FROM(a__first(mark(x0), a__from(mark(z0)))), MARK(first(x0, from(z0)))) MARK(from(first(x0, 0))) -> c7(A__FROM(a__first(mark(x0), 0)), MARK(first(x0, 0))) MARK(from(first(x0, nil))) -> c7(A__FROM(a__first(mark(x0), nil)), MARK(first(x0, nil))) MARK(from(first(x0, s(z0)))) -> c7(A__FROM(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) MARK(from(first(x0, cons(z0, z1)))) -> c7(A__FROM(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) MARK(from(first(first(z0, z1), x1))) -> c7(A__FROM(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) MARK(from(first(from(z0), x1))) -> c7(A__FROM(a__first(a__from(mark(z0)), mark(x1))), MARK(first(from(z0), x1))) MARK(from(first(0, x1))) -> c7(A__FROM(a__first(0, mark(x1))), MARK(first(0, x1))) MARK(from(first(nil, x1))) -> c7(A__FROM(a__first(nil, mark(x1))), MARK(first(nil, x1))) MARK(from(first(s(z0), x1))) -> c7(A__FROM(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) MARK(from(first(cons(z0, z1), x1))) -> c7(A__FROM(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) MARK(from(from(x0))) -> c7(A__FROM(cons(mark(mark(x0)), from(s(mark(x0))))), MARK(from(x0))) MARK(from(from(x0))) -> c7(A__FROM(from(mark(x0))), MARK(from(x0))) MARK(from(from(first(z0, z1)))) -> c7(A__FROM(a__from(a__first(mark(z0), mark(z1)))), MARK(from(first(z0, z1)))) MARK(from(from(from(z0)))) -> c7(A__FROM(a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(from(from(s(z0)))) -> c7(A__FROM(a__from(s(mark(z0)))), MARK(from(s(z0)))) MARK(from(from(cons(z0, z1)))) -> c7(A__FROM(a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(from(from(0))) -> c7(A__FROM(a__from(0))) MARK(from(from(nil))) -> c7(A__FROM(a__from(nil))) K tuples:none Defined Rule Symbols: a__first_2, a__from_1, mark_1 Defined Pair Symbols: MARK_1, A__FIRST_2, A__FROM_1 Compound Symbols: c10_1, c11_1, c5_1, c6_1, c5_2, c6_2, c1_1, c3_1, c7_2, c7_1 ---------------------------------------- (153) CdtForwardInstantiationProof (BOTH BOUNDS(ID, ID)) Use forward instantiation to replace MARK(s(z0)) -> c10(MARK(z0)) by MARK(s(s(y0))) -> c10(MARK(s(y0))) MARK(s(cons(y0, y1))) -> c10(MARK(cons(y0, y1))) MARK(s(first(y0, 0))) -> c10(MARK(first(y0, 0))) MARK(s(first(y0, nil))) -> c10(MARK(first(y0, nil))) MARK(s(first(y0, s(y1)))) -> c10(MARK(first(y0, s(y1)))) MARK(s(first(cons(y0, y1), y2))) -> c10(MARK(first(cons(y0, y1), y2))) MARK(s(first(0, y0))) -> c10(MARK(first(0, y0))) MARK(s(first(nil, y0))) -> c10(MARK(first(nil, y0))) MARK(s(first(y0, first(y1, first(y2, y3))))) -> c10(MARK(first(y0, first(y1, first(y2, y3))))) MARK(s(first(y0, first(y1, from(y2))))) -> c10(MARK(first(y0, first(y1, from(y2))))) MARK(s(first(y0, first(y1, 0)))) -> c10(MARK(first(y0, first(y1, 0)))) MARK(s(first(y0, first(y1, nil)))) -> c10(MARK(first(y0, first(y1, nil)))) MARK(s(first(y0, first(y1, s(y2))))) -> c10(MARK(first(y0, first(y1, s(y2))))) MARK(s(first(y0, first(y1, cons(y2, y3))))) -> c10(MARK(first(y0, first(y1, cons(y2, y3))))) MARK(s(first(y0, first(first(y1, y2), y3)))) -> c10(MARK(first(y0, first(first(y1, y2), y3)))) MARK(s(first(y0, first(from(y1), y2)))) -> c10(MARK(first(y0, first(from(y1), y2)))) MARK(s(first(y0, first(0, y1)))) -> c10(MARK(first(y0, first(0, y1)))) MARK(s(first(y0, first(nil, y1)))) -> c10(MARK(first(y0, first(nil, y1)))) MARK(s(first(y0, first(s(y1), y2)))) -> c10(MARK(first(y0, first(s(y1), y2)))) MARK(s(first(y0, first(cons(y1, y2), y3)))) -> c10(MARK(first(y0, first(cons(y1, y2), y3)))) MARK(s(first(first(y0, y1), first(y2, y3)))) -> c10(MARK(first(first(y0, y1), first(y2, y3)))) MARK(s(first(from(y0), first(y1, y2)))) -> c10(MARK(first(from(y0), first(y1, y2)))) MARK(s(first(s(y0), first(y1, y2)))) -> c10(MARK(first(s(y0), first(y1, y2)))) MARK(s(first(y0, first(y1, y2)))) -> c10(MARK(first(y0, first(y1, y2)))) MARK(s(first(cons(y0, y1), first(y2, y3)))) -> c10(MARK(first(cons(y0, y1), first(y2, y3)))) MARK(s(first(y0, from(y1)))) -> c10(MARK(first(y0, from(y1)))) MARK(s(first(y0, from(first(y1, y2))))) -> c10(MARK(first(y0, from(first(y1, y2))))) MARK(s(first(y0, from(from(y1))))) -> c10(MARK(first(y0, from(from(y1))))) MARK(s(first(y0, from(0)))) -> c10(MARK(first(y0, from(0)))) MARK(s(first(y0, from(nil)))) -> c10(MARK(first(y0, from(nil)))) MARK(s(first(y0, from(s(y1))))) -> c10(MARK(first(y0, from(s(y1))))) MARK(s(first(y0, from(cons(y1, y2))))) -> c10(MARK(first(y0, from(cons(y1, y2))))) MARK(s(first(first(y0, y1), from(y2)))) -> c10(MARK(first(first(y0, y1), from(y2)))) MARK(s(first(from(y0), from(y1)))) -> c10(MARK(first(from(y0), from(y1)))) MARK(s(first(s(y0), from(y1)))) -> c10(MARK(first(s(y0), from(y1)))) MARK(s(first(cons(y0, y1), from(y2)))) -> c10(MARK(first(cons(y0, y1), from(y2)))) MARK(s(first(y0, cons(first(y1, y2), y3)))) -> c10(MARK(first(y0, cons(first(y1, y2), y3)))) MARK(s(first(y0, cons(from(y1), y2)))) -> c10(MARK(first(y0, cons(from(y1), y2)))) MARK(s(first(y0, cons(s(y1), y2)))) -> c10(MARK(first(y0, cons(s(y1), y2)))) MARK(s(first(y0, cons(cons(y1, y2), y3)))) -> c10(MARK(first(y0, cons(cons(y1, y2), y3)))) MARK(s(first(first(y0, y1), cons(y2, y3)))) -> c10(MARK(first(first(y0, y1), cons(y2, y3)))) MARK(s(first(from(y0), cons(y1, y2)))) -> c10(MARK(first(from(y0), cons(y1, y2)))) MARK(s(first(s(y0), cons(y1, y2)))) -> c10(MARK(first(s(y0), cons(y1, y2)))) MARK(s(first(cons(y0, y1), cons(y2, y3)))) -> c10(MARK(first(cons(y0, y1), cons(y2, y3)))) MARK(s(first(first(y0, first(y1, y2)), y3))) -> c10(MARK(first(first(y0, first(y1, y2)), y3))) MARK(s(first(first(y0, from(y1)), y2))) -> c10(MARK(first(first(y0, from(y1)), y2))) MARK(s(first(first(y0, 0), y1))) -> c10(MARK(first(first(y0, 0), y1))) MARK(s(first(first(y0, nil), y1))) -> c10(MARK(first(first(y0, nil), y1))) MARK(s(first(first(y0, s(y1)), y2))) -> c10(MARK(first(first(y0, s(y1)), y2))) MARK(s(first(first(y0, cons(y1, y2)), y3))) -> c10(MARK(first(first(y0, cons(y1, y2)), y3))) MARK(s(first(first(first(y0, y1), y2), y3))) -> c10(MARK(first(first(first(y0, y1), y2), y3))) MARK(s(first(first(from(y0), y1), y2))) -> c10(MARK(first(first(from(y0), y1), y2))) MARK(s(first(first(0, y0), y1))) -> c10(MARK(first(first(0, y0), y1))) MARK(s(first(first(nil, y0), y1))) -> c10(MARK(first(first(nil, y0), y1))) MARK(s(first(first(s(y0), y1), y2))) -> c10(MARK(first(first(s(y0), y1), y2))) MARK(s(first(first(cons(y0, y1), y2), y3))) -> c10(MARK(first(first(cons(y0, y1), y2), y3))) MARK(s(first(first(y0, y1), 0))) -> c10(MARK(first(first(y0, y1), 0))) MARK(s(first(first(y0, y1), nil))) -> c10(MARK(first(first(y0, y1), nil))) MARK(s(first(first(y0, y1), s(y2)))) -> c10(MARK(first(first(y0, y1), s(y2)))) MARK(s(first(first(y0, y1), y2))) -> c10(MARK(first(first(y0, y1), y2))) MARK(s(first(from(first(y0, y1)), y2))) -> c10(MARK(first(from(first(y0, y1)), y2))) MARK(s(first(from(from(y0)), y1))) -> c10(MARK(first(from(from(y0)), y1))) MARK(s(first(from(s(y0)), y1))) -> c10(MARK(first(from(s(y0)), y1))) MARK(s(first(from(cons(y0, y1)), y2))) -> c10(MARK(first(from(cons(y0, y1)), y2))) MARK(s(first(from(y0), y1))) -> c10(MARK(first(from(y0), y1))) MARK(s(first(from(y0), 0))) -> c10(MARK(first(from(y0), 0))) MARK(s(first(from(y0), nil))) -> c10(MARK(first(from(y0), nil))) MARK(s(first(from(y0), s(y1)))) -> c10(MARK(first(from(y0), s(y1)))) MARK(s(first(s(first(y0, y1)), y2))) -> c10(MARK(first(s(first(y0, y1)), y2))) MARK(s(first(s(from(y0)), y1))) -> c10(MARK(first(s(from(y0)), y1))) MARK(s(first(s(0), y0))) -> c10(MARK(first(s(0), y0))) MARK(s(first(s(nil), y0))) -> c10(MARK(first(s(nil), y0))) MARK(s(first(s(s(y0)), y1))) -> c10(MARK(first(s(s(y0)), y1))) MARK(s(first(s(cons(y0, y1)), y2))) -> c10(MARK(first(s(cons(y0, y1)), y2))) MARK(s(first(s(y0), y1))) -> c10(MARK(first(s(y0), y1))) MARK(s(first(s(y0), 0))) -> c10(MARK(first(s(y0), 0))) MARK(s(first(s(y0), nil))) -> c10(MARK(first(s(y0), nil))) MARK(s(first(s(y0), s(y1)))) -> c10(MARK(first(s(y0), s(y1)))) MARK(s(first(0, first(y0, y1)))) -> c10(MARK(first(0, first(y0, y1)))) MARK(s(first(nil, first(y0, y1)))) -> c10(MARK(first(nil, first(y0, y1)))) MARK(s(first(0, from(y0)))) -> c10(MARK(first(0, from(y0)))) MARK(s(first(nil, from(y0)))) -> c10(MARK(first(nil, from(y0)))) MARK(s(first(y0, cons(y1, y2)))) -> c10(MARK(first(y0, cons(y1, y2)))) MARK(s(first(0, cons(y0, y1)))) -> c10(MARK(first(0, cons(y0, y1)))) MARK(s(first(nil, cons(y0, y1)))) -> c10(MARK(first(nil, cons(y0, y1)))) MARK(s(first(from(0), y0))) -> c10(MARK(first(from(0), y0))) MARK(s(first(from(nil), y0))) -> c10(MARK(first(from(nil), y0))) MARK(s(first(y0, cons(0, y1)))) -> c10(MARK(first(y0, cons(0, y1)))) MARK(s(first(y0, cons(nil, y1)))) -> c10(MARK(first(y0, cons(nil, y1)))) MARK(s(from(s(y0)))) -> c10(MARK(from(s(y0)))) MARK(s(from(cons(y0, y1)))) -> c10(MARK(from(cons(y0, y1)))) MARK(s(from(first(y0, y1)))) -> c10(MARK(from(first(y0, y1)))) MARK(s(from(first(y0, first(y1, y2))))) -> c10(MARK(from(first(y0, first(y1, y2))))) MARK(s(from(first(y0, from(y1))))) -> c10(MARK(from(first(y0, from(y1))))) MARK(s(from(first(y0, 0)))) -> c10(MARK(from(first(y0, 0)))) MARK(s(from(first(y0, nil)))) -> c10(MARK(from(first(y0, nil)))) MARK(s(from(first(y0, s(y1))))) -> c10(MARK(from(first(y0, s(y1))))) MARK(s(from(first(y0, cons(y1, y2))))) -> c10(MARK(from(first(y0, cons(y1, y2))))) MARK(s(from(first(first(y0, y1), y2)))) -> c10(MARK(from(first(first(y0, y1), y2)))) MARK(s(from(first(from(y0), y1)))) -> c10(MARK(from(first(from(y0), y1)))) MARK(s(from(first(0, y0)))) -> c10(MARK(from(first(0, y0)))) MARK(s(from(first(nil, y0)))) -> c10(MARK(from(first(nil, y0)))) MARK(s(from(first(s(y0), y1)))) -> c10(MARK(from(first(s(y0), y1)))) MARK(s(from(first(cons(y0, y1), y2)))) -> c10(MARK(from(first(cons(y0, y1), y2)))) MARK(s(from(from(y0)))) -> c10(MARK(from(from(y0)))) MARK(s(from(from(first(y0, y1))))) -> c10(MARK(from(from(first(y0, y1))))) MARK(s(from(from(from(y0))))) -> c10(MARK(from(from(from(y0))))) MARK(s(from(from(s(y0))))) -> c10(MARK(from(from(s(y0))))) MARK(s(from(from(cons(y0, y1))))) -> c10(MARK(from(from(cons(y0, y1))))) MARK(s(from(from(0)))) -> c10(MARK(from(from(0)))) MARK(s(from(from(nil)))) -> c10(MARK(from(from(nil)))) ---------------------------------------- (154) Obligation: Complexity Dependency Tuples Problem Rules: a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(0) -> 0 mark(nil) -> nil mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(x0, from(x1))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), from(x1))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(first(x0, cons(from(z0), x2))) -> c5(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(s(z0), x2))) -> c5(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(first(first(z0, z1), cons(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(first(z0, z1))) MARK(first(from(z0), cons(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(first(s(z0), cons(x1, x2))) -> c5(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(s(z0))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(first(x0, first(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(first(x0, first(z0, z1)))) MARK(first(first(x0, from(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(first(x0, from(z0)))) MARK(first(first(x0, 0), x2)) -> c5(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(first(x0, 0))) MARK(first(first(x0, nil), x2)) -> c5(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(first(x0, nil))) MARK(first(first(x0, s(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(first(x0, s(z0)))) MARK(first(first(x0, cons(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(first(x0, cons(z0, z1)))) MARK(first(first(first(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(first(first(z0, z1), x1))) MARK(first(first(from(z0), x1), x2)) -> c5(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(first(from(z0), x1))) MARK(first(first(0, x1), x2)) -> c5(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(first(0, x1))) MARK(first(first(nil, x1), x2)) -> c5(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(first(nil, x1))) MARK(first(first(s(z0), x1), x2)) -> c5(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(first(s(z0), x1))) MARK(first(first(cons(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(first(cons(z0, z1), x1))) MARK(first(first(x0, x1), 0)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), nil)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), s(z0))) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), x2)) -> c5(MARK(first(x0, x1))) MARK(first(from(first(z0, z1)), x1)) -> c5(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(from(first(z0, z1)))) MARK(first(from(from(z0)), x1)) -> c5(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(first(from(s(z0)), x1)) -> c5(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(from(s(z0)))) MARK(first(from(cons(z0, z1)), x1)) -> c5(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(first(from(x0), x1)) -> c5(MARK(from(x0))) MARK(first(from(x0), 0)) -> c5(MARK(from(x0))) MARK(first(from(x0), nil)) -> c5(MARK(from(x0))) MARK(first(from(x0), s(z0))) -> c5(MARK(from(x0))) MARK(first(s(first(z0, z1)), x1)) -> c5(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(s(first(z0, z1)))) MARK(first(s(from(z0)), x1)) -> c5(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(s(from(z0)))) MARK(first(s(0), x1)) -> c5(A__FIRST(s(0), mark(x1)), MARK(s(0))) MARK(first(s(nil), x1)) -> c5(A__FIRST(s(nil), mark(x1)), MARK(s(nil))) MARK(first(s(s(z0)), x1)) -> c5(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(s(s(z0)))) MARK(first(s(cons(z0, z1)), x1)) -> c5(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(s(cons(z0, z1)))) MARK(first(s(x0), x1)) -> c5(MARK(s(x0))) MARK(first(s(x0), 0)) -> c5(MARK(s(x0))) MARK(first(s(x0), nil)) -> c5(MARK(s(x0))) MARK(first(s(x0), s(z0))) -> c5(MARK(s(x0))) MARK(first(x0, first(x1, first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(first(x1, first(z0, z1)))) MARK(first(x0, first(x1, from(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(first(x1, from(z0)))) MARK(first(x0, first(x1, 0))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(first(x1, 0))) MARK(first(x0, first(x1, nil))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(first(x1, nil))) MARK(first(x0, first(x1, s(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(first(x1, s(z0)))) MARK(first(x0, first(x1, cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(first(x1, cons(z0, z1)))) MARK(first(x0, first(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(first(first(z0, z1), x2))) MARK(first(x0, first(from(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(first(from(z0), x2))) MARK(first(x0, first(0, x2))) -> c6(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(first(0, x2))) MARK(first(x0, first(nil, x2))) -> c6(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(first(nil, x2))) MARK(first(x0, first(s(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(first(s(z0), x2))) MARK(first(x0, first(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(first(cons(z0, z1), x2))) MARK(first(first(z0, z1), first(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(from(z0), first(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(s(z0), first(x1, x2))) -> c6(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(x0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(nil, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(cons(z0, z1), first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(x0, from(x1))) -> c6(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(first(x0, from(first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(from(first(z0, z1)))) MARK(first(x0, from(from(z0)))) -> c6(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(first(x0, from(s(z0)))) -> c6(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(from(s(z0)))) MARK(first(x0, from(cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(first(first(z0, z1), from(x1))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(first(from(z0), from(x1))) -> c6(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(s(z0), from(x1))) -> c6(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(x0, from(x1))) -> c6(MARK(from(x1))) MARK(first(0, from(x1))) -> c6(MARK(from(x1))) MARK(first(nil, from(x1))) -> c6(MARK(from(x1))) MARK(first(cons(z0, z1), from(x1))) -> c6(MARK(from(x1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(cons(first(z0, z1), x2))) MARK(first(x0, cons(from(z0), x2))) -> c6(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(first(x0, cons(s(z0), x2))) -> c6(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(cons(s(z0), x2))) MARK(first(x0, cons(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(first(first(z0, z1), cons(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(from(z0), cons(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(s(z0), cons(x1, x2))) -> c6(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(x0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(nil, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(first(x0, first(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(first(first(x0, from(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, 0), x2)) -> c6(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(x2)) MARK(first(first(x0, nil), x2)) -> c6(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(x2)) MARK(first(first(x0, s(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, cons(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(first(first(first(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(from(z0), x1), x2)) -> c6(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(0, x1), x2)) -> c6(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(nil, x1), x2)) -> c6(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(s(z0), x1), x2)) -> c6(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(cons(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(x0, x1), s(z0))) -> c6(MARK(s(z0))) MARK(first(first(x0, x1), x2)) -> c6(MARK(x2)) MARK(first(from(first(z0, z1)), x1)) -> c6(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(first(from(from(z0)), x1)) -> c6(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(first(from(0), x1)) -> c6(A__FIRST(a__from(0), mark(x1)), MARK(x1)) MARK(first(from(nil), x1)) -> c6(A__FIRST(a__from(nil), mark(x1)), MARK(x1)) MARK(first(from(s(z0)), x1)) -> c6(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(x1)) MARK(first(from(cons(z0, z1)), x1)) -> c6(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(first(from(x0), s(z0))) -> c6(MARK(s(z0))) MARK(first(from(x0), x1)) -> c6(MARK(x1)) MARK(first(s(first(z0, z1)), x1)) -> c6(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(first(s(from(z0)), x1)) -> c6(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(first(s(0), x1)) -> c6(A__FIRST(s(0), mark(x1)), MARK(x1)) MARK(first(s(nil), x1)) -> c6(A__FIRST(s(nil), mark(x1)), MARK(x1)) MARK(first(s(s(z0)), x1)) -> c6(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(x1)) MARK(first(s(cons(z0, z1)), x1)) -> c6(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(first(s(x0), s(z0))) -> c6(MARK(s(z0))) A__FIRST(s(z0), cons(from(y0), z2)) -> c1(MARK(from(y0))) A__FIRST(s(z0), cons(s(y0), z2)) -> c1(MARK(s(y0))) A__FIRST(s(z0), cons(cons(y0, y1), z2)) -> c1(MARK(cons(y0, y1))) A__FIRST(s(z0), cons(first(y0, 0), z2)) -> c1(MARK(first(y0, 0))) A__FIRST(s(z0), cons(first(y0, nil), z2)) -> c1(MARK(first(y0, nil))) A__FIRST(s(z0), cons(first(y0, s(y1)), z2)) -> c1(MARK(first(y0, s(y1)))) A__FIRST(s(z0), cons(first(cons(y0, y1), y2), z2)) -> c1(MARK(first(cons(y0, y1), y2))) A__FIRST(s(z0), cons(first(0, y0), z2)) -> c1(MARK(first(0, y0))) A__FIRST(s(z0), cons(first(nil, y0), z2)) -> c1(MARK(first(nil, y0))) A__FIRST(s(z0), cons(first(y0, first(y1, first(y2, y3))), z2)) -> c1(MARK(first(y0, first(y1, first(y2, y3))))) A__FIRST(s(z0), cons(first(y0, first(y1, from(y2))), z2)) -> c1(MARK(first(y0, first(y1, from(y2))))) A__FIRST(s(z0), cons(first(y0, first(y1, 0)), z2)) -> c1(MARK(first(y0, first(y1, 0)))) A__FIRST(s(z0), cons(first(y0, first(y1, nil)), z2)) -> c1(MARK(first(y0, first(y1, nil)))) A__FIRST(s(z0), cons(first(y0, first(y1, s(y2))), z2)) -> c1(MARK(first(y0, first(y1, s(y2))))) A__FIRST(s(z0), cons(first(y0, first(y1, cons(y2, y3))), z2)) -> c1(MARK(first(y0, first(y1, cons(y2, y3))))) A__FIRST(s(z0), cons(first(y0, first(first(y1, y2), y3)), z2)) -> c1(MARK(first(y0, first(first(y1, y2), y3)))) A__FIRST(s(z0), cons(first(y0, first(from(y1), y2)), z2)) -> c1(MARK(first(y0, first(from(y1), y2)))) A__FIRST(s(z0), cons(first(y0, first(0, y1)), z2)) -> c1(MARK(first(y0, first(0, y1)))) A__FIRST(s(z0), cons(first(y0, first(nil, y1)), z2)) -> c1(MARK(first(y0, first(nil, y1)))) A__FIRST(s(z0), cons(first(y0, first(s(y1), y2)), z2)) -> c1(MARK(first(y0, first(s(y1), y2)))) A__FIRST(s(z0), cons(first(y0, first(cons(y1, y2), y3)), z2)) -> c1(MARK(first(y0, first(cons(y1, y2), y3)))) A__FIRST(s(z0), cons(first(first(y0, y1), first(y2, y3)), z2)) -> c1(MARK(first(first(y0, y1), first(y2, y3)))) A__FIRST(s(z0), cons(first(from(y0), first(y1, y2)), z2)) -> c1(MARK(first(from(y0), first(y1, y2)))) A__FIRST(s(z0), cons(first(s(y0), first(y1, y2)), z2)) -> c1(MARK(first(s(y0), first(y1, y2)))) A__FIRST(s(z0), cons(first(y0, first(y1, y2)), z2)) -> c1(MARK(first(y0, first(y1, y2)))) A__FIRST(s(z0), cons(first(cons(y0, y1), first(y2, y3)), z2)) -> c1(MARK(first(cons(y0, y1), first(y2, y3)))) A__FIRST(s(z0), cons(first(y0, from(y1)), z2)) -> c1(MARK(first(y0, from(y1)))) A__FIRST(s(z0), cons(first(y0, from(first(y1, y2))), z2)) -> c1(MARK(first(y0, from(first(y1, y2))))) A__FIRST(s(z0), cons(first(y0, from(from(y1))), z2)) -> c1(MARK(first(y0, from(from(y1))))) A__FIRST(s(z0), cons(first(y0, from(0)), z2)) -> c1(MARK(first(y0, from(0)))) A__FIRST(s(z0), cons(first(y0, from(nil)), z2)) -> c1(MARK(first(y0, from(nil)))) A__FIRST(s(z0), cons(first(y0, from(s(y1))), z2)) -> c1(MARK(first(y0, from(s(y1))))) A__FIRST(s(z0), cons(first(y0, from(cons(y1, y2))), z2)) -> c1(MARK(first(y0, from(cons(y1, y2))))) A__FIRST(s(z0), cons(first(first(y0, y1), from(y2)), z2)) -> c1(MARK(first(first(y0, y1), from(y2)))) A__FIRST(s(z0), cons(first(from(y0), from(y1)), z2)) -> c1(MARK(first(from(y0), from(y1)))) A__FIRST(s(z0), cons(first(s(y0), from(y1)), z2)) -> c1(MARK(first(s(y0), from(y1)))) A__FIRST(s(z0), cons(first(cons(y0, y1), from(y2)), z2)) -> c1(MARK(first(cons(y0, y1), from(y2)))) A__FIRST(s(z0), cons(first(y0, cons(first(y1, y2), y3)), z2)) -> c1(MARK(first(y0, cons(first(y1, y2), y3)))) A__FIRST(s(z0), cons(first(y0, cons(from(y1), y2)), z2)) -> c1(MARK(first(y0, cons(from(y1), y2)))) A__FIRST(s(z0), cons(first(y0, cons(0, y1)), z2)) -> c1(MARK(first(y0, cons(0, y1)))) A__FIRST(s(z0), cons(first(y0, cons(nil, y1)), z2)) -> c1(MARK(first(y0, cons(nil, y1)))) A__FIRST(s(z0), cons(first(y0, cons(s(y1), y2)), z2)) -> c1(MARK(first(y0, cons(s(y1), y2)))) A__FIRST(s(z0), cons(first(y0, cons(cons(y1, y2), y3)), z2)) -> c1(MARK(first(y0, cons(cons(y1, y2), y3)))) A__FIRST(s(z0), cons(first(first(y0, y1), cons(y2, y3)), z2)) -> c1(MARK(first(first(y0, y1), cons(y2, y3)))) A__FIRST(s(z0), cons(first(from(y0), cons(y1, y2)), z2)) -> c1(MARK(first(from(y0), cons(y1, y2)))) A__FIRST(s(z0), cons(first(s(y0), cons(y1, y2)), z2)) -> c1(MARK(first(s(y0), cons(y1, y2)))) A__FIRST(s(z0), cons(first(cons(y0, y1), cons(y2, y3)), z2)) -> c1(MARK(first(cons(y0, y1), cons(y2, y3)))) A__FIRST(s(z0), cons(first(first(y0, first(y1, y2)), y3), z2)) -> c1(MARK(first(first(y0, first(y1, y2)), y3))) A__FIRST(s(z0), cons(first(first(y0, from(y1)), y2), z2)) -> c1(MARK(first(first(y0, from(y1)), y2))) A__FIRST(s(z0), cons(first(first(y0, 0), y1), z2)) -> c1(MARK(first(first(y0, 0), y1))) A__FIRST(s(z0), cons(first(first(y0, nil), y1), z2)) -> c1(MARK(first(first(y0, nil), y1))) A__FIRST(s(z0), cons(first(first(y0, s(y1)), y2), z2)) -> c1(MARK(first(first(y0, s(y1)), y2))) A__FIRST(s(z0), cons(first(first(y0, cons(y1, y2)), y3), z2)) -> c1(MARK(first(first(y0, cons(y1, y2)), y3))) A__FIRST(s(z0), cons(first(first(first(y0, y1), y2), y3), z2)) -> c1(MARK(first(first(first(y0, y1), y2), y3))) A__FIRST(s(z0), cons(first(first(from(y0), y1), y2), z2)) -> c1(MARK(first(first(from(y0), y1), y2))) A__FIRST(s(z0), cons(first(first(0, y0), y1), z2)) -> c1(MARK(first(first(0, y0), y1))) A__FIRST(s(z0), cons(first(first(nil, y0), y1), z2)) -> c1(MARK(first(first(nil, y0), y1))) A__FIRST(s(z0), cons(first(first(s(y0), y1), y2), z2)) -> c1(MARK(first(first(s(y0), y1), y2))) A__FIRST(s(z0), cons(first(first(cons(y0, y1), y2), y3), z2)) -> c1(MARK(first(first(cons(y0, y1), y2), y3))) A__FIRST(s(z0), cons(first(first(y0, y1), 0), z2)) -> c1(MARK(first(first(y0, y1), 0))) A__FIRST(s(z0), cons(first(first(y0, y1), nil), z2)) -> c1(MARK(first(first(y0, y1), nil))) A__FIRST(s(z0), cons(first(first(y0, y1), s(y2)), z2)) -> c1(MARK(first(first(y0, y1), s(y2)))) A__FIRST(s(z0), cons(first(first(y0, y1), y2), z2)) -> c1(MARK(first(first(y0, y1), y2))) A__FIRST(s(z0), cons(first(from(first(y0, y1)), y2), z2)) -> c1(MARK(first(from(first(y0, y1)), y2))) A__FIRST(s(z0), cons(first(from(from(y0)), y1), z2)) -> c1(MARK(first(from(from(y0)), y1))) A__FIRST(s(z0), cons(first(from(0), y0), z2)) -> c1(MARK(first(from(0), y0))) A__FIRST(s(z0), cons(first(from(nil), y0), z2)) -> c1(MARK(first(from(nil), y0))) A__FIRST(s(z0), cons(first(from(s(y0)), y1), z2)) -> c1(MARK(first(from(s(y0)), y1))) A__FIRST(s(z0), cons(first(from(cons(y0, y1)), y2), z2)) -> c1(MARK(first(from(cons(y0, y1)), y2))) A__FIRST(s(z0), cons(first(from(y0), y1), z2)) -> c1(MARK(first(from(y0), y1))) A__FIRST(s(z0), cons(first(from(y0), 0), z2)) -> c1(MARK(first(from(y0), 0))) A__FIRST(s(z0), cons(first(from(y0), nil), z2)) -> c1(MARK(first(from(y0), nil))) A__FIRST(s(z0), cons(first(from(y0), s(y1)), z2)) -> c1(MARK(first(from(y0), s(y1)))) A__FIRST(s(z0), cons(first(s(first(y0, y1)), y2), z2)) -> c1(MARK(first(s(first(y0, y1)), y2))) A__FIRST(s(z0), cons(first(s(from(y0)), y1), z2)) -> c1(MARK(first(s(from(y0)), y1))) A__FIRST(s(z0), cons(first(s(0), y0), z2)) -> c1(MARK(first(s(0), y0))) A__FIRST(s(z0), cons(first(s(nil), y0), z2)) -> c1(MARK(first(s(nil), y0))) A__FIRST(s(z0), cons(first(s(s(y0)), y1), z2)) -> c1(MARK(first(s(s(y0)), y1))) A__FIRST(s(z0), cons(first(s(cons(y0, y1)), y2), z2)) -> c1(MARK(first(s(cons(y0, y1)), y2))) A__FIRST(s(z0), cons(first(s(y0), y1), z2)) -> c1(MARK(first(s(y0), y1))) A__FIRST(s(z0), cons(first(s(y0), 0), z2)) -> c1(MARK(first(s(y0), 0))) A__FIRST(s(z0), cons(first(s(y0), nil), z2)) -> c1(MARK(first(s(y0), nil))) A__FIRST(s(z0), cons(first(s(y0), s(y1)), z2)) -> c1(MARK(first(s(y0), s(y1)))) A__FIRST(s(z0), cons(first(0, first(y0, y1)), z2)) -> c1(MARK(first(0, first(y0, y1)))) A__FIRST(s(z0), cons(first(nil, first(y0, y1)), z2)) -> c1(MARK(first(nil, first(y0, y1)))) A__FIRST(s(z0), cons(first(0, from(y0)), z2)) -> c1(MARK(first(0, from(y0)))) A__FIRST(s(z0), cons(first(nil, from(y0)), z2)) -> c1(MARK(first(nil, from(y0)))) A__FIRST(s(z0), cons(first(y0, cons(y1, y2)), z2)) -> c1(MARK(first(y0, cons(y1, y2)))) A__FIRST(s(z0), cons(first(0, cons(y0, y1)), z2)) -> c1(MARK(first(0, cons(y0, y1)))) A__FIRST(s(z0), cons(first(nil, cons(y0, y1)), z2)) -> c1(MARK(first(nil, cons(y0, y1)))) MARK(first(x0, cons(0, x2))) -> c5(MARK(x0)) MARK(first(x0, cons(nil, x2))) -> c5(MARK(x0)) MARK(first(x0, cons(0, x2))) -> c6(MARK(cons(0, x2))) MARK(first(x0, cons(nil, x2))) -> c6(MARK(cons(nil, x2))) A__FROM(from(y0)) -> c3(MARK(from(y0))) A__FROM(s(y0)) -> c3(MARK(s(y0))) A__FROM(cons(y0, y1)) -> c3(MARK(cons(y0, y1))) A__FROM(first(y0, 0)) -> c3(MARK(first(y0, 0))) A__FROM(first(y0, nil)) -> c3(MARK(first(y0, nil))) A__FROM(first(y0, s(y1))) -> c3(MARK(first(y0, s(y1)))) A__FROM(first(cons(y0, y1), y2)) -> c3(MARK(first(cons(y0, y1), y2))) A__FROM(first(0, y0)) -> c3(MARK(first(0, y0))) A__FROM(first(nil, y0)) -> c3(MARK(first(nil, y0))) A__FROM(first(y0, first(y1, first(y2, y3)))) -> c3(MARK(first(y0, first(y1, first(y2, y3))))) A__FROM(first(y0, first(y1, from(y2)))) -> c3(MARK(first(y0, first(y1, from(y2))))) A__FROM(first(y0, first(y1, 0))) -> c3(MARK(first(y0, first(y1, 0)))) A__FROM(first(y0, first(y1, nil))) -> c3(MARK(first(y0, first(y1, nil)))) A__FROM(first(y0, first(y1, s(y2)))) -> c3(MARK(first(y0, first(y1, s(y2))))) A__FROM(first(y0, first(y1, cons(y2, y3)))) -> c3(MARK(first(y0, first(y1, cons(y2, y3))))) A__FROM(first(y0, first(first(y1, y2), y3))) -> c3(MARK(first(y0, first(first(y1, y2), y3)))) A__FROM(first(y0, first(from(y1), y2))) -> c3(MARK(first(y0, first(from(y1), y2)))) A__FROM(first(y0, first(0, y1))) -> c3(MARK(first(y0, first(0, y1)))) A__FROM(first(y0, first(nil, y1))) -> c3(MARK(first(y0, first(nil, y1)))) A__FROM(first(y0, first(s(y1), y2))) -> c3(MARK(first(y0, first(s(y1), y2)))) A__FROM(first(y0, first(cons(y1, y2), y3))) -> c3(MARK(first(y0, first(cons(y1, y2), y3)))) A__FROM(first(first(y0, y1), first(y2, y3))) -> c3(MARK(first(first(y0, y1), first(y2, y3)))) A__FROM(first(from(y0), first(y1, y2))) -> c3(MARK(first(from(y0), first(y1, y2)))) A__FROM(first(s(y0), first(y1, y2))) -> c3(MARK(first(s(y0), first(y1, y2)))) A__FROM(first(y0, first(y1, y2))) -> c3(MARK(first(y0, first(y1, y2)))) A__FROM(first(cons(y0, y1), first(y2, y3))) -> c3(MARK(first(cons(y0, y1), first(y2, y3)))) A__FROM(first(y0, from(y1))) -> c3(MARK(first(y0, from(y1)))) A__FROM(first(y0, from(first(y1, y2)))) -> c3(MARK(first(y0, from(first(y1, y2))))) A__FROM(first(y0, from(from(y1)))) -> c3(MARK(first(y0, from(from(y1))))) A__FROM(first(y0, from(0))) -> c3(MARK(first(y0, from(0)))) A__FROM(first(y0, from(nil))) -> c3(MARK(first(y0, from(nil)))) A__FROM(first(y0, from(s(y1)))) -> c3(MARK(first(y0, from(s(y1))))) A__FROM(first(y0, from(cons(y1, y2)))) -> c3(MARK(first(y0, from(cons(y1, y2))))) A__FROM(first(first(y0, y1), from(y2))) -> c3(MARK(first(first(y0, y1), from(y2)))) A__FROM(first(from(y0), from(y1))) -> c3(MARK(first(from(y0), from(y1)))) A__FROM(first(s(y0), from(y1))) -> c3(MARK(first(s(y0), from(y1)))) A__FROM(first(cons(y0, y1), from(y2))) -> c3(MARK(first(cons(y0, y1), from(y2)))) A__FROM(first(y0, cons(first(y1, y2), y3))) -> c3(MARK(first(y0, cons(first(y1, y2), y3)))) A__FROM(first(y0, cons(from(y1), y2))) -> c3(MARK(first(y0, cons(from(y1), y2)))) A__FROM(first(y0, cons(s(y1), y2))) -> c3(MARK(first(y0, cons(s(y1), y2)))) A__FROM(first(y0, cons(cons(y1, y2), y3))) -> c3(MARK(first(y0, cons(cons(y1, y2), y3)))) A__FROM(first(first(y0, y1), cons(y2, y3))) -> c3(MARK(first(first(y0, y1), cons(y2, y3)))) A__FROM(first(from(y0), cons(y1, y2))) -> c3(MARK(first(from(y0), cons(y1, y2)))) A__FROM(first(s(y0), cons(y1, y2))) -> c3(MARK(first(s(y0), cons(y1, y2)))) A__FROM(first(cons(y0, y1), cons(y2, y3))) -> c3(MARK(first(cons(y0, y1), cons(y2, y3)))) A__FROM(first(first(y0, first(y1, y2)), y3)) -> c3(MARK(first(first(y0, first(y1, y2)), y3))) A__FROM(first(first(y0, from(y1)), y2)) -> c3(MARK(first(first(y0, from(y1)), y2))) A__FROM(first(first(y0, 0), y1)) -> c3(MARK(first(first(y0, 0), y1))) A__FROM(first(first(y0, nil), y1)) -> c3(MARK(first(first(y0, nil), y1))) A__FROM(first(first(y0, s(y1)), y2)) -> c3(MARK(first(first(y0, s(y1)), y2))) A__FROM(first(first(y0, cons(y1, y2)), y3)) -> c3(MARK(first(first(y0, cons(y1, y2)), y3))) A__FROM(first(first(first(y0, y1), y2), y3)) -> c3(MARK(first(first(first(y0, y1), y2), y3))) A__FROM(first(first(from(y0), y1), y2)) -> c3(MARK(first(first(from(y0), y1), y2))) A__FROM(first(first(0, y0), y1)) -> c3(MARK(first(first(0, y0), y1))) A__FROM(first(first(nil, y0), y1)) -> c3(MARK(first(first(nil, y0), y1))) A__FROM(first(first(s(y0), y1), y2)) -> c3(MARK(first(first(s(y0), y1), y2))) A__FROM(first(first(cons(y0, y1), y2), y3)) -> c3(MARK(first(first(cons(y0, y1), y2), y3))) A__FROM(first(first(y0, y1), 0)) -> c3(MARK(first(first(y0, y1), 0))) A__FROM(first(first(y0, y1), nil)) -> c3(MARK(first(first(y0, y1), nil))) A__FROM(first(first(y0, y1), s(y2))) -> c3(MARK(first(first(y0, y1), s(y2)))) A__FROM(first(first(y0, y1), y2)) -> c3(MARK(first(first(y0, y1), y2))) A__FROM(first(from(first(y0, y1)), y2)) -> c3(MARK(first(from(first(y0, y1)), y2))) A__FROM(first(from(from(y0)), y1)) -> c3(MARK(first(from(from(y0)), y1))) A__FROM(first(from(0), y0)) -> c3(MARK(first(from(0), y0))) A__FROM(first(from(nil), y0)) -> c3(MARK(first(from(nil), y0))) A__FROM(first(from(s(y0)), y1)) -> c3(MARK(first(from(s(y0)), y1))) A__FROM(first(from(cons(y0, y1)), y2)) -> c3(MARK(first(from(cons(y0, y1)), y2))) A__FROM(first(from(y0), y1)) -> c3(MARK(first(from(y0), y1))) A__FROM(first(from(y0), 0)) -> c3(MARK(first(from(y0), 0))) A__FROM(first(from(y0), nil)) -> c3(MARK(first(from(y0), nil))) A__FROM(first(from(y0), s(y1))) -> c3(MARK(first(from(y0), s(y1)))) A__FROM(first(s(first(y0, y1)), y2)) -> c3(MARK(first(s(first(y0, y1)), y2))) A__FROM(first(s(from(y0)), y1)) -> c3(MARK(first(s(from(y0)), y1))) A__FROM(first(s(0), y0)) -> c3(MARK(first(s(0), y0))) A__FROM(first(s(nil), y0)) -> c3(MARK(first(s(nil), y0))) A__FROM(first(s(s(y0)), y1)) -> c3(MARK(first(s(s(y0)), y1))) A__FROM(first(s(cons(y0, y1)), y2)) -> c3(MARK(first(s(cons(y0, y1)), y2))) A__FROM(first(s(y0), y1)) -> c3(MARK(first(s(y0), y1))) A__FROM(first(s(y0), 0)) -> c3(MARK(first(s(y0), 0))) A__FROM(first(s(y0), nil)) -> c3(MARK(first(s(y0), nil))) A__FROM(first(s(y0), s(y1))) -> c3(MARK(first(s(y0), s(y1)))) A__FROM(first(0, first(y0, y1))) -> c3(MARK(first(0, first(y0, y1)))) A__FROM(first(nil, first(y0, y1))) -> c3(MARK(first(nil, first(y0, y1)))) A__FROM(first(0, from(y0))) -> c3(MARK(first(0, from(y0)))) A__FROM(first(nil, from(y0))) -> c3(MARK(first(nil, from(y0)))) A__FROM(first(y0, cons(y1, y2))) -> c3(MARK(first(y0, cons(y1, y2)))) A__FROM(first(0, cons(y0, y1))) -> c3(MARK(first(0, cons(y0, y1)))) A__FROM(first(nil, cons(y0, y1))) -> c3(MARK(first(nil, cons(y0, y1)))) A__FROM(first(y0, cons(0, y1))) -> c3(MARK(first(y0, cons(0, y1)))) A__FROM(first(y0, cons(nil, y1))) -> c3(MARK(first(y0, cons(nil, y1)))) MARK(from(s(z0))) -> c7(A__FROM(s(mark(z0))), MARK(s(z0))) MARK(from(cons(z0, z1))) -> c7(A__FROM(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(from(0), x1)) -> c5(A__FIRST(a__from(0), mark(x1))) MARK(first(from(nil), x1)) -> c5(A__FIRST(a__from(nil), mark(x1))) MARK(first(x0, from(0))) -> c6(A__FIRST(mark(x0), a__from(0))) MARK(first(x0, from(nil))) -> c6(A__FIRST(mark(x0), a__from(nil))) MARK(from(first(x0, x1))) -> c7(A__FROM(first(mark(x0), mark(x1))), MARK(first(x0, x1))) MARK(from(first(x0, first(z0, z1)))) -> c7(A__FROM(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) MARK(from(first(x0, from(z0)))) -> c7(A__FROM(a__first(mark(x0), a__from(mark(z0)))), MARK(first(x0, from(z0)))) MARK(from(first(x0, 0))) -> c7(A__FROM(a__first(mark(x0), 0)), MARK(first(x0, 0))) MARK(from(first(x0, nil))) -> c7(A__FROM(a__first(mark(x0), nil)), MARK(first(x0, nil))) MARK(from(first(x0, s(z0)))) -> c7(A__FROM(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) MARK(from(first(x0, cons(z0, z1)))) -> c7(A__FROM(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) MARK(from(first(first(z0, z1), x1))) -> c7(A__FROM(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) MARK(from(first(from(z0), x1))) -> c7(A__FROM(a__first(a__from(mark(z0)), mark(x1))), MARK(first(from(z0), x1))) MARK(from(first(0, x1))) -> c7(A__FROM(a__first(0, mark(x1))), MARK(first(0, x1))) MARK(from(first(nil, x1))) -> c7(A__FROM(a__first(nil, mark(x1))), MARK(first(nil, x1))) MARK(from(first(s(z0), x1))) -> c7(A__FROM(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) MARK(from(first(cons(z0, z1), x1))) -> c7(A__FROM(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) MARK(from(from(x0))) -> c7(A__FROM(cons(mark(mark(x0)), from(s(mark(x0))))), MARK(from(x0))) MARK(from(from(x0))) -> c7(A__FROM(from(mark(x0))), MARK(from(x0))) MARK(from(from(first(z0, z1)))) -> c7(A__FROM(a__from(a__first(mark(z0), mark(z1)))), MARK(from(first(z0, z1)))) MARK(from(from(from(z0)))) -> c7(A__FROM(a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(from(from(s(z0)))) -> c7(A__FROM(a__from(s(mark(z0)))), MARK(from(s(z0)))) MARK(from(from(cons(z0, z1)))) -> c7(A__FROM(a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(from(from(0))) -> c7(A__FROM(a__from(0))) MARK(from(from(nil))) -> c7(A__FROM(a__from(nil))) MARK(s(s(y0))) -> c10(MARK(s(y0))) MARK(s(cons(y0, y1))) -> c10(MARK(cons(y0, y1))) MARK(s(first(y0, 0))) -> c10(MARK(first(y0, 0))) MARK(s(first(y0, nil))) -> c10(MARK(first(y0, nil))) MARK(s(first(y0, s(y1)))) -> c10(MARK(first(y0, s(y1)))) MARK(s(first(cons(y0, y1), y2))) -> c10(MARK(first(cons(y0, y1), y2))) MARK(s(first(0, y0))) -> c10(MARK(first(0, y0))) MARK(s(first(nil, y0))) -> c10(MARK(first(nil, y0))) MARK(s(first(y0, first(y1, first(y2, y3))))) -> c10(MARK(first(y0, first(y1, first(y2, y3))))) MARK(s(first(y0, first(y1, from(y2))))) -> c10(MARK(first(y0, first(y1, from(y2))))) MARK(s(first(y0, first(y1, 0)))) -> c10(MARK(first(y0, first(y1, 0)))) MARK(s(first(y0, first(y1, nil)))) -> c10(MARK(first(y0, first(y1, nil)))) MARK(s(first(y0, first(y1, s(y2))))) -> c10(MARK(first(y0, first(y1, s(y2))))) MARK(s(first(y0, first(y1, cons(y2, y3))))) -> c10(MARK(first(y0, first(y1, cons(y2, y3))))) MARK(s(first(y0, first(first(y1, y2), y3)))) -> c10(MARK(first(y0, first(first(y1, y2), y3)))) MARK(s(first(y0, first(from(y1), y2)))) -> c10(MARK(first(y0, first(from(y1), y2)))) MARK(s(first(y0, first(0, y1)))) -> c10(MARK(first(y0, first(0, y1)))) MARK(s(first(y0, first(nil, y1)))) -> c10(MARK(first(y0, first(nil, y1)))) MARK(s(first(y0, first(s(y1), y2)))) -> c10(MARK(first(y0, first(s(y1), y2)))) MARK(s(first(y0, first(cons(y1, y2), y3)))) -> c10(MARK(first(y0, first(cons(y1, y2), y3)))) MARK(s(first(first(y0, y1), first(y2, y3)))) -> c10(MARK(first(first(y0, y1), first(y2, y3)))) MARK(s(first(from(y0), first(y1, y2)))) -> c10(MARK(first(from(y0), first(y1, y2)))) MARK(s(first(s(y0), first(y1, y2)))) -> c10(MARK(first(s(y0), first(y1, y2)))) MARK(s(first(y0, first(y1, y2)))) -> c10(MARK(first(y0, first(y1, y2)))) MARK(s(first(cons(y0, y1), first(y2, y3)))) -> c10(MARK(first(cons(y0, y1), first(y2, y3)))) MARK(s(first(y0, from(y1)))) -> c10(MARK(first(y0, from(y1)))) MARK(s(first(y0, from(first(y1, y2))))) -> c10(MARK(first(y0, from(first(y1, y2))))) MARK(s(first(y0, from(from(y1))))) -> c10(MARK(first(y0, from(from(y1))))) MARK(s(first(y0, from(0)))) -> c10(MARK(first(y0, from(0)))) MARK(s(first(y0, from(nil)))) -> c10(MARK(first(y0, from(nil)))) MARK(s(first(y0, from(s(y1))))) -> c10(MARK(first(y0, from(s(y1))))) MARK(s(first(y0, from(cons(y1, y2))))) -> c10(MARK(first(y0, from(cons(y1, y2))))) MARK(s(first(first(y0, y1), from(y2)))) -> c10(MARK(first(first(y0, y1), from(y2)))) MARK(s(first(from(y0), from(y1)))) -> c10(MARK(first(from(y0), from(y1)))) MARK(s(first(s(y0), from(y1)))) -> c10(MARK(first(s(y0), from(y1)))) MARK(s(first(cons(y0, y1), from(y2)))) -> c10(MARK(first(cons(y0, y1), from(y2)))) MARK(s(first(y0, cons(first(y1, y2), y3)))) -> c10(MARK(first(y0, cons(first(y1, y2), y3)))) MARK(s(first(y0, cons(from(y1), y2)))) -> c10(MARK(first(y0, cons(from(y1), y2)))) MARK(s(first(y0, cons(s(y1), y2)))) -> c10(MARK(first(y0, cons(s(y1), y2)))) MARK(s(first(y0, cons(cons(y1, y2), y3)))) -> c10(MARK(first(y0, cons(cons(y1, y2), y3)))) MARK(s(first(first(y0, y1), cons(y2, y3)))) -> c10(MARK(first(first(y0, y1), cons(y2, y3)))) MARK(s(first(from(y0), cons(y1, y2)))) -> c10(MARK(first(from(y0), cons(y1, y2)))) MARK(s(first(s(y0), cons(y1, y2)))) -> c10(MARK(first(s(y0), cons(y1, y2)))) MARK(s(first(cons(y0, y1), cons(y2, y3)))) -> c10(MARK(first(cons(y0, y1), cons(y2, y3)))) MARK(s(first(first(y0, first(y1, y2)), y3))) -> c10(MARK(first(first(y0, first(y1, y2)), y3))) MARK(s(first(first(y0, from(y1)), y2))) -> c10(MARK(first(first(y0, from(y1)), y2))) MARK(s(first(first(y0, 0), y1))) -> c10(MARK(first(first(y0, 0), y1))) MARK(s(first(first(y0, nil), y1))) -> c10(MARK(first(first(y0, nil), y1))) MARK(s(first(first(y0, s(y1)), y2))) -> c10(MARK(first(first(y0, s(y1)), y2))) MARK(s(first(first(y0, cons(y1, y2)), y3))) -> c10(MARK(first(first(y0, cons(y1, y2)), y3))) MARK(s(first(first(first(y0, y1), y2), y3))) -> c10(MARK(first(first(first(y0, y1), y2), y3))) MARK(s(first(first(from(y0), y1), y2))) -> c10(MARK(first(first(from(y0), y1), y2))) MARK(s(first(first(0, y0), y1))) -> c10(MARK(first(first(0, y0), y1))) MARK(s(first(first(nil, y0), y1))) -> c10(MARK(first(first(nil, y0), y1))) MARK(s(first(first(s(y0), y1), y2))) -> c10(MARK(first(first(s(y0), y1), y2))) MARK(s(first(first(cons(y0, y1), y2), y3))) -> c10(MARK(first(first(cons(y0, y1), y2), y3))) MARK(s(first(first(y0, y1), 0))) -> c10(MARK(first(first(y0, y1), 0))) MARK(s(first(first(y0, y1), nil))) -> c10(MARK(first(first(y0, y1), nil))) MARK(s(first(first(y0, y1), s(y2)))) -> c10(MARK(first(first(y0, y1), s(y2)))) MARK(s(first(first(y0, y1), y2))) -> c10(MARK(first(first(y0, y1), y2))) MARK(s(first(from(first(y0, y1)), y2))) -> c10(MARK(first(from(first(y0, y1)), y2))) MARK(s(first(from(from(y0)), y1))) -> c10(MARK(first(from(from(y0)), y1))) MARK(s(first(from(s(y0)), y1))) -> c10(MARK(first(from(s(y0)), y1))) MARK(s(first(from(cons(y0, y1)), y2))) -> c10(MARK(first(from(cons(y0, y1)), y2))) MARK(s(first(from(y0), y1))) -> c10(MARK(first(from(y0), y1))) MARK(s(first(from(y0), 0))) -> c10(MARK(first(from(y0), 0))) MARK(s(first(from(y0), nil))) -> c10(MARK(first(from(y0), nil))) MARK(s(first(from(y0), s(y1)))) -> c10(MARK(first(from(y0), s(y1)))) MARK(s(first(s(first(y0, y1)), y2))) -> c10(MARK(first(s(first(y0, y1)), y2))) MARK(s(first(s(from(y0)), y1))) -> c10(MARK(first(s(from(y0)), y1))) MARK(s(first(s(0), y0))) -> c10(MARK(first(s(0), y0))) MARK(s(first(s(nil), y0))) -> c10(MARK(first(s(nil), y0))) MARK(s(first(s(s(y0)), y1))) -> c10(MARK(first(s(s(y0)), y1))) MARK(s(first(s(cons(y0, y1)), y2))) -> c10(MARK(first(s(cons(y0, y1)), y2))) MARK(s(first(s(y0), y1))) -> c10(MARK(first(s(y0), y1))) MARK(s(first(s(y0), 0))) -> c10(MARK(first(s(y0), 0))) MARK(s(first(s(y0), nil))) -> c10(MARK(first(s(y0), nil))) MARK(s(first(s(y0), s(y1)))) -> c10(MARK(first(s(y0), s(y1)))) MARK(s(first(0, first(y0, y1)))) -> c10(MARK(first(0, first(y0, y1)))) MARK(s(first(nil, first(y0, y1)))) -> c10(MARK(first(nil, first(y0, y1)))) MARK(s(first(0, from(y0)))) -> c10(MARK(first(0, from(y0)))) MARK(s(first(nil, from(y0)))) -> c10(MARK(first(nil, from(y0)))) MARK(s(first(y0, cons(y1, y2)))) -> c10(MARK(first(y0, cons(y1, y2)))) MARK(s(first(0, cons(y0, y1)))) -> c10(MARK(first(0, cons(y0, y1)))) MARK(s(first(nil, cons(y0, y1)))) -> c10(MARK(first(nil, cons(y0, y1)))) MARK(s(first(from(0), y0))) -> c10(MARK(first(from(0), y0))) MARK(s(first(from(nil), y0))) -> c10(MARK(first(from(nil), y0))) MARK(s(first(y0, cons(0, y1)))) -> c10(MARK(first(y0, cons(0, y1)))) MARK(s(first(y0, cons(nil, y1)))) -> c10(MARK(first(y0, cons(nil, y1)))) MARK(s(from(s(y0)))) -> c10(MARK(from(s(y0)))) MARK(s(from(cons(y0, y1)))) -> c10(MARK(from(cons(y0, y1)))) MARK(s(from(first(y0, y1)))) -> c10(MARK(from(first(y0, y1)))) MARK(s(from(first(y0, first(y1, y2))))) -> c10(MARK(from(first(y0, first(y1, y2))))) MARK(s(from(first(y0, from(y1))))) -> c10(MARK(from(first(y0, from(y1))))) MARK(s(from(first(y0, 0)))) -> c10(MARK(from(first(y0, 0)))) MARK(s(from(first(y0, nil)))) -> c10(MARK(from(first(y0, nil)))) MARK(s(from(first(y0, s(y1))))) -> c10(MARK(from(first(y0, s(y1))))) MARK(s(from(first(y0, cons(y1, y2))))) -> c10(MARK(from(first(y0, cons(y1, y2))))) MARK(s(from(first(first(y0, y1), y2)))) -> c10(MARK(from(first(first(y0, y1), y2)))) MARK(s(from(first(from(y0), y1)))) -> c10(MARK(from(first(from(y0), y1)))) MARK(s(from(first(0, y0)))) -> c10(MARK(from(first(0, y0)))) MARK(s(from(first(nil, y0)))) -> c10(MARK(from(first(nil, y0)))) MARK(s(from(first(s(y0), y1)))) -> c10(MARK(from(first(s(y0), y1)))) MARK(s(from(first(cons(y0, y1), y2)))) -> c10(MARK(from(first(cons(y0, y1), y2)))) MARK(s(from(from(y0)))) -> c10(MARK(from(from(y0)))) MARK(s(from(from(first(y0, y1))))) -> c10(MARK(from(from(first(y0, y1))))) MARK(s(from(from(from(y0))))) -> c10(MARK(from(from(from(y0))))) MARK(s(from(from(s(y0))))) -> c10(MARK(from(from(s(y0))))) MARK(s(from(from(cons(y0, y1))))) -> c10(MARK(from(from(cons(y0, y1))))) MARK(s(from(from(0)))) -> c10(MARK(from(from(0)))) MARK(s(from(from(nil)))) -> c10(MARK(from(from(nil)))) S tuples: MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(x0, from(x1))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), from(x1))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(first(x0, cons(from(z0), x2))) -> c5(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(s(z0), x2))) -> c5(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(first(first(z0, z1), cons(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(first(z0, z1))) MARK(first(from(z0), cons(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(first(s(z0), cons(x1, x2))) -> c5(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(s(z0))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(first(x0, first(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(first(x0, first(z0, z1)))) MARK(first(first(x0, from(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(first(x0, from(z0)))) MARK(first(first(x0, 0), x2)) -> c5(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(first(x0, 0))) MARK(first(first(x0, nil), x2)) -> c5(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(first(x0, nil))) MARK(first(first(x0, s(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(first(x0, s(z0)))) MARK(first(first(x0, cons(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(first(x0, cons(z0, z1)))) MARK(first(first(first(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(first(first(z0, z1), x1))) MARK(first(first(from(z0), x1), x2)) -> c5(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(first(from(z0), x1))) MARK(first(first(0, x1), x2)) -> c5(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(first(0, x1))) MARK(first(first(nil, x1), x2)) -> c5(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(first(nil, x1))) MARK(first(first(s(z0), x1), x2)) -> c5(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(first(s(z0), x1))) MARK(first(first(cons(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(first(cons(z0, z1), x1))) MARK(first(first(x0, x1), 0)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), nil)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), s(z0))) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), x2)) -> c5(MARK(first(x0, x1))) MARK(first(from(first(z0, z1)), x1)) -> c5(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(from(first(z0, z1)))) MARK(first(from(from(z0)), x1)) -> c5(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(first(from(s(z0)), x1)) -> c5(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(from(s(z0)))) MARK(first(from(cons(z0, z1)), x1)) -> c5(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(first(from(x0), x1)) -> c5(MARK(from(x0))) MARK(first(from(x0), 0)) -> c5(MARK(from(x0))) MARK(first(from(x0), nil)) -> c5(MARK(from(x0))) MARK(first(from(x0), s(z0))) -> c5(MARK(from(x0))) MARK(first(s(first(z0, z1)), x1)) -> c5(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(s(first(z0, z1)))) MARK(first(s(from(z0)), x1)) -> c5(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(s(from(z0)))) MARK(first(s(0), x1)) -> c5(A__FIRST(s(0), mark(x1)), MARK(s(0))) MARK(first(s(nil), x1)) -> c5(A__FIRST(s(nil), mark(x1)), MARK(s(nil))) MARK(first(s(s(z0)), x1)) -> c5(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(s(s(z0)))) MARK(first(s(cons(z0, z1)), x1)) -> c5(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(s(cons(z0, z1)))) MARK(first(s(x0), x1)) -> c5(MARK(s(x0))) MARK(first(s(x0), 0)) -> c5(MARK(s(x0))) MARK(first(s(x0), nil)) -> c5(MARK(s(x0))) MARK(first(s(x0), s(z0))) -> c5(MARK(s(x0))) MARK(first(x0, first(x1, first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(first(x1, first(z0, z1)))) MARK(first(x0, first(x1, from(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(first(x1, from(z0)))) MARK(first(x0, first(x1, 0))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(first(x1, 0))) MARK(first(x0, first(x1, nil))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(first(x1, nil))) MARK(first(x0, first(x1, s(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(first(x1, s(z0)))) MARK(first(x0, first(x1, cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(first(x1, cons(z0, z1)))) MARK(first(x0, first(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(first(first(z0, z1), x2))) MARK(first(x0, first(from(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(first(from(z0), x2))) MARK(first(x0, first(0, x2))) -> c6(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(first(0, x2))) MARK(first(x0, first(nil, x2))) -> c6(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(first(nil, x2))) MARK(first(x0, first(s(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(first(s(z0), x2))) MARK(first(x0, first(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(first(cons(z0, z1), x2))) MARK(first(first(z0, z1), first(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(from(z0), first(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(s(z0), first(x1, x2))) -> c6(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(x0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(nil, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(cons(z0, z1), first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(x0, from(x1))) -> c6(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(first(x0, from(first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(from(first(z0, z1)))) MARK(first(x0, from(from(z0)))) -> c6(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(first(x0, from(s(z0)))) -> c6(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(from(s(z0)))) MARK(first(x0, from(cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(first(first(z0, z1), from(x1))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(first(from(z0), from(x1))) -> c6(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(s(z0), from(x1))) -> c6(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(x0, from(x1))) -> c6(MARK(from(x1))) MARK(first(0, from(x1))) -> c6(MARK(from(x1))) MARK(first(nil, from(x1))) -> c6(MARK(from(x1))) MARK(first(cons(z0, z1), from(x1))) -> c6(MARK(from(x1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(cons(first(z0, z1), x2))) MARK(first(x0, cons(from(z0), x2))) -> c6(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(first(x0, cons(s(z0), x2))) -> c6(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(cons(s(z0), x2))) MARK(first(x0, cons(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(first(first(z0, z1), cons(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(from(z0), cons(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(s(z0), cons(x1, x2))) -> c6(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(x0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(nil, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(first(x0, first(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(first(first(x0, from(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, 0), x2)) -> c6(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(x2)) MARK(first(first(x0, nil), x2)) -> c6(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(x2)) MARK(first(first(x0, s(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, cons(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(first(first(first(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(from(z0), x1), x2)) -> c6(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(0, x1), x2)) -> c6(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(nil, x1), x2)) -> c6(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(s(z0), x1), x2)) -> c6(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(cons(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(x0, x1), s(z0))) -> c6(MARK(s(z0))) MARK(first(first(x0, x1), x2)) -> c6(MARK(x2)) MARK(first(from(first(z0, z1)), x1)) -> c6(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(first(from(from(z0)), x1)) -> c6(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(first(from(0), x1)) -> c6(A__FIRST(a__from(0), mark(x1)), MARK(x1)) MARK(first(from(nil), x1)) -> c6(A__FIRST(a__from(nil), mark(x1)), MARK(x1)) MARK(first(from(s(z0)), x1)) -> c6(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(x1)) MARK(first(from(cons(z0, z1)), x1)) -> c6(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(first(from(x0), s(z0))) -> c6(MARK(s(z0))) MARK(first(from(x0), x1)) -> c6(MARK(x1)) MARK(first(s(first(z0, z1)), x1)) -> c6(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(first(s(from(z0)), x1)) -> c6(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(first(s(0), x1)) -> c6(A__FIRST(s(0), mark(x1)), MARK(x1)) MARK(first(s(nil), x1)) -> c6(A__FIRST(s(nil), mark(x1)), MARK(x1)) MARK(first(s(s(z0)), x1)) -> c6(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(x1)) MARK(first(s(cons(z0, z1)), x1)) -> c6(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(first(s(x0), s(z0))) -> c6(MARK(s(z0))) A__FIRST(s(z0), cons(from(y0), z2)) -> c1(MARK(from(y0))) A__FIRST(s(z0), cons(s(y0), z2)) -> c1(MARK(s(y0))) A__FIRST(s(z0), cons(cons(y0, y1), z2)) -> c1(MARK(cons(y0, y1))) A__FIRST(s(z0), cons(first(y0, 0), z2)) -> c1(MARK(first(y0, 0))) A__FIRST(s(z0), cons(first(y0, nil), z2)) -> c1(MARK(first(y0, nil))) A__FIRST(s(z0), cons(first(y0, s(y1)), z2)) -> c1(MARK(first(y0, s(y1)))) A__FIRST(s(z0), cons(first(cons(y0, y1), y2), z2)) -> c1(MARK(first(cons(y0, y1), y2))) A__FIRST(s(z0), cons(first(0, y0), z2)) -> c1(MARK(first(0, y0))) A__FIRST(s(z0), cons(first(nil, y0), z2)) -> c1(MARK(first(nil, y0))) A__FIRST(s(z0), cons(first(y0, first(y1, first(y2, y3))), z2)) -> c1(MARK(first(y0, first(y1, first(y2, y3))))) A__FIRST(s(z0), cons(first(y0, first(y1, from(y2))), z2)) -> c1(MARK(first(y0, first(y1, from(y2))))) A__FIRST(s(z0), cons(first(y0, first(y1, 0)), z2)) -> c1(MARK(first(y0, first(y1, 0)))) A__FIRST(s(z0), cons(first(y0, first(y1, nil)), z2)) -> c1(MARK(first(y0, first(y1, nil)))) A__FIRST(s(z0), cons(first(y0, first(y1, s(y2))), z2)) -> c1(MARK(first(y0, first(y1, s(y2))))) A__FIRST(s(z0), cons(first(y0, first(y1, cons(y2, y3))), z2)) -> c1(MARK(first(y0, first(y1, cons(y2, y3))))) A__FIRST(s(z0), cons(first(y0, first(first(y1, y2), y3)), z2)) -> c1(MARK(first(y0, first(first(y1, y2), y3)))) A__FIRST(s(z0), cons(first(y0, first(from(y1), y2)), z2)) -> c1(MARK(first(y0, first(from(y1), y2)))) A__FIRST(s(z0), cons(first(y0, first(0, y1)), z2)) -> c1(MARK(first(y0, first(0, y1)))) A__FIRST(s(z0), cons(first(y0, first(nil, y1)), z2)) -> c1(MARK(first(y0, first(nil, y1)))) A__FIRST(s(z0), cons(first(y0, first(s(y1), y2)), z2)) -> c1(MARK(first(y0, first(s(y1), y2)))) A__FIRST(s(z0), cons(first(y0, first(cons(y1, y2), y3)), z2)) -> c1(MARK(first(y0, first(cons(y1, y2), y3)))) A__FIRST(s(z0), cons(first(first(y0, y1), first(y2, y3)), z2)) -> c1(MARK(first(first(y0, y1), first(y2, y3)))) A__FIRST(s(z0), cons(first(from(y0), first(y1, y2)), z2)) -> c1(MARK(first(from(y0), first(y1, y2)))) A__FIRST(s(z0), cons(first(s(y0), first(y1, y2)), z2)) -> c1(MARK(first(s(y0), first(y1, y2)))) A__FIRST(s(z0), cons(first(y0, first(y1, y2)), z2)) -> c1(MARK(first(y0, first(y1, y2)))) A__FIRST(s(z0), cons(first(cons(y0, y1), first(y2, y3)), z2)) -> c1(MARK(first(cons(y0, y1), first(y2, y3)))) A__FIRST(s(z0), cons(first(y0, from(y1)), z2)) -> c1(MARK(first(y0, from(y1)))) A__FIRST(s(z0), cons(first(y0, from(first(y1, y2))), z2)) -> c1(MARK(first(y0, from(first(y1, y2))))) A__FIRST(s(z0), cons(first(y0, from(from(y1))), z2)) -> c1(MARK(first(y0, from(from(y1))))) A__FIRST(s(z0), cons(first(y0, from(0)), z2)) -> c1(MARK(first(y0, from(0)))) A__FIRST(s(z0), cons(first(y0, from(nil)), z2)) -> c1(MARK(first(y0, from(nil)))) A__FIRST(s(z0), cons(first(y0, from(s(y1))), z2)) -> c1(MARK(first(y0, from(s(y1))))) A__FIRST(s(z0), cons(first(y0, from(cons(y1, y2))), z2)) -> c1(MARK(first(y0, from(cons(y1, y2))))) A__FIRST(s(z0), cons(first(first(y0, y1), from(y2)), z2)) -> c1(MARK(first(first(y0, y1), from(y2)))) A__FIRST(s(z0), cons(first(from(y0), from(y1)), z2)) -> c1(MARK(first(from(y0), from(y1)))) A__FIRST(s(z0), cons(first(s(y0), from(y1)), z2)) -> c1(MARK(first(s(y0), from(y1)))) A__FIRST(s(z0), cons(first(cons(y0, y1), from(y2)), z2)) -> c1(MARK(first(cons(y0, y1), from(y2)))) A__FIRST(s(z0), cons(first(y0, cons(first(y1, y2), y3)), z2)) -> c1(MARK(first(y0, cons(first(y1, y2), y3)))) A__FIRST(s(z0), cons(first(y0, cons(from(y1), y2)), z2)) -> c1(MARK(first(y0, cons(from(y1), y2)))) A__FIRST(s(z0), cons(first(y0, cons(0, y1)), z2)) -> c1(MARK(first(y0, cons(0, y1)))) A__FIRST(s(z0), cons(first(y0, cons(nil, y1)), z2)) -> c1(MARK(first(y0, cons(nil, y1)))) A__FIRST(s(z0), cons(first(y0, cons(s(y1), y2)), z2)) -> c1(MARK(first(y0, cons(s(y1), y2)))) A__FIRST(s(z0), cons(first(y0, cons(cons(y1, y2), y3)), z2)) -> c1(MARK(first(y0, cons(cons(y1, y2), y3)))) A__FIRST(s(z0), cons(first(first(y0, y1), cons(y2, y3)), z2)) -> c1(MARK(first(first(y0, y1), cons(y2, y3)))) A__FIRST(s(z0), cons(first(from(y0), cons(y1, y2)), z2)) -> c1(MARK(first(from(y0), cons(y1, y2)))) A__FIRST(s(z0), cons(first(s(y0), cons(y1, y2)), z2)) -> c1(MARK(first(s(y0), cons(y1, y2)))) A__FIRST(s(z0), cons(first(cons(y0, y1), cons(y2, y3)), z2)) -> c1(MARK(first(cons(y0, y1), cons(y2, y3)))) A__FIRST(s(z0), cons(first(first(y0, first(y1, y2)), y3), z2)) -> c1(MARK(first(first(y0, first(y1, y2)), y3))) A__FIRST(s(z0), cons(first(first(y0, from(y1)), y2), z2)) -> c1(MARK(first(first(y0, from(y1)), y2))) A__FIRST(s(z0), cons(first(first(y0, 0), y1), z2)) -> c1(MARK(first(first(y0, 0), y1))) A__FIRST(s(z0), cons(first(first(y0, nil), y1), z2)) -> c1(MARK(first(first(y0, nil), y1))) A__FIRST(s(z0), cons(first(first(y0, s(y1)), y2), z2)) -> c1(MARK(first(first(y0, s(y1)), y2))) A__FIRST(s(z0), cons(first(first(y0, cons(y1, y2)), y3), z2)) -> c1(MARK(first(first(y0, cons(y1, y2)), y3))) A__FIRST(s(z0), cons(first(first(first(y0, y1), y2), y3), z2)) -> c1(MARK(first(first(first(y0, y1), y2), y3))) A__FIRST(s(z0), cons(first(first(from(y0), y1), y2), z2)) -> c1(MARK(first(first(from(y0), y1), y2))) A__FIRST(s(z0), cons(first(first(0, y0), y1), z2)) -> c1(MARK(first(first(0, y0), y1))) A__FIRST(s(z0), cons(first(first(nil, y0), y1), z2)) -> c1(MARK(first(first(nil, y0), y1))) A__FIRST(s(z0), cons(first(first(s(y0), y1), y2), z2)) -> c1(MARK(first(first(s(y0), y1), y2))) A__FIRST(s(z0), cons(first(first(cons(y0, y1), y2), y3), z2)) -> c1(MARK(first(first(cons(y0, y1), y2), y3))) A__FIRST(s(z0), cons(first(first(y0, y1), 0), z2)) -> c1(MARK(first(first(y0, y1), 0))) A__FIRST(s(z0), cons(first(first(y0, y1), nil), z2)) -> c1(MARK(first(first(y0, y1), nil))) A__FIRST(s(z0), cons(first(first(y0, y1), s(y2)), z2)) -> c1(MARK(first(first(y0, y1), s(y2)))) A__FIRST(s(z0), cons(first(first(y0, y1), y2), z2)) -> c1(MARK(first(first(y0, y1), y2))) A__FIRST(s(z0), cons(first(from(first(y0, y1)), y2), z2)) -> c1(MARK(first(from(first(y0, y1)), y2))) A__FIRST(s(z0), cons(first(from(from(y0)), y1), z2)) -> c1(MARK(first(from(from(y0)), y1))) A__FIRST(s(z0), cons(first(from(0), y0), z2)) -> c1(MARK(first(from(0), y0))) A__FIRST(s(z0), cons(first(from(nil), y0), z2)) -> c1(MARK(first(from(nil), y0))) A__FIRST(s(z0), cons(first(from(s(y0)), y1), z2)) -> c1(MARK(first(from(s(y0)), y1))) A__FIRST(s(z0), cons(first(from(cons(y0, y1)), y2), z2)) -> c1(MARK(first(from(cons(y0, y1)), y2))) A__FIRST(s(z0), cons(first(from(y0), y1), z2)) -> c1(MARK(first(from(y0), y1))) A__FIRST(s(z0), cons(first(from(y0), 0), z2)) -> c1(MARK(first(from(y0), 0))) A__FIRST(s(z0), cons(first(from(y0), nil), z2)) -> c1(MARK(first(from(y0), nil))) A__FIRST(s(z0), cons(first(from(y0), s(y1)), z2)) -> c1(MARK(first(from(y0), s(y1)))) A__FIRST(s(z0), cons(first(s(first(y0, y1)), y2), z2)) -> c1(MARK(first(s(first(y0, y1)), y2))) A__FIRST(s(z0), cons(first(s(from(y0)), y1), z2)) -> c1(MARK(first(s(from(y0)), y1))) A__FIRST(s(z0), cons(first(s(0), y0), z2)) -> c1(MARK(first(s(0), y0))) A__FIRST(s(z0), cons(first(s(nil), y0), z2)) -> c1(MARK(first(s(nil), y0))) A__FIRST(s(z0), cons(first(s(s(y0)), y1), z2)) -> c1(MARK(first(s(s(y0)), y1))) A__FIRST(s(z0), cons(first(s(cons(y0, y1)), y2), z2)) -> c1(MARK(first(s(cons(y0, y1)), y2))) A__FIRST(s(z0), cons(first(s(y0), y1), z2)) -> c1(MARK(first(s(y0), y1))) A__FIRST(s(z0), cons(first(s(y0), 0), z2)) -> c1(MARK(first(s(y0), 0))) A__FIRST(s(z0), cons(first(s(y0), nil), z2)) -> c1(MARK(first(s(y0), nil))) A__FIRST(s(z0), cons(first(s(y0), s(y1)), z2)) -> c1(MARK(first(s(y0), s(y1)))) A__FIRST(s(z0), cons(first(0, first(y0, y1)), z2)) -> c1(MARK(first(0, first(y0, y1)))) A__FIRST(s(z0), cons(first(nil, first(y0, y1)), z2)) -> c1(MARK(first(nil, first(y0, y1)))) A__FIRST(s(z0), cons(first(0, from(y0)), z2)) -> c1(MARK(first(0, from(y0)))) A__FIRST(s(z0), cons(first(nil, from(y0)), z2)) -> c1(MARK(first(nil, from(y0)))) A__FIRST(s(z0), cons(first(y0, cons(y1, y2)), z2)) -> c1(MARK(first(y0, cons(y1, y2)))) A__FIRST(s(z0), cons(first(0, cons(y0, y1)), z2)) -> c1(MARK(first(0, cons(y0, y1)))) A__FIRST(s(z0), cons(first(nil, cons(y0, y1)), z2)) -> c1(MARK(first(nil, cons(y0, y1)))) MARK(first(x0, cons(0, x2))) -> c5(MARK(x0)) MARK(first(x0, cons(nil, x2))) -> c5(MARK(x0)) MARK(first(x0, cons(0, x2))) -> c6(MARK(cons(0, x2))) MARK(first(x0, cons(nil, x2))) -> c6(MARK(cons(nil, x2))) A__FROM(from(y0)) -> c3(MARK(from(y0))) A__FROM(s(y0)) -> c3(MARK(s(y0))) A__FROM(cons(y0, y1)) -> c3(MARK(cons(y0, y1))) A__FROM(first(y0, 0)) -> c3(MARK(first(y0, 0))) A__FROM(first(y0, nil)) -> c3(MARK(first(y0, nil))) A__FROM(first(y0, s(y1))) -> c3(MARK(first(y0, s(y1)))) A__FROM(first(cons(y0, y1), y2)) -> c3(MARK(first(cons(y0, y1), y2))) A__FROM(first(0, y0)) -> c3(MARK(first(0, y0))) A__FROM(first(nil, y0)) -> c3(MARK(first(nil, y0))) A__FROM(first(y0, first(y1, first(y2, y3)))) -> c3(MARK(first(y0, first(y1, first(y2, y3))))) A__FROM(first(y0, first(y1, from(y2)))) -> c3(MARK(first(y0, first(y1, from(y2))))) A__FROM(first(y0, first(y1, 0))) -> c3(MARK(first(y0, first(y1, 0)))) A__FROM(first(y0, first(y1, nil))) -> c3(MARK(first(y0, first(y1, nil)))) A__FROM(first(y0, first(y1, s(y2)))) -> c3(MARK(first(y0, first(y1, s(y2))))) A__FROM(first(y0, first(y1, cons(y2, y3)))) -> c3(MARK(first(y0, first(y1, cons(y2, y3))))) A__FROM(first(y0, first(first(y1, y2), y3))) -> c3(MARK(first(y0, first(first(y1, y2), y3)))) A__FROM(first(y0, first(from(y1), y2))) -> c3(MARK(first(y0, first(from(y1), y2)))) A__FROM(first(y0, first(0, y1))) -> c3(MARK(first(y0, first(0, y1)))) A__FROM(first(y0, first(nil, y1))) -> c3(MARK(first(y0, first(nil, y1)))) A__FROM(first(y0, first(s(y1), y2))) -> c3(MARK(first(y0, first(s(y1), y2)))) A__FROM(first(y0, first(cons(y1, y2), y3))) -> c3(MARK(first(y0, first(cons(y1, y2), y3)))) A__FROM(first(first(y0, y1), first(y2, y3))) -> c3(MARK(first(first(y0, y1), first(y2, y3)))) A__FROM(first(from(y0), first(y1, y2))) -> c3(MARK(first(from(y0), first(y1, y2)))) A__FROM(first(s(y0), first(y1, y2))) -> c3(MARK(first(s(y0), first(y1, y2)))) A__FROM(first(y0, first(y1, y2))) -> c3(MARK(first(y0, first(y1, y2)))) A__FROM(first(cons(y0, y1), first(y2, y3))) -> c3(MARK(first(cons(y0, y1), first(y2, y3)))) A__FROM(first(y0, from(y1))) -> c3(MARK(first(y0, from(y1)))) A__FROM(first(y0, from(first(y1, y2)))) -> c3(MARK(first(y0, from(first(y1, y2))))) A__FROM(first(y0, from(from(y1)))) -> c3(MARK(first(y0, from(from(y1))))) A__FROM(first(y0, from(0))) -> c3(MARK(first(y0, from(0)))) A__FROM(first(y0, from(nil))) -> c3(MARK(first(y0, from(nil)))) A__FROM(first(y0, from(s(y1)))) -> c3(MARK(first(y0, from(s(y1))))) A__FROM(first(y0, from(cons(y1, y2)))) -> c3(MARK(first(y0, from(cons(y1, y2))))) A__FROM(first(first(y0, y1), from(y2))) -> c3(MARK(first(first(y0, y1), from(y2)))) A__FROM(first(from(y0), from(y1))) -> c3(MARK(first(from(y0), from(y1)))) A__FROM(first(s(y0), from(y1))) -> c3(MARK(first(s(y0), from(y1)))) A__FROM(first(cons(y0, y1), from(y2))) -> c3(MARK(first(cons(y0, y1), from(y2)))) A__FROM(first(y0, cons(first(y1, y2), y3))) -> c3(MARK(first(y0, cons(first(y1, y2), y3)))) A__FROM(first(y0, cons(from(y1), y2))) -> c3(MARK(first(y0, cons(from(y1), y2)))) A__FROM(first(y0, cons(s(y1), y2))) -> c3(MARK(first(y0, cons(s(y1), y2)))) A__FROM(first(y0, cons(cons(y1, y2), y3))) -> c3(MARK(first(y0, cons(cons(y1, y2), y3)))) A__FROM(first(first(y0, y1), cons(y2, y3))) -> c3(MARK(first(first(y0, y1), cons(y2, y3)))) A__FROM(first(from(y0), cons(y1, y2))) -> c3(MARK(first(from(y0), cons(y1, y2)))) A__FROM(first(s(y0), cons(y1, y2))) -> c3(MARK(first(s(y0), cons(y1, y2)))) A__FROM(first(cons(y0, y1), cons(y2, y3))) -> c3(MARK(first(cons(y0, y1), cons(y2, y3)))) A__FROM(first(first(y0, first(y1, y2)), y3)) -> c3(MARK(first(first(y0, first(y1, y2)), y3))) A__FROM(first(first(y0, from(y1)), y2)) -> c3(MARK(first(first(y0, from(y1)), y2))) A__FROM(first(first(y0, 0), y1)) -> c3(MARK(first(first(y0, 0), y1))) A__FROM(first(first(y0, nil), y1)) -> c3(MARK(first(first(y0, nil), y1))) A__FROM(first(first(y0, s(y1)), y2)) -> c3(MARK(first(first(y0, s(y1)), y2))) A__FROM(first(first(y0, cons(y1, y2)), y3)) -> c3(MARK(first(first(y0, cons(y1, y2)), y3))) A__FROM(first(first(first(y0, y1), y2), y3)) -> c3(MARK(first(first(first(y0, y1), y2), y3))) A__FROM(first(first(from(y0), y1), y2)) -> c3(MARK(first(first(from(y0), y1), y2))) A__FROM(first(first(0, y0), y1)) -> c3(MARK(first(first(0, y0), y1))) A__FROM(first(first(nil, y0), y1)) -> c3(MARK(first(first(nil, y0), y1))) A__FROM(first(first(s(y0), y1), y2)) -> c3(MARK(first(first(s(y0), y1), y2))) A__FROM(first(first(cons(y0, y1), y2), y3)) -> c3(MARK(first(first(cons(y0, y1), y2), y3))) A__FROM(first(first(y0, y1), 0)) -> c3(MARK(first(first(y0, y1), 0))) A__FROM(first(first(y0, y1), nil)) -> c3(MARK(first(first(y0, y1), nil))) A__FROM(first(first(y0, y1), s(y2))) -> c3(MARK(first(first(y0, y1), s(y2)))) A__FROM(first(first(y0, y1), y2)) -> c3(MARK(first(first(y0, y1), y2))) A__FROM(first(from(first(y0, y1)), y2)) -> c3(MARK(first(from(first(y0, y1)), y2))) A__FROM(first(from(from(y0)), y1)) -> c3(MARK(first(from(from(y0)), y1))) A__FROM(first(from(0), y0)) -> c3(MARK(first(from(0), y0))) A__FROM(first(from(nil), y0)) -> c3(MARK(first(from(nil), y0))) A__FROM(first(from(s(y0)), y1)) -> c3(MARK(first(from(s(y0)), y1))) A__FROM(first(from(cons(y0, y1)), y2)) -> c3(MARK(first(from(cons(y0, y1)), y2))) A__FROM(first(from(y0), y1)) -> c3(MARK(first(from(y0), y1))) A__FROM(first(from(y0), 0)) -> c3(MARK(first(from(y0), 0))) A__FROM(first(from(y0), nil)) -> c3(MARK(first(from(y0), nil))) A__FROM(first(from(y0), s(y1))) -> c3(MARK(first(from(y0), s(y1)))) A__FROM(first(s(first(y0, y1)), y2)) -> c3(MARK(first(s(first(y0, y1)), y2))) A__FROM(first(s(from(y0)), y1)) -> c3(MARK(first(s(from(y0)), y1))) A__FROM(first(s(0), y0)) -> c3(MARK(first(s(0), y0))) A__FROM(first(s(nil), y0)) -> c3(MARK(first(s(nil), y0))) A__FROM(first(s(s(y0)), y1)) -> c3(MARK(first(s(s(y0)), y1))) A__FROM(first(s(cons(y0, y1)), y2)) -> c3(MARK(first(s(cons(y0, y1)), y2))) A__FROM(first(s(y0), y1)) -> c3(MARK(first(s(y0), y1))) A__FROM(first(s(y0), 0)) -> c3(MARK(first(s(y0), 0))) A__FROM(first(s(y0), nil)) -> c3(MARK(first(s(y0), nil))) A__FROM(first(s(y0), s(y1))) -> c3(MARK(first(s(y0), s(y1)))) A__FROM(first(0, first(y0, y1))) -> c3(MARK(first(0, first(y0, y1)))) A__FROM(first(nil, first(y0, y1))) -> c3(MARK(first(nil, first(y0, y1)))) A__FROM(first(0, from(y0))) -> c3(MARK(first(0, from(y0)))) A__FROM(first(nil, from(y0))) -> c3(MARK(first(nil, from(y0)))) A__FROM(first(y0, cons(y1, y2))) -> c3(MARK(first(y0, cons(y1, y2)))) A__FROM(first(0, cons(y0, y1))) -> c3(MARK(first(0, cons(y0, y1)))) A__FROM(first(nil, cons(y0, y1))) -> c3(MARK(first(nil, cons(y0, y1)))) A__FROM(first(y0, cons(0, y1))) -> c3(MARK(first(y0, cons(0, y1)))) A__FROM(first(y0, cons(nil, y1))) -> c3(MARK(first(y0, cons(nil, y1)))) MARK(from(s(z0))) -> c7(A__FROM(s(mark(z0))), MARK(s(z0))) MARK(from(cons(z0, z1))) -> c7(A__FROM(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(from(0), x1)) -> c5(A__FIRST(a__from(0), mark(x1))) MARK(first(from(nil), x1)) -> c5(A__FIRST(a__from(nil), mark(x1))) MARK(first(x0, from(0))) -> c6(A__FIRST(mark(x0), a__from(0))) MARK(first(x0, from(nil))) -> c6(A__FIRST(mark(x0), a__from(nil))) MARK(from(first(x0, x1))) -> c7(A__FROM(first(mark(x0), mark(x1))), MARK(first(x0, x1))) MARK(from(first(x0, first(z0, z1)))) -> c7(A__FROM(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) MARK(from(first(x0, from(z0)))) -> c7(A__FROM(a__first(mark(x0), a__from(mark(z0)))), MARK(first(x0, from(z0)))) MARK(from(first(x0, 0))) -> c7(A__FROM(a__first(mark(x0), 0)), MARK(first(x0, 0))) MARK(from(first(x0, nil))) -> c7(A__FROM(a__first(mark(x0), nil)), MARK(first(x0, nil))) MARK(from(first(x0, s(z0)))) -> c7(A__FROM(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) MARK(from(first(x0, cons(z0, z1)))) -> c7(A__FROM(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) MARK(from(first(first(z0, z1), x1))) -> c7(A__FROM(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) MARK(from(first(from(z0), x1))) -> c7(A__FROM(a__first(a__from(mark(z0)), mark(x1))), MARK(first(from(z0), x1))) MARK(from(first(0, x1))) -> c7(A__FROM(a__first(0, mark(x1))), MARK(first(0, x1))) MARK(from(first(nil, x1))) -> c7(A__FROM(a__first(nil, mark(x1))), MARK(first(nil, x1))) MARK(from(first(s(z0), x1))) -> c7(A__FROM(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) MARK(from(first(cons(z0, z1), x1))) -> c7(A__FROM(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) MARK(from(from(x0))) -> c7(A__FROM(cons(mark(mark(x0)), from(s(mark(x0))))), MARK(from(x0))) MARK(from(from(x0))) -> c7(A__FROM(from(mark(x0))), MARK(from(x0))) MARK(from(from(first(z0, z1)))) -> c7(A__FROM(a__from(a__first(mark(z0), mark(z1)))), MARK(from(first(z0, z1)))) MARK(from(from(from(z0)))) -> c7(A__FROM(a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(from(from(s(z0)))) -> c7(A__FROM(a__from(s(mark(z0)))), MARK(from(s(z0)))) MARK(from(from(cons(z0, z1)))) -> c7(A__FROM(a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(from(from(0))) -> c7(A__FROM(a__from(0))) MARK(from(from(nil))) -> c7(A__FROM(a__from(nil))) MARK(s(s(y0))) -> c10(MARK(s(y0))) MARK(s(cons(y0, y1))) -> c10(MARK(cons(y0, y1))) MARK(s(first(y0, 0))) -> c10(MARK(first(y0, 0))) MARK(s(first(y0, nil))) -> c10(MARK(first(y0, nil))) MARK(s(first(y0, s(y1)))) -> c10(MARK(first(y0, s(y1)))) MARK(s(first(cons(y0, y1), y2))) -> c10(MARK(first(cons(y0, y1), y2))) MARK(s(first(0, y0))) -> c10(MARK(first(0, y0))) MARK(s(first(nil, y0))) -> c10(MARK(first(nil, y0))) MARK(s(first(y0, first(y1, first(y2, y3))))) -> c10(MARK(first(y0, first(y1, first(y2, y3))))) MARK(s(first(y0, first(y1, from(y2))))) -> c10(MARK(first(y0, first(y1, from(y2))))) MARK(s(first(y0, first(y1, 0)))) -> c10(MARK(first(y0, first(y1, 0)))) MARK(s(first(y0, first(y1, nil)))) -> c10(MARK(first(y0, first(y1, nil)))) MARK(s(first(y0, first(y1, s(y2))))) -> c10(MARK(first(y0, first(y1, s(y2))))) MARK(s(first(y0, first(y1, cons(y2, y3))))) -> c10(MARK(first(y0, first(y1, cons(y2, y3))))) MARK(s(first(y0, first(first(y1, y2), y3)))) -> c10(MARK(first(y0, first(first(y1, y2), y3)))) MARK(s(first(y0, first(from(y1), y2)))) -> c10(MARK(first(y0, first(from(y1), y2)))) MARK(s(first(y0, first(0, y1)))) -> c10(MARK(first(y0, first(0, y1)))) MARK(s(first(y0, first(nil, y1)))) -> c10(MARK(first(y0, first(nil, y1)))) MARK(s(first(y0, first(s(y1), y2)))) -> c10(MARK(first(y0, first(s(y1), y2)))) MARK(s(first(y0, first(cons(y1, y2), y3)))) -> c10(MARK(first(y0, first(cons(y1, y2), y3)))) MARK(s(first(first(y0, y1), first(y2, y3)))) -> c10(MARK(first(first(y0, y1), first(y2, y3)))) MARK(s(first(from(y0), first(y1, y2)))) -> c10(MARK(first(from(y0), first(y1, y2)))) MARK(s(first(s(y0), first(y1, y2)))) -> c10(MARK(first(s(y0), first(y1, y2)))) MARK(s(first(y0, first(y1, y2)))) -> c10(MARK(first(y0, first(y1, y2)))) MARK(s(first(cons(y0, y1), first(y2, y3)))) -> c10(MARK(first(cons(y0, y1), first(y2, y3)))) MARK(s(first(y0, from(y1)))) -> c10(MARK(first(y0, from(y1)))) MARK(s(first(y0, from(first(y1, y2))))) -> c10(MARK(first(y0, from(first(y1, y2))))) MARK(s(first(y0, from(from(y1))))) -> c10(MARK(first(y0, from(from(y1))))) MARK(s(first(y0, from(0)))) -> c10(MARK(first(y0, from(0)))) MARK(s(first(y0, from(nil)))) -> c10(MARK(first(y0, from(nil)))) MARK(s(first(y0, from(s(y1))))) -> c10(MARK(first(y0, from(s(y1))))) MARK(s(first(y0, from(cons(y1, y2))))) -> c10(MARK(first(y0, from(cons(y1, y2))))) MARK(s(first(first(y0, y1), from(y2)))) -> c10(MARK(first(first(y0, y1), from(y2)))) MARK(s(first(from(y0), from(y1)))) -> c10(MARK(first(from(y0), from(y1)))) MARK(s(first(s(y0), from(y1)))) -> c10(MARK(first(s(y0), from(y1)))) MARK(s(first(cons(y0, y1), from(y2)))) -> c10(MARK(first(cons(y0, y1), from(y2)))) MARK(s(first(y0, cons(first(y1, y2), y3)))) -> c10(MARK(first(y0, cons(first(y1, y2), y3)))) MARK(s(first(y0, cons(from(y1), y2)))) -> c10(MARK(first(y0, cons(from(y1), y2)))) MARK(s(first(y0, cons(s(y1), y2)))) -> c10(MARK(first(y0, cons(s(y1), y2)))) MARK(s(first(y0, cons(cons(y1, y2), y3)))) -> c10(MARK(first(y0, cons(cons(y1, y2), y3)))) MARK(s(first(first(y0, y1), cons(y2, y3)))) -> c10(MARK(first(first(y0, y1), cons(y2, y3)))) MARK(s(first(from(y0), cons(y1, y2)))) -> c10(MARK(first(from(y0), cons(y1, y2)))) MARK(s(first(s(y0), cons(y1, y2)))) -> c10(MARK(first(s(y0), cons(y1, y2)))) MARK(s(first(cons(y0, y1), cons(y2, y3)))) -> c10(MARK(first(cons(y0, y1), cons(y2, y3)))) MARK(s(first(first(y0, first(y1, y2)), y3))) -> c10(MARK(first(first(y0, first(y1, y2)), y3))) MARK(s(first(first(y0, from(y1)), y2))) -> c10(MARK(first(first(y0, from(y1)), y2))) MARK(s(first(first(y0, 0), y1))) -> c10(MARK(first(first(y0, 0), y1))) MARK(s(first(first(y0, nil), y1))) -> c10(MARK(first(first(y0, nil), y1))) MARK(s(first(first(y0, s(y1)), y2))) -> c10(MARK(first(first(y0, s(y1)), y2))) MARK(s(first(first(y0, cons(y1, y2)), y3))) -> c10(MARK(first(first(y0, cons(y1, y2)), y3))) MARK(s(first(first(first(y0, y1), y2), y3))) -> c10(MARK(first(first(first(y0, y1), y2), y3))) MARK(s(first(first(from(y0), y1), y2))) -> c10(MARK(first(first(from(y0), y1), y2))) MARK(s(first(first(0, y0), y1))) -> c10(MARK(first(first(0, y0), y1))) MARK(s(first(first(nil, y0), y1))) -> c10(MARK(first(first(nil, y0), y1))) MARK(s(first(first(s(y0), y1), y2))) -> c10(MARK(first(first(s(y0), y1), y2))) MARK(s(first(first(cons(y0, y1), y2), y3))) -> c10(MARK(first(first(cons(y0, y1), y2), y3))) MARK(s(first(first(y0, y1), 0))) -> c10(MARK(first(first(y0, y1), 0))) MARK(s(first(first(y0, y1), nil))) -> c10(MARK(first(first(y0, y1), nil))) MARK(s(first(first(y0, y1), s(y2)))) -> c10(MARK(first(first(y0, y1), s(y2)))) MARK(s(first(first(y0, y1), y2))) -> c10(MARK(first(first(y0, y1), y2))) MARK(s(first(from(first(y0, y1)), y2))) -> c10(MARK(first(from(first(y0, y1)), y2))) MARK(s(first(from(from(y0)), y1))) -> c10(MARK(first(from(from(y0)), y1))) MARK(s(first(from(s(y0)), y1))) -> c10(MARK(first(from(s(y0)), y1))) MARK(s(first(from(cons(y0, y1)), y2))) -> c10(MARK(first(from(cons(y0, y1)), y2))) MARK(s(first(from(y0), y1))) -> c10(MARK(first(from(y0), y1))) MARK(s(first(from(y0), 0))) -> c10(MARK(first(from(y0), 0))) MARK(s(first(from(y0), nil))) -> c10(MARK(first(from(y0), nil))) MARK(s(first(from(y0), s(y1)))) -> c10(MARK(first(from(y0), s(y1)))) MARK(s(first(s(first(y0, y1)), y2))) -> c10(MARK(first(s(first(y0, y1)), y2))) MARK(s(first(s(from(y0)), y1))) -> c10(MARK(first(s(from(y0)), y1))) MARK(s(first(s(0), y0))) -> c10(MARK(first(s(0), y0))) MARK(s(first(s(nil), y0))) -> c10(MARK(first(s(nil), y0))) MARK(s(first(s(s(y0)), y1))) -> c10(MARK(first(s(s(y0)), y1))) MARK(s(first(s(cons(y0, y1)), y2))) -> c10(MARK(first(s(cons(y0, y1)), y2))) MARK(s(first(s(y0), y1))) -> c10(MARK(first(s(y0), y1))) MARK(s(first(s(y0), 0))) -> c10(MARK(first(s(y0), 0))) MARK(s(first(s(y0), nil))) -> c10(MARK(first(s(y0), nil))) MARK(s(first(s(y0), s(y1)))) -> c10(MARK(first(s(y0), s(y1)))) MARK(s(first(0, first(y0, y1)))) -> c10(MARK(first(0, first(y0, y1)))) MARK(s(first(nil, first(y0, y1)))) -> c10(MARK(first(nil, first(y0, y1)))) MARK(s(first(0, from(y0)))) -> c10(MARK(first(0, from(y0)))) MARK(s(first(nil, from(y0)))) -> c10(MARK(first(nil, from(y0)))) MARK(s(first(y0, cons(y1, y2)))) -> c10(MARK(first(y0, cons(y1, y2)))) MARK(s(first(0, cons(y0, y1)))) -> c10(MARK(first(0, cons(y0, y1)))) MARK(s(first(nil, cons(y0, y1)))) -> c10(MARK(first(nil, cons(y0, y1)))) MARK(s(first(from(0), y0))) -> c10(MARK(first(from(0), y0))) MARK(s(first(from(nil), y0))) -> c10(MARK(first(from(nil), y0))) MARK(s(first(y0, cons(0, y1)))) -> c10(MARK(first(y0, cons(0, y1)))) MARK(s(first(y0, cons(nil, y1)))) -> c10(MARK(first(y0, cons(nil, y1)))) MARK(s(from(s(y0)))) -> c10(MARK(from(s(y0)))) MARK(s(from(cons(y0, y1)))) -> c10(MARK(from(cons(y0, y1)))) MARK(s(from(first(y0, y1)))) -> c10(MARK(from(first(y0, y1)))) MARK(s(from(first(y0, first(y1, y2))))) -> c10(MARK(from(first(y0, first(y1, y2))))) MARK(s(from(first(y0, from(y1))))) -> c10(MARK(from(first(y0, from(y1))))) MARK(s(from(first(y0, 0)))) -> c10(MARK(from(first(y0, 0)))) MARK(s(from(first(y0, nil)))) -> c10(MARK(from(first(y0, nil)))) MARK(s(from(first(y0, s(y1))))) -> c10(MARK(from(first(y0, s(y1))))) MARK(s(from(first(y0, cons(y1, y2))))) -> c10(MARK(from(first(y0, cons(y1, y2))))) MARK(s(from(first(first(y0, y1), y2)))) -> c10(MARK(from(first(first(y0, y1), y2)))) MARK(s(from(first(from(y0), y1)))) -> c10(MARK(from(first(from(y0), y1)))) MARK(s(from(first(0, y0)))) -> c10(MARK(from(first(0, y0)))) MARK(s(from(first(nil, y0)))) -> c10(MARK(from(first(nil, y0)))) MARK(s(from(first(s(y0), y1)))) -> c10(MARK(from(first(s(y0), y1)))) MARK(s(from(first(cons(y0, y1), y2)))) -> c10(MARK(from(first(cons(y0, y1), y2)))) MARK(s(from(from(y0)))) -> c10(MARK(from(from(y0)))) MARK(s(from(from(first(y0, y1))))) -> c10(MARK(from(from(first(y0, y1))))) MARK(s(from(from(from(y0))))) -> c10(MARK(from(from(from(y0))))) MARK(s(from(from(s(y0))))) -> c10(MARK(from(from(s(y0))))) MARK(s(from(from(cons(y0, y1))))) -> c10(MARK(from(from(cons(y0, y1))))) MARK(s(from(from(0)))) -> c10(MARK(from(from(0)))) MARK(s(from(from(nil)))) -> c10(MARK(from(from(nil)))) K tuples:none Defined Rule Symbols: a__first_2, a__from_1, mark_1 Defined Pair Symbols: MARK_1, A__FIRST_2, A__FROM_1 Compound Symbols: c11_1, c5_1, c6_1, c5_2, c6_2, c1_1, c3_1, c7_2, c7_1, c10_1 ---------------------------------------- (155) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (156) Obligation: Complexity Dependency Tuples Problem Rules: a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(0) -> 0 mark(nil) -> nil mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(x0, from(x1))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), from(x1))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(first(x0, cons(from(z0), x2))) -> c5(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(s(z0), x2))) -> c5(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(first(first(z0, z1), cons(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(first(z0, z1))) MARK(first(from(z0), cons(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(first(s(z0), cons(x1, x2))) -> c5(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(s(z0))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(first(x0, first(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(first(x0, first(z0, z1)))) MARK(first(first(x0, from(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(first(x0, from(z0)))) MARK(first(first(x0, 0), x2)) -> c5(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(first(x0, 0))) MARK(first(first(x0, nil), x2)) -> c5(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(first(x0, nil))) MARK(first(first(x0, s(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(first(x0, s(z0)))) MARK(first(first(x0, cons(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(first(x0, cons(z0, z1)))) MARK(first(first(first(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(first(first(z0, z1), x1))) MARK(first(first(from(z0), x1), x2)) -> c5(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(first(from(z0), x1))) MARK(first(first(0, x1), x2)) -> c5(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(first(0, x1))) MARK(first(first(nil, x1), x2)) -> c5(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(first(nil, x1))) MARK(first(first(s(z0), x1), x2)) -> c5(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(first(s(z0), x1))) MARK(first(first(cons(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(first(cons(z0, z1), x1))) MARK(first(first(x0, x1), 0)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), nil)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), s(z0))) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), x2)) -> c5(MARK(first(x0, x1))) MARK(first(from(first(z0, z1)), x1)) -> c5(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(from(first(z0, z1)))) MARK(first(from(from(z0)), x1)) -> c5(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(first(from(s(z0)), x1)) -> c5(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(from(s(z0)))) MARK(first(from(cons(z0, z1)), x1)) -> c5(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(first(from(x0), x1)) -> c5(MARK(from(x0))) MARK(first(from(x0), 0)) -> c5(MARK(from(x0))) MARK(first(from(x0), nil)) -> c5(MARK(from(x0))) MARK(first(from(x0), s(z0))) -> c5(MARK(from(x0))) MARK(first(s(first(z0, z1)), x1)) -> c5(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(s(first(z0, z1)))) MARK(first(s(from(z0)), x1)) -> c5(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(s(from(z0)))) MARK(first(s(s(z0)), x1)) -> c5(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(s(s(z0)))) MARK(first(s(cons(z0, z1)), x1)) -> c5(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(s(cons(z0, z1)))) MARK(first(s(x0), x1)) -> c5(MARK(s(x0))) MARK(first(s(x0), 0)) -> c5(MARK(s(x0))) MARK(first(s(x0), nil)) -> c5(MARK(s(x0))) MARK(first(s(x0), s(z0))) -> c5(MARK(s(x0))) MARK(first(x0, first(x1, first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(first(x1, first(z0, z1)))) MARK(first(x0, first(x1, from(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(first(x1, from(z0)))) MARK(first(x0, first(x1, 0))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(first(x1, 0))) MARK(first(x0, first(x1, nil))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(first(x1, nil))) MARK(first(x0, first(x1, s(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(first(x1, s(z0)))) MARK(first(x0, first(x1, cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(first(x1, cons(z0, z1)))) MARK(first(x0, first(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(first(first(z0, z1), x2))) MARK(first(x0, first(from(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(first(from(z0), x2))) MARK(first(x0, first(0, x2))) -> c6(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(first(0, x2))) MARK(first(x0, first(nil, x2))) -> c6(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(first(nil, x2))) MARK(first(x0, first(s(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(first(s(z0), x2))) MARK(first(x0, first(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(first(cons(z0, z1), x2))) MARK(first(first(z0, z1), first(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(from(z0), first(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(s(z0), first(x1, x2))) -> c6(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(x0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(nil, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(cons(z0, z1), first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(x0, from(x1))) -> c6(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(first(x0, from(first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(from(first(z0, z1)))) MARK(first(x0, from(from(z0)))) -> c6(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(first(x0, from(s(z0)))) -> c6(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(from(s(z0)))) MARK(first(x0, from(cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(first(first(z0, z1), from(x1))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(first(from(z0), from(x1))) -> c6(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(s(z0), from(x1))) -> c6(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(x0, from(x1))) -> c6(MARK(from(x1))) MARK(first(0, from(x1))) -> c6(MARK(from(x1))) MARK(first(nil, from(x1))) -> c6(MARK(from(x1))) MARK(first(cons(z0, z1), from(x1))) -> c6(MARK(from(x1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(cons(first(z0, z1), x2))) MARK(first(x0, cons(from(z0), x2))) -> c6(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(first(x0, cons(s(z0), x2))) -> c6(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(cons(s(z0), x2))) MARK(first(x0, cons(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(first(first(z0, z1), cons(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(from(z0), cons(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(s(z0), cons(x1, x2))) -> c6(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(x0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(nil, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(first(x0, first(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(first(first(x0, from(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, 0), x2)) -> c6(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(x2)) MARK(first(first(x0, nil), x2)) -> c6(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(x2)) MARK(first(first(x0, s(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, cons(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(first(first(first(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(from(z0), x1), x2)) -> c6(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(0, x1), x2)) -> c6(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(nil, x1), x2)) -> c6(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(s(z0), x1), x2)) -> c6(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(cons(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(x0, x1), s(z0))) -> c6(MARK(s(z0))) MARK(first(first(x0, x1), x2)) -> c6(MARK(x2)) MARK(first(from(first(z0, z1)), x1)) -> c6(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(first(from(from(z0)), x1)) -> c6(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(first(from(0), x1)) -> c6(A__FIRST(a__from(0), mark(x1)), MARK(x1)) MARK(first(from(nil), x1)) -> c6(A__FIRST(a__from(nil), mark(x1)), MARK(x1)) MARK(first(from(s(z0)), x1)) -> c6(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(x1)) MARK(first(from(cons(z0, z1)), x1)) -> c6(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(first(from(x0), s(z0))) -> c6(MARK(s(z0))) MARK(first(from(x0), x1)) -> c6(MARK(x1)) MARK(first(s(first(z0, z1)), x1)) -> c6(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(first(s(from(z0)), x1)) -> c6(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(first(s(0), x1)) -> c6(A__FIRST(s(0), mark(x1)), MARK(x1)) MARK(first(s(nil), x1)) -> c6(A__FIRST(s(nil), mark(x1)), MARK(x1)) MARK(first(s(s(z0)), x1)) -> c6(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(x1)) MARK(first(s(cons(z0, z1)), x1)) -> c6(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(first(s(x0), s(z0))) -> c6(MARK(s(z0))) A__FIRST(s(z0), cons(from(y0), z2)) -> c1(MARK(from(y0))) A__FIRST(s(z0), cons(s(y0), z2)) -> c1(MARK(s(y0))) A__FIRST(s(z0), cons(cons(y0, y1), z2)) -> c1(MARK(cons(y0, y1))) A__FIRST(s(z0), cons(first(y0, 0), z2)) -> c1(MARK(first(y0, 0))) A__FIRST(s(z0), cons(first(y0, nil), z2)) -> c1(MARK(first(y0, nil))) A__FIRST(s(z0), cons(first(y0, s(y1)), z2)) -> c1(MARK(first(y0, s(y1)))) A__FIRST(s(z0), cons(first(cons(y0, y1), y2), z2)) -> c1(MARK(first(cons(y0, y1), y2))) A__FIRST(s(z0), cons(first(0, y0), z2)) -> c1(MARK(first(0, y0))) A__FIRST(s(z0), cons(first(nil, y0), z2)) -> c1(MARK(first(nil, y0))) A__FIRST(s(z0), cons(first(y0, first(y1, first(y2, y3))), z2)) -> c1(MARK(first(y0, first(y1, first(y2, y3))))) A__FIRST(s(z0), cons(first(y0, first(y1, from(y2))), z2)) -> c1(MARK(first(y0, first(y1, from(y2))))) A__FIRST(s(z0), cons(first(y0, first(y1, 0)), z2)) -> c1(MARK(first(y0, first(y1, 0)))) A__FIRST(s(z0), cons(first(y0, first(y1, nil)), z2)) -> c1(MARK(first(y0, first(y1, nil)))) A__FIRST(s(z0), cons(first(y0, first(y1, s(y2))), z2)) -> c1(MARK(first(y0, first(y1, s(y2))))) A__FIRST(s(z0), cons(first(y0, first(y1, cons(y2, y3))), z2)) -> c1(MARK(first(y0, first(y1, cons(y2, y3))))) A__FIRST(s(z0), cons(first(y0, first(first(y1, y2), y3)), z2)) -> c1(MARK(first(y0, first(first(y1, y2), y3)))) A__FIRST(s(z0), cons(first(y0, first(from(y1), y2)), z2)) -> c1(MARK(first(y0, first(from(y1), y2)))) A__FIRST(s(z0), cons(first(y0, first(0, y1)), z2)) -> c1(MARK(first(y0, first(0, y1)))) A__FIRST(s(z0), cons(first(y0, first(nil, y1)), z2)) -> c1(MARK(first(y0, first(nil, y1)))) A__FIRST(s(z0), cons(first(y0, first(s(y1), y2)), z2)) -> c1(MARK(first(y0, first(s(y1), y2)))) A__FIRST(s(z0), cons(first(y0, first(cons(y1, y2), y3)), z2)) -> c1(MARK(first(y0, first(cons(y1, y2), y3)))) A__FIRST(s(z0), cons(first(first(y0, y1), first(y2, y3)), z2)) -> c1(MARK(first(first(y0, y1), first(y2, y3)))) A__FIRST(s(z0), cons(first(from(y0), first(y1, y2)), z2)) -> c1(MARK(first(from(y0), first(y1, y2)))) A__FIRST(s(z0), cons(first(s(y0), first(y1, y2)), z2)) -> c1(MARK(first(s(y0), first(y1, y2)))) A__FIRST(s(z0), cons(first(y0, first(y1, y2)), z2)) -> c1(MARK(first(y0, first(y1, y2)))) A__FIRST(s(z0), cons(first(cons(y0, y1), first(y2, y3)), z2)) -> c1(MARK(first(cons(y0, y1), first(y2, y3)))) A__FIRST(s(z0), cons(first(y0, from(y1)), z2)) -> c1(MARK(first(y0, from(y1)))) A__FIRST(s(z0), cons(first(y0, from(first(y1, y2))), z2)) -> c1(MARK(first(y0, from(first(y1, y2))))) A__FIRST(s(z0), cons(first(y0, from(from(y1))), z2)) -> c1(MARK(first(y0, from(from(y1))))) A__FIRST(s(z0), cons(first(y0, from(0)), z2)) -> c1(MARK(first(y0, from(0)))) A__FIRST(s(z0), cons(first(y0, from(nil)), z2)) -> c1(MARK(first(y0, from(nil)))) A__FIRST(s(z0), cons(first(y0, from(s(y1))), z2)) -> c1(MARK(first(y0, from(s(y1))))) A__FIRST(s(z0), cons(first(y0, from(cons(y1, y2))), z2)) -> c1(MARK(first(y0, from(cons(y1, y2))))) A__FIRST(s(z0), cons(first(first(y0, y1), from(y2)), z2)) -> c1(MARK(first(first(y0, y1), from(y2)))) A__FIRST(s(z0), cons(first(from(y0), from(y1)), z2)) -> c1(MARK(first(from(y0), from(y1)))) A__FIRST(s(z0), cons(first(s(y0), from(y1)), z2)) -> c1(MARK(first(s(y0), from(y1)))) A__FIRST(s(z0), cons(first(cons(y0, y1), from(y2)), z2)) -> c1(MARK(first(cons(y0, y1), from(y2)))) A__FIRST(s(z0), cons(first(y0, cons(first(y1, y2), y3)), z2)) -> c1(MARK(first(y0, cons(first(y1, y2), y3)))) A__FIRST(s(z0), cons(first(y0, cons(from(y1), y2)), z2)) -> c1(MARK(first(y0, cons(from(y1), y2)))) A__FIRST(s(z0), cons(first(y0, cons(0, y1)), z2)) -> c1(MARK(first(y0, cons(0, y1)))) A__FIRST(s(z0), cons(first(y0, cons(nil, y1)), z2)) -> c1(MARK(first(y0, cons(nil, y1)))) A__FIRST(s(z0), cons(first(y0, cons(s(y1), y2)), z2)) -> c1(MARK(first(y0, cons(s(y1), y2)))) A__FIRST(s(z0), cons(first(y0, cons(cons(y1, y2), y3)), z2)) -> c1(MARK(first(y0, cons(cons(y1, y2), y3)))) A__FIRST(s(z0), cons(first(first(y0, y1), cons(y2, y3)), z2)) -> c1(MARK(first(first(y0, y1), cons(y2, y3)))) A__FIRST(s(z0), cons(first(from(y0), cons(y1, y2)), z2)) -> c1(MARK(first(from(y0), cons(y1, y2)))) A__FIRST(s(z0), cons(first(s(y0), cons(y1, y2)), z2)) -> c1(MARK(first(s(y0), cons(y1, y2)))) A__FIRST(s(z0), cons(first(cons(y0, y1), cons(y2, y3)), z2)) -> c1(MARK(first(cons(y0, y1), cons(y2, y3)))) A__FIRST(s(z0), cons(first(first(y0, first(y1, y2)), y3), z2)) -> c1(MARK(first(first(y0, first(y1, y2)), y3))) A__FIRST(s(z0), cons(first(first(y0, from(y1)), y2), z2)) -> c1(MARK(first(first(y0, from(y1)), y2))) A__FIRST(s(z0), cons(first(first(y0, 0), y1), z2)) -> c1(MARK(first(first(y0, 0), y1))) A__FIRST(s(z0), cons(first(first(y0, nil), y1), z2)) -> c1(MARK(first(first(y0, nil), y1))) A__FIRST(s(z0), cons(first(first(y0, s(y1)), y2), z2)) -> c1(MARK(first(first(y0, s(y1)), y2))) A__FIRST(s(z0), cons(first(first(y0, cons(y1, y2)), y3), z2)) -> c1(MARK(first(first(y0, cons(y1, y2)), y3))) A__FIRST(s(z0), cons(first(first(first(y0, y1), y2), y3), z2)) -> c1(MARK(first(first(first(y0, y1), y2), y3))) A__FIRST(s(z0), cons(first(first(from(y0), y1), y2), z2)) -> c1(MARK(first(first(from(y0), y1), y2))) A__FIRST(s(z0), cons(first(first(0, y0), y1), z2)) -> c1(MARK(first(first(0, y0), y1))) A__FIRST(s(z0), cons(first(first(nil, y0), y1), z2)) -> c1(MARK(first(first(nil, y0), y1))) A__FIRST(s(z0), cons(first(first(s(y0), y1), y2), z2)) -> c1(MARK(first(first(s(y0), y1), y2))) A__FIRST(s(z0), cons(first(first(cons(y0, y1), y2), y3), z2)) -> c1(MARK(first(first(cons(y0, y1), y2), y3))) A__FIRST(s(z0), cons(first(first(y0, y1), 0), z2)) -> c1(MARK(first(first(y0, y1), 0))) A__FIRST(s(z0), cons(first(first(y0, y1), nil), z2)) -> c1(MARK(first(first(y0, y1), nil))) A__FIRST(s(z0), cons(first(first(y0, y1), s(y2)), z2)) -> c1(MARK(first(first(y0, y1), s(y2)))) A__FIRST(s(z0), cons(first(first(y0, y1), y2), z2)) -> c1(MARK(first(first(y0, y1), y2))) A__FIRST(s(z0), cons(first(from(first(y0, y1)), y2), z2)) -> c1(MARK(first(from(first(y0, y1)), y2))) A__FIRST(s(z0), cons(first(from(from(y0)), y1), z2)) -> c1(MARK(first(from(from(y0)), y1))) A__FIRST(s(z0), cons(first(from(0), y0), z2)) -> c1(MARK(first(from(0), y0))) A__FIRST(s(z0), cons(first(from(nil), y0), z2)) -> c1(MARK(first(from(nil), y0))) A__FIRST(s(z0), cons(first(from(s(y0)), y1), z2)) -> c1(MARK(first(from(s(y0)), y1))) A__FIRST(s(z0), cons(first(from(cons(y0, y1)), y2), z2)) -> c1(MARK(first(from(cons(y0, y1)), y2))) A__FIRST(s(z0), cons(first(from(y0), y1), z2)) -> c1(MARK(first(from(y0), y1))) A__FIRST(s(z0), cons(first(from(y0), 0), z2)) -> c1(MARK(first(from(y0), 0))) A__FIRST(s(z0), cons(first(from(y0), nil), z2)) -> c1(MARK(first(from(y0), nil))) A__FIRST(s(z0), cons(first(from(y0), s(y1)), z2)) -> c1(MARK(first(from(y0), s(y1)))) A__FIRST(s(z0), cons(first(s(first(y0, y1)), y2), z2)) -> c1(MARK(first(s(first(y0, y1)), y2))) A__FIRST(s(z0), cons(first(s(from(y0)), y1), z2)) -> c1(MARK(first(s(from(y0)), y1))) A__FIRST(s(z0), cons(first(s(0), y0), z2)) -> c1(MARK(first(s(0), y0))) A__FIRST(s(z0), cons(first(s(nil), y0), z2)) -> c1(MARK(first(s(nil), y0))) A__FIRST(s(z0), cons(first(s(s(y0)), y1), z2)) -> c1(MARK(first(s(s(y0)), y1))) A__FIRST(s(z0), cons(first(s(cons(y0, y1)), y2), z2)) -> c1(MARK(first(s(cons(y0, y1)), y2))) A__FIRST(s(z0), cons(first(s(y0), y1), z2)) -> c1(MARK(first(s(y0), y1))) A__FIRST(s(z0), cons(first(s(y0), 0), z2)) -> c1(MARK(first(s(y0), 0))) A__FIRST(s(z0), cons(first(s(y0), nil), z2)) -> c1(MARK(first(s(y0), nil))) A__FIRST(s(z0), cons(first(s(y0), s(y1)), z2)) -> c1(MARK(first(s(y0), s(y1)))) A__FIRST(s(z0), cons(first(0, first(y0, y1)), z2)) -> c1(MARK(first(0, first(y0, y1)))) A__FIRST(s(z0), cons(first(nil, first(y0, y1)), z2)) -> c1(MARK(first(nil, first(y0, y1)))) A__FIRST(s(z0), cons(first(0, from(y0)), z2)) -> c1(MARK(first(0, from(y0)))) A__FIRST(s(z0), cons(first(nil, from(y0)), z2)) -> c1(MARK(first(nil, from(y0)))) A__FIRST(s(z0), cons(first(y0, cons(y1, y2)), z2)) -> c1(MARK(first(y0, cons(y1, y2)))) A__FIRST(s(z0), cons(first(0, cons(y0, y1)), z2)) -> c1(MARK(first(0, cons(y0, y1)))) A__FIRST(s(z0), cons(first(nil, cons(y0, y1)), z2)) -> c1(MARK(first(nil, cons(y0, y1)))) MARK(first(x0, cons(0, x2))) -> c5(MARK(x0)) MARK(first(x0, cons(nil, x2))) -> c5(MARK(x0)) MARK(first(x0, cons(0, x2))) -> c6(MARK(cons(0, x2))) MARK(first(x0, cons(nil, x2))) -> c6(MARK(cons(nil, x2))) A__FROM(from(y0)) -> c3(MARK(from(y0))) A__FROM(s(y0)) -> c3(MARK(s(y0))) A__FROM(cons(y0, y1)) -> c3(MARK(cons(y0, y1))) A__FROM(first(y0, 0)) -> c3(MARK(first(y0, 0))) A__FROM(first(y0, nil)) -> c3(MARK(first(y0, nil))) A__FROM(first(y0, s(y1))) -> c3(MARK(first(y0, s(y1)))) A__FROM(first(cons(y0, y1), y2)) -> c3(MARK(first(cons(y0, y1), y2))) A__FROM(first(0, y0)) -> c3(MARK(first(0, y0))) A__FROM(first(nil, y0)) -> c3(MARK(first(nil, y0))) A__FROM(first(y0, first(y1, first(y2, y3)))) -> c3(MARK(first(y0, first(y1, first(y2, y3))))) A__FROM(first(y0, first(y1, from(y2)))) -> c3(MARK(first(y0, first(y1, from(y2))))) A__FROM(first(y0, first(y1, 0))) -> c3(MARK(first(y0, first(y1, 0)))) A__FROM(first(y0, first(y1, nil))) -> c3(MARK(first(y0, first(y1, nil)))) A__FROM(first(y0, first(y1, s(y2)))) -> c3(MARK(first(y0, first(y1, s(y2))))) A__FROM(first(y0, first(y1, cons(y2, y3)))) -> c3(MARK(first(y0, first(y1, cons(y2, y3))))) A__FROM(first(y0, first(first(y1, y2), y3))) -> c3(MARK(first(y0, first(first(y1, y2), y3)))) A__FROM(first(y0, first(from(y1), y2))) -> c3(MARK(first(y0, first(from(y1), y2)))) A__FROM(first(y0, first(0, y1))) -> c3(MARK(first(y0, first(0, y1)))) A__FROM(first(y0, first(nil, y1))) -> c3(MARK(first(y0, first(nil, y1)))) A__FROM(first(y0, first(s(y1), y2))) -> c3(MARK(first(y0, first(s(y1), y2)))) A__FROM(first(y0, first(cons(y1, y2), y3))) -> c3(MARK(first(y0, first(cons(y1, y2), y3)))) A__FROM(first(first(y0, y1), first(y2, y3))) -> c3(MARK(first(first(y0, y1), first(y2, y3)))) A__FROM(first(from(y0), first(y1, y2))) -> c3(MARK(first(from(y0), first(y1, y2)))) A__FROM(first(s(y0), first(y1, y2))) -> c3(MARK(first(s(y0), first(y1, y2)))) A__FROM(first(y0, first(y1, y2))) -> c3(MARK(first(y0, first(y1, y2)))) A__FROM(first(cons(y0, y1), first(y2, y3))) -> c3(MARK(first(cons(y0, y1), first(y2, y3)))) A__FROM(first(y0, from(y1))) -> c3(MARK(first(y0, from(y1)))) A__FROM(first(y0, from(first(y1, y2)))) -> c3(MARK(first(y0, from(first(y1, y2))))) A__FROM(first(y0, from(from(y1)))) -> c3(MARK(first(y0, from(from(y1))))) A__FROM(first(y0, from(0))) -> c3(MARK(first(y0, from(0)))) A__FROM(first(y0, from(nil))) -> c3(MARK(first(y0, from(nil)))) A__FROM(first(y0, from(s(y1)))) -> c3(MARK(first(y0, from(s(y1))))) A__FROM(first(y0, from(cons(y1, y2)))) -> c3(MARK(first(y0, from(cons(y1, y2))))) A__FROM(first(first(y0, y1), from(y2))) -> c3(MARK(first(first(y0, y1), from(y2)))) A__FROM(first(from(y0), from(y1))) -> c3(MARK(first(from(y0), from(y1)))) A__FROM(first(s(y0), from(y1))) -> c3(MARK(first(s(y0), from(y1)))) A__FROM(first(cons(y0, y1), from(y2))) -> c3(MARK(first(cons(y0, y1), from(y2)))) A__FROM(first(y0, cons(first(y1, y2), y3))) -> c3(MARK(first(y0, cons(first(y1, y2), y3)))) A__FROM(first(y0, cons(from(y1), y2))) -> c3(MARK(first(y0, cons(from(y1), y2)))) A__FROM(first(y0, cons(s(y1), y2))) -> c3(MARK(first(y0, cons(s(y1), y2)))) A__FROM(first(y0, cons(cons(y1, y2), y3))) -> c3(MARK(first(y0, cons(cons(y1, y2), y3)))) A__FROM(first(first(y0, y1), cons(y2, y3))) -> c3(MARK(first(first(y0, y1), cons(y2, y3)))) A__FROM(first(from(y0), cons(y1, y2))) -> c3(MARK(first(from(y0), cons(y1, y2)))) A__FROM(first(s(y0), cons(y1, y2))) -> c3(MARK(first(s(y0), cons(y1, y2)))) A__FROM(first(cons(y0, y1), cons(y2, y3))) -> c3(MARK(first(cons(y0, y1), cons(y2, y3)))) A__FROM(first(first(y0, first(y1, y2)), y3)) -> c3(MARK(first(first(y0, first(y1, y2)), y3))) A__FROM(first(first(y0, from(y1)), y2)) -> c3(MARK(first(first(y0, from(y1)), y2))) A__FROM(first(first(y0, 0), y1)) -> c3(MARK(first(first(y0, 0), y1))) A__FROM(first(first(y0, nil), y1)) -> c3(MARK(first(first(y0, nil), y1))) A__FROM(first(first(y0, s(y1)), y2)) -> c3(MARK(first(first(y0, s(y1)), y2))) A__FROM(first(first(y0, cons(y1, y2)), y3)) -> c3(MARK(first(first(y0, cons(y1, y2)), y3))) A__FROM(first(first(first(y0, y1), y2), y3)) -> c3(MARK(first(first(first(y0, y1), y2), y3))) A__FROM(first(first(from(y0), y1), y2)) -> c3(MARK(first(first(from(y0), y1), y2))) A__FROM(first(first(0, y0), y1)) -> c3(MARK(first(first(0, y0), y1))) A__FROM(first(first(nil, y0), y1)) -> c3(MARK(first(first(nil, y0), y1))) A__FROM(first(first(s(y0), y1), y2)) -> c3(MARK(first(first(s(y0), y1), y2))) A__FROM(first(first(cons(y0, y1), y2), y3)) -> c3(MARK(first(first(cons(y0, y1), y2), y3))) A__FROM(first(first(y0, y1), 0)) -> c3(MARK(first(first(y0, y1), 0))) A__FROM(first(first(y0, y1), nil)) -> c3(MARK(first(first(y0, y1), nil))) A__FROM(first(first(y0, y1), s(y2))) -> c3(MARK(first(first(y0, y1), s(y2)))) A__FROM(first(first(y0, y1), y2)) -> c3(MARK(first(first(y0, y1), y2))) A__FROM(first(from(first(y0, y1)), y2)) -> c3(MARK(first(from(first(y0, y1)), y2))) A__FROM(first(from(from(y0)), y1)) -> c3(MARK(first(from(from(y0)), y1))) A__FROM(first(from(0), y0)) -> c3(MARK(first(from(0), y0))) A__FROM(first(from(nil), y0)) -> c3(MARK(first(from(nil), y0))) A__FROM(first(from(s(y0)), y1)) -> c3(MARK(first(from(s(y0)), y1))) A__FROM(first(from(cons(y0, y1)), y2)) -> c3(MARK(first(from(cons(y0, y1)), y2))) A__FROM(first(from(y0), y1)) -> c3(MARK(first(from(y0), y1))) A__FROM(first(from(y0), 0)) -> c3(MARK(first(from(y0), 0))) A__FROM(first(from(y0), nil)) -> c3(MARK(first(from(y0), nil))) A__FROM(first(from(y0), s(y1))) -> c3(MARK(first(from(y0), s(y1)))) A__FROM(first(s(first(y0, y1)), y2)) -> c3(MARK(first(s(first(y0, y1)), y2))) A__FROM(first(s(from(y0)), y1)) -> c3(MARK(first(s(from(y0)), y1))) A__FROM(first(s(0), y0)) -> c3(MARK(first(s(0), y0))) A__FROM(first(s(nil), y0)) -> c3(MARK(first(s(nil), y0))) A__FROM(first(s(s(y0)), y1)) -> c3(MARK(first(s(s(y0)), y1))) A__FROM(first(s(cons(y0, y1)), y2)) -> c3(MARK(first(s(cons(y0, y1)), y2))) A__FROM(first(s(y0), y1)) -> c3(MARK(first(s(y0), y1))) A__FROM(first(s(y0), 0)) -> c3(MARK(first(s(y0), 0))) A__FROM(first(s(y0), nil)) -> c3(MARK(first(s(y0), nil))) A__FROM(first(s(y0), s(y1))) -> c3(MARK(first(s(y0), s(y1)))) A__FROM(first(0, first(y0, y1))) -> c3(MARK(first(0, first(y0, y1)))) A__FROM(first(nil, first(y0, y1))) -> c3(MARK(first(nil, first(y0, y1)))) A__FROM(first(0, from(y0))) -> c3(MARK(first(0, from(y0)))) A__FROM(first(nil, from(y0))) -> c3(MARK(first(nil, from(y0)))) A__FROM(first(y0, cons(y1, y2))) -> c3(MARK(first(y0, cons(y1, y2)))) A__FROM(first(0, cons(y0, y1))) -> c3(MARK(first(0, cons(y0, y1)))) A__FROM(first(nil, cons(y0, y1))) -> c3(MARK(first(nil, cons(y0, y1)))) A__FROM(first(y0, cons(0, y1))) -> c3(MARK(first(y0, cons(0, y1)))) A__FROM(first(y0, cons(nil, y1))) -> c3(MARK(first(y0, cons(nil, y1)))) MARK(from(s(z0))) -> c7(A__FROM(s(mark(z0))), MARK(s(z0))) MARK(from(cons(z0, z1))) -> c7(A__FROM(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(from(0), x1)) -> c5(A__FIRST(a__from(0), mark(x1))) MARK(first(from(nil), x1)) -> c5(A__FIRST(a__from(nil), mark(x1))) MARK(first(x0, from(0))) -> c6(A__FIRST(mark(x0), a__from(0))) MARK(first(x0, from(nil))) -> c6(A__FIRST(mark(x0), a__from(nil))) MARK(from(first(x0, x1))) -> c7(A__FROM(first(mark(x0), mark(x1))), MARK(first(x0, x1))) MARK(from(first(x0, first(z0, z1)))) -> c7(A__FROM(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) MARK(from(first(x0, from(z0)))) -> c7(A__FROM(a__first(mark(x0), a__from(mark(z0)))), MARK(first(x0, from(z0)))) MARK(from(first(x0, 0))) -> c7(A__FROM(a__first(mark(x0), 0)), MARK(first(x0, 0))) MARK(from(first(x0, nil))) -> c7(A__FROM(a__first(mark(x0), nil)), MARK(first(x0, nil))) MARK(from(first(x0, s(z0)))) -> c7(A__FROM(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) MARK(from(first(x0, cons(z0, z1)))) -> c7(A__FROM(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) MARK(from(first(first(z0, z1), x1))) -> c7(A__FROM(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) MARK(from(first(from(z0), x1))) -> c7(A__FROM(a__first(a__from(mark(z0)), mark(x1))), MARK(first(from(z0), x1))) MARK(from(first(0, x1))) -> c7(A__FROM(a__first(0, mark(x1))), MARK(first(0, x1))) MARK(from(first(nil, x1))) -> c7(A__FROM(a__first(nil, mark(x1))), MARK(first(nil, x1))) MARK(from(first(s(z0), x1))) -> c7(A__FROM(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) MARK(from(first(cons(z0, z1), x1))) -> c7(A__FROM(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) MARK(from(from(x0))) -> c7(A__FROM(cons(mark(mark(x0)), from(s(mark(x0))))), MARK(from(x0))) MARK(from(from(x0))) -> c7(A__FROM(from(mark(x0))), MARK(from(x0))) MARK(from(from(first(z0, z1)))) -> c7(A__FROM(a__from(a__first(mark(z0), mark(z1)))), MARK(from(first(z0, z1)))) MARK(from(from(from(z0)))) -> c7(A__FROM(a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(from(from(s(z0)))) -> c7(A__FROM(a__from(s(mark(z0)))), MARK(from(s(z0)))) MARK(from(from(cons(z0, z1)))) -> c7(A__FROM(a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(from(from(0))) -> c7(A__FROM(a__from(0))) MARK(from(from(nil))) -> c7(A__FROM(a__from(nil))) MARK(s(s(y0))) -> c10(MARK(s(y0))) MARK(s(cons(y0, y1))) -> c10(MARK(cons(y0, y1))) MARK(s(first(y0, 0))) -> c10(MARK(first(y0, 0))) MARK(s(first(y0, nil))) -> c10(MARK(first(y0, nil))) MARK(s(first(y0, s(y1)))) -> c10(MARK(first(y0, s(y1)))) MARK(s(first(cons(y0, y1), y2))) -> c10(MARK(first(cons(y0, y1), y2))) MARK(s(first(0, y0))) -> c10(MARK(first(0, y0))) MARK(s(first(nil, y0))) -> c10(MARK(first(nil, y0))) MARK(s(first(y0, first(y1, first(y2, y3))))) -> c10(MARK(first(y0, first(y1, first(y2, y3))))) MARK(s(first(y0, first(y1, from(y2))))) -> c10(MARK(first(y0, first(y1, from(y2))))) MARK(s(first(y0, first(y1, 0)))) -> c10(MARK(first(y0, first(y1, 0)))) MARK(s(first(y0, first(y1, nil)))) -> c10(MARK(first(y0, first(y1, nil)))) MARK(s(first(y0, first(y1, s(y2))))) -> c10(MARK(first(y0, first(y1, s(y2))))) MARK(s(first(y0, first(y1, cons(y2, y3))))) -> c10(MARK(first(y0, first(y1, cons(y2, y3))))) MARK(s(first(y0, first(first(y1, y2), y3)))) -> c10(MARK(first(y0, first(first(y1, y2), y3)))) MARK(s(first(y0, first(from(y1), y2)))) -> c10(MARK(first(y0, first(from(y1), y2)))) MARK(s(first(y0, first(0, y1)))) -> c10(MARK(first(y0, first(0, y1)))) MARK(s(first(y0, first(nil, y1)))) -> c10(MARK(first(y0, first(nil, y1)))) MARK(s(first(y0, first(s(y1), y2)))) -> c10(MARK(first(y0, first(s(y1), y2)))) MARK(s(first(y0, first(cons(y1, y2), y3)))) -> c10(MARK(first(y0, first(cons(y1, y2), y3)))) MARK(s(first(first(y0, y1), first(y2, y3)))) -> c10(MARK(first(first(y0, y1), first(y2, y3)))) MARK(s(first(from(y0), first(y1, y2)))) -> c10(MARK(first(from(y0), first(y1, y2)))) MARK(s(first(s(y0), first(y1, y2)))) -> c10(MARK(first(s(y0), first(y1, y2)))) MARK(s(first(y0, first(y1, y2)))) -> c10(MARK(first(y0, first(y1, y2)))) MARK(s(first(cons(y0, y1), first(y2, y3)))) -> c10(MARK(first(cons(y0, y1), first(y2, y3)))) MARK(s(first(y0, from(y1)))) -> c10(MARK(first(y0, from(y1)))) MARK(s(first(y0, from(first(y1, y2))))) -> c10(MARK(first(y0, from(first(y1, y2))))) MARK(s(first(y0, from(from(y1))))) -> c10(MARK(first(y0, from(from(y1))))) MARK(s(first(y0, from(0)))) -> c10(MARK(first(y0, from(0)))) MARK(s(first(y0, from(nil)))) -> c10(MARK(first(y0, from(nil)))) MARK(s(first(y0, from(s(y1))))) -> c10(MARK(first(y0, from(s(y1))))) MARK(s(first(y0, from(cons(y1, y2))))) -> c10(MARK(first(y0, from(cons(y1, y2))))) MARK(s(first(first(y0, y1), from(y2)))) -> c10(MARK(first(first(y0, y1), from(y2)))) MARK(s(first(from(y0), from(y1)))) -> c10(MARK(first(from(y0), from(y1)))) MARK(s(first(s(y0), from(y1)))) -> c10(MARK(first(s(y0), from(y1)))) MARK(s(first(cons(y0, y1), from(y2)))) -> c10(MARK(first(cons(y0, y1), from(y2)))) MARK(s(first(y0, cons(first(y1, y2), y3)))) -> c10(MARK(first(y0, cons(first(y1, y2), y3)))) MARK(s(first(y0, cons(from(y1), y2)))) -> c10(MARK(first(y0, cons(from(y1), y2)))) MARK(s(first(y0, cons(s(y1), y2)))) -> c10(MARK(first(y0, cons(s(y1), y2)))) MARK(s(first(y0, cons(cons(y1, y2), y3)))) -> c10(MARK(first(y0, cons(cons(y1, y2), y3)))) MARK(s(first(first(y0, y1), cons(y2, y3)))) -> c10(MARK(first(first(y0, y1), cons(y2, y3)))) MARK(s(first(from(y0), cons(y1, y2)))) -> c10(MARK(first(from(y0), cons(y1, y2)))) MARK(s(first(s(y0), cons(y1, y2)))) -> c10(MARK(first(s(y0), cons(y1, y2)))) MARK(s(first(cons(y0, y1), cons(y2, y3)))) -> c10(MARK(first(cons(y0, y1), cons(y2, y3)))) MARK(s(first(first(y0, first(y1, y2)), y3))) -> c10(MARK(first(first(y0, first(y1, y2)), y3))) MARK(s(first(first(y0, from(y1)), y2))) -> c10(MARK(first(first(y0, from(y1)), y2))) MARK(s(first(first(y0, 0), y1))) -> c10(MARK(first(first(y0, 0), y1))) MARK(s(first(first(y0, nil), y1))) -> c10(MARK(first(first(y0, nil), y1))) MARK(s(first(first(y0, s(y1)), y2))) -> c10(MARK(first(first(y0, s(y1)), y2))) MARK(s(first(first(y0, cons(y1, y2)), y3))) -> c10(MARK(first(first(y0, cons(y1, y2)), y3))) MARK(s(first(first(first(y0, y1), y2), y3))) -> c10(MARK(first(first(first(y0, y1), y2), y3))) MARK(s(first(first(from(y0), y1), y2))) -> c10(MARK(first(first(from(y0), y1), y2))) MARK(s(first(first(0, y0), y1))) -> c10(MARK(first(first(0, y0), y1))) MARK(s(first(first(nil, y0), y1))) -> c10(MARK(first(first(nil, y0), y1))) MARK(s(first(first(s(y0), y1), y2))) -> c10(MARK(first(first(s(y0), y1), y2))) MARK(s(first(first(cons(y0, y1), y2), y3))) -> c10(MARK(first(first(cons(y0, y1), y2), y3))) MARK(s(first(first(y0, y1), 0))) -> c10(MARK(first(first(y0, y1), 0))) MARK(s(first(first(y0, y1), nil))) -> c10(MARK(first(first(y0, y1), nil))) MARK(s(first(first(y0, y1), s(y2)))) -> c10(MARK(first(first(y0, y1), s(y2)))) MARK(s(first(first(y0, y1), y2))) -> c10(MARK(first(first(y0, y1), y2))) MARK(s(first(from(first(y0, y1)), y2))) -> c10(MARK(first(from(first(y0, y1)), y2))) MARK(s(first(from(from(y0)), y1))) -> c10(MARK(first(from(from(y0)), y1))) MARK(s(first(from(s(y0)), y1))) -> c10(MARK(first(from(s(y0)), y1))) MARK(s(first(from(cons(y0, y1)), y2))) -> c10(MARK(first(from(cons(y0, y1)), y2))) MARK(s(first(from(y0), y1))) -> c10(MARK(first(from(y0), y1))) MARK(s(first(from(y0), 0))) -> c10(MARK(first(from(y0), 0))) MARK(s(first(from(y0), nil))) -> c10(MARK(first(from(y0), nil))) MARK(s(first(from(y0), s(y1)))) -> c10(MARK(first(from(y0), s(y1)))) MARK(s(first(s(first(y0, y1)), y2))) -> c10(MARK(first(s(first(y0, y1)), y2))) MARK(s(first(s(from(y0)), y1))) -> c10(MARK(first(s(from(y0)), y1))) MARK(s(first(s(0), y0))) -> c10(MARK(first(s(0), y0))) MARK(s(first(s(nil), y0))) -> c10(MARK(first(s(nil), y0))) MARK(s(first(s(s(y0)), y1))) -> c10(MARK(first(s(s(y0)), y1))) MARK(s(first(s(cons(y0, y1)), y2))) -> c10(MARK(first(s(cons(y0, y1)), y2))) MARK(s(first(s(y0), y1))) -> c10(MARK(first(s(y0), y1))) MARK(s(first(s(y0), 0))) -> c10(MARK(first(s(y0), 0))) MARK(s(first(s(y0), nil))) -> c10(MARK(first(s(y0), nil))) MARK(s(first(s(y0), s(y1)))) -> c10(MARK(first(s(y0), s(y1)))) MARK(s(first(0, first(y0, y1)))) -> c10(MARK(first(0, first(y0, y1)))) MARK(s(first(nil, first(y0, y1)))) -> c10(MARK(first(nil, first(y0, y1)))) MARK(s(first(0, from(y0)))) -> c10(MARK(first(0, from(y0)))) MARK(s(first(nil, from(y0)))) -> c10(MARK(first(nil, from(y0)))) MARK(s(first(y0, cons(y1, y2)))) -> c10(MARK(first(y0, cons(y1, y2)))) MARK(s(first(0, cons(y0, y1)))) -> c10(MARK(first(0, cons(y0, y1)))) MARK(s(first(nil, cons(y0, y1)))) -> c10(MARK(first(nil, cons(y0, y1)))) MARK(s(first(from(0), y0))) -> c10(MARK(first(from(0), y0))) MARK(s(first(from(nil), y0))) -> c10(MARK(first(from(nil), y0))) MARK(s(first(y0, cons(0, y1)))) -> c10(MARK(first(y0, cons(0, y1)))) MARK(s(first(y0, cons(nil, y1)))) -> c10(MARK(first(y0, cons(nil, y1)))) MARK(s(from(s(y0)))) -> c10(MARK(from(s(y0)))) MARK(s(from(cons(y0, y1)))) -> c10(MARK(from(cons(y0, y1)))) MARK(s(from(first(y0, y1)))) -> c10(MARK(from(first(y0, y1)))) MARK(s(from(first(y0, first(y1, y2))))) -> c10(MARK(from(first(y0, first(y1, y2))))) MARK(s(from(first(y0, from(y1))))) -> c10(MARK(from(first(y0, from(y1))))) MARK(s(from(first(y0, 0)))) -> c10(MARK(from(first(y0, 0)))) MARK(s(from(first(y0, nil)))) -> c10(MARK(from(first(y0, nil)))) MARK(s(from(first(y0, s(y1))))) -> c10(MARK(from(first(y0, s(y1))))) MARK(s(from(first(y0, cons(y1, y2))))) -> c10(MARK(from(first(y0, cons(y1, y2))))) MARK(s(from(first(first(y0, y1), y2)))) -> c10(MARK(from(first(first(y0, y1), y2)))) MARK(s(from(first(from(y0), y1)))) -> c10(MARK(from(first(from(y0), y1)))) MARK(s(from(first(0, y0)))) -> c10(MARK(from(first(0, y0)))) MARK(s(from(first(nil, y0)))) -> c10(MARK(from(first(nil, y0)))) MARK(s(from(first(s(y0), y1)))) -> c10(MARK(from(first(s(y0), y1)))) MARK(s(from(first(cons(y0, y1), y2)))) -> c10(MARK(from(first(cons(y0, y1), y2)))) MARK(s(from(from(y0)))) -> c10(MARK(from(from(y0)))) MARK(s(from(from(first(y0, y1))))) -> c10(MARK(from(from(first(y0, y1))))) MARK(s(from(from(from(y0))))) -> c10(MARK(from(from(from(y0))))) MARK(s(from(from(s(y0))))) -> c10(MARK(from(from(s(y0))))) MARK(s(from(from(cons(y0, y1))))) -> c10(MARK(from(from(cons(y0, y1))))) MARK(s(from(from(0)))) -> c10(MARK(from(from(0)))) MARK(s(from(from(nil)))) -> c10(MARK(from(from(nil)))) MARK(first(s(0), x1)) -> c5(A__FIRST(s(0), mark(x1))) MARK(first(s(nil), x1)) -> c5(A__FIRST(s(nil), mark(x1))) S tuples: MARK(cons(z0, z1)) -> c11(MARK(z0)) MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(x0, from(x1))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), from(x1))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(first(x0, cons(from(z0), x2))) -> c5(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(s(z0), x2))) -> c5(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(first(first(z0, z1), cons(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(first(z0, z1))) MARK(first(from(z0), cons(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(first(s(z0), cons(x1, x2))) -> c5(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(s(z0))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(first(x0, first(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(first(x0, first(z0, z1)))) MARK(first(first(x0, from(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(first(x0, from(z0)))) MARK(first(first(x0, 0), x2)) -> c5(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(first(x0, 0))) MARK(first(first(x0, nil), x2)) -> c5(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(first(x0, nil))) MARK(first(first(x0, s(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(first(x0, s(z0)))) MARK(first(first(x0, cons(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(first(x0, cons(z0, z1)))) MARK(first(first(first(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(first(first(z0, z1), x1))) MARK(first(first(from(z0), x1), x2)) -> c5(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(first(from(z0), x1))) MARK(first(first(0, x1), x2)) -> c5(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(first(0, x1))) MARK(first(first(nil, x1), x2)) -> c5(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(first(nil, x1))) MARK(first(first(s(z0), x1), x2)) -> c5(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(first(s(z0), x1))) MARK(first(first(cons(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(first(cons(z0, z1), x1))) MARK(first(first(x0, x1), 0)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), nil)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), s(z0))) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), x2)) -> c5(MARK(first(x0, x1))) MARK(first(from(first(z0, z1)), x1)) -> c5(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(from(first(z0, z1)))) MARK(first(from(from(z0)), x1)) -> c5(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(first(from(s(z0)), x1)) -> c5(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(from(s(z0)))) MARK(first(from(cons(z0, z1)), x1)) -> c5(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(first(from(x0), x1)) -> c5(MARK(from(x0))) MARK(first(from(x0), 0)) -> c5(MARK(from(x0))) MARK(first(from(x0), nil)) -> c5(MARK(from(x0))) MARK(first(from(x0), s(z0))) -> c5(MARK(from(x0))) MARK(first(s(first(z0, z1)), x1)) -> c5(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(s(first(z0, z1)))) MARK(first(s(from(z0)), x1)) -> c5(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(s(from(z0)))) MARK(first(s(s(z0)), x1)) -> c5(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(s(s(z0)))) MARK(first(s(cons(z0, z1)), x1)) -> c5(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(s(cons(z0, z1)))) MARK(first(s(x0), x1)) -> c5(MARK(s(x0))) MARK(first(s(x0), 0)) -> c5(MARK(s(x0))) MARK(first(s(x0), nil)) -> c5(MARK(s(x0))) MARK(first(s(x0), s(z0))) -> c5(MARK(s(x0))) MARK(first(x0, first(x1, first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(first(x1, first(z0, z1)))) MARK(first(x0, first(x1, from(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(first(x1, from(z0)))) MARK(first(x0, first(x1, 0))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(first(x1, 0))) MARK(first(x0, first(x1, nil))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(first(x1, nil))) MARK(first(x0, first(x1, s(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(first(x1, s(z0)))) MARK(first(x0, first(x1, cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(first(x1, cons(z0, z1)))) MARK(first(x0, first(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(first(first(z0, z1), x2))) MARK(first(x0, first(from(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(first(from(z0), x2))) MARK(first(x0, first(0, x2))) -> c6(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(first(0, x2))) MARK(first(x0, first(nil, x2))) -> c6(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(first(nil, x2))) MARK(first(x0, first(s(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(first(s(z0), x2))) MARK(first(x0, first(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(first(cons(z0, z1), x2))) MARK(first(first(z0, z1), first(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(from(z0), first(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(s(z0), first(x1, x2))) -> c6(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(x0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(nil, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(cons(z0, z1), first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(x0, from(x1))) -> c6(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(first(x0, from(first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(from(first(z0, z1)))) MARK(first(x0, from(from(z0)))) -> c6(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(first(x0, from(s(z0)))) -> c6(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(from(s(z0)))) MARK(first(x0, from(cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(first(first(z0, z1), from(x1))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(first(from(z0), from(x1))) -> c6(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(s(z0), from(x1))) -> c6(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(x0, from(x1))) -> c6(MARK(from(x1))) MARK(first(0, from(x1))) -> c6(MARK(from(x1))) MARK(first(nil, from(x1))) -> c6(MARK(from(x1))) MARK(first(cons(z0, z1), from(x1))) -> c6(MARK(from(x1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(cons(first(z0, z1), x2))) MARK(first(x0, cons(from(z0), x2))) -> c6(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(first(x0, cons(s(z0), x2))) -> c6(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(cons(s(z0), x2))) MARK(first(x0, cons(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(first(first(z0, z1), cons(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(from(z0), cons(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(s(z0), cons(x1, x2))) -> c6(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(x0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(nil, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(first(x0, first(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(first(first(x0, from(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, 0), x2)) -> c6(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(x2)) MARK(first(first(x0, nil), x2)) -> c6(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(x2)) MARK(first(first(x0, s(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, cons(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(first(first(first(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(from(z0), x1), x2)) -> c6(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(0, x1), x2)) -> c6(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(nil, x1), x2)) -> c6(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(s(z0), x1), x2)) -> c6(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(cons(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(x0, x1), s(z0))) -> c6(MARK(s(z0))) MARK(first(first(x0, x1), x2)) -> c6(MARK(x2)) MARK(first(from(first(z0, z1)), x1)) -> c6(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(first(from(from(z0)), x1)) -> c6(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(first(from(0), x1)) -> c6(A__FIRST(a__from(0), mark(x1)), MARK(x1)) MARK(first(from(nil), x1)) -> c6(A__FIRST(a__from(nil), mark(x1)), MARK(x1)) MARK(first(from(s(z0)), x1)) -> c6(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(x1)) MARK(first(from(cons(z0, z1)), x1)) -> c6(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(first(from(x0), s(z0))) -> c6(MARK(s(z0))) MARK(first(from(x0), x1)) -> c6(MARK(x1)) MARK(first(s(first(z0, z1)), x1)) -> c6(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(first(s(from(z0)), x1)) -> c6(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(first(s(0), x1)) -> c6(A__FIRST(s(0), mark(x1)), MARK(x1)) MARK(first(s(nil), x1)) -> c6(A__FIRST(s(nil), mark(x1)), MARK(x1)) MARK(first(s(s(z0)), x1)) -> c6(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(x1)) MARK(first(s(cons(z0, z1)), x1)) -> c6(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(first(s(x0), s(z0))) -> c6(MARK(s(z0))) A__FIRST(s(z0), cons(from(y0), z2)) -> c1(MARK(from(y0))) A__FIRST(s(z0), cons(s(y0), z2)) -> c1(MARK(s(y0))) A__FIRST(s(z0), cons(cons(y0, y1), z2)) -> c1(MARK(cons(y0, y1))) A__FIRST(s(z0), cons(first(y0, 0), z2)) -> c1(MARK(first(y0, 0))) A__FIRST(s(z0), cons(first(y0, nil), z2)) -> c1(MARK(first(y0, nil))) A__FIRST(s(z0), cons(first(y0, s(y1)), z2)) -> c1(MARK(first(y0, s(y1)))) A__FIRST(s(z0), cons(first(cons(y0, y1), y2), z2)) -> c1(MARK(first(cons(y0, y1), y2))) A__FIRST(s(z0), cons(first(0, y0), z2)) -> c1(MARK(first(0, y0))) A__FIRST(s(z0), cons(first(nil, y0), z2)) -> c1(MARK(first(nil, y0))) A__FIRST(s(z0), cons(first(y0, first(y1, first(y2, y3))), z2)) -> c1(MARK(first(y0, first(y1, first(y2, y3))))) A__FIRST(s(z0), cons(first(y0, first(y1, from(y2))), z2)) -> c1(MARK(first(y0, first(y1, from(y2))))) A__FIRST(s(z0), cons(first(y0, first(y1, 0)), z2)) -> c1(MARK(first(y0, first(y1, 0)))) A__FIRST(s(z0), cons(first(y0, first(y1, nil)), z2)) -> c1(MARK(first(y0, first(y1, nil)))) A__FIRST(s(z0), cons(first(y0, first(y1, s(y2))), z2)) -> c1(MARK(first(y0, first(y1, s(y2))))) A__FIRST(s(z0), cons(first(y0, first(y1, cons(y2, y3))), z2)) -> c1(MARK(first(y0, first(y1, cons(y2, y3))))) A__FIRST(s(z0), cons(first(y0, first(first(y1, y2), y3)), z2)) -> c1(MARK(first(y0, first(first(y1, y2), y3)))) A__FIRST(s(z0), cons(first(y0, first(from(y1), y2)), z2)) -> c1(MARK(first(y0, first(from(y1), y2)))) A__FIRST(s(z0), cons(first(y0, first(0, y1)), z2)) -> c1(MARK(first(y0, first(0, y1)))) A__FIRST(s(z0), cons(first(y0, first(nil, y1)), z2)) -> c1(MARK(first(y0, first(nil, y1)))) A__FIRST(s(z0), cons(first(y0, first(s(y1), y2)), z2)) -> c1(MARK(first(y0, first(s(y1), y2)))) A__FIRST(s(z0), cons(first(y0, first(cons(y1, y2), y3)), z2)) -> c1(MARK(first(y0, first(cons(y1, y2), y3)))) A__FIRST(s(z0), cons(first(first(y0, y1), first(y2, y3)), z2)) -> c1(MARK(first(first(y0, y1), first(y2, y3)))) A__FIRST(s(z0), cons(first(from(y0), first(y1, y2)), z2)) -> c1(MARK(first(from(y0), first(y1, y2)))) A__FIRST(s(z0), cons(first(s(y0), first(y1, y2)), z2)) -> c1(MARK(first(s(y0), first(y1, y2)))) A__FIRST(s(z0), cons(first(y0, first(y1, y2)), z2)) -> c1(MARK(first(y0, first(y1, y2)))) A__FIRST(s(z0), cons(first(cons(y0, y1), first(y2, y3)), z2)) -> c1(MARK(first(cons(y0, y1), first(y2, y3)))) A__FIRST(s(z0), cons(first(y0, from(y1)), z2)) -> c1(MARK(first(y0, from(y1)))) A__FIRST(s(z0), cons(first(y0, from(first(y1, y2))), z2)) -> c1(MARK(first(y0, from(first(y1, y2))))) A__FIRST(s(z0), cons(first(y0, from(from(y1))), z2)) -> c1(MARK(first(y0, from(from(y1))))) A__FIRST(s(z0), cons(first(y0, from(0)), z2)) -> c1(MARK(first(y0, from(0)))) A__FIRST(s(z0), cons(first(y0, from(nil)), z2)) -> c1(MARK(first(y0, from(nil)))) A__FIRST(s(z0), cons(first(y0, from(s(y1))), z2)) -> c1(MARK(first(y0, from(s(y1))))) A__FIRST(s(z0), cons(first(y0, from(cons(y1, y2))), z2)) -> c1(MARK(first(y0, from(cons(y1, y2))))) A__FIRST(s(z0), cons(first(first(y0, y1), from(y2)), z2)) -> c1(MARK(first(first(y0, y1), from(y2)))) A__FIRST(s(z0), cons(first(from(y0), from(y1)), z2)) -> c1(MARK(first(from(y0), from(y1)))) A__FIRST(s(z0), cons(first(s(y0), from(y1)), z2)) -> c1(MARK(first(s(y0), from(y1)))) A__FIRST(s(z0), cons(first(cons(y0, y1), from(y2)), z2)) -> c1(MARK(first(cons(y0, y1), from(y2)))) A__FIRST(s(z0), cons(first(y0, cons(first(y1, y2), y3)), z2)) -> c1(MARK(first(y0, cons(first(y1, y2), y3)))) A__FIRST(s(z0), cons(first(y0, cons(from(y1), y2)), z2)) -> c1(MARK(first(y0, cons(from(y1), y2)))) A__FIRST(s(z0), cons(first(y0, cons(0, y1)), z2)) -> c1(MARK(first(y0, cons(0, y1)))) A__FIRST(s(z0), cons(first(y0, cons(nil, y1)), z2)) -> c1(MARK(first(y0, cons(nil, y1)))) A__FIRST(s(z0), cons(first(y0, cons(s(y1), y2)), z2)) -> c1(MARK(first(y0, cons(s(y1), y2)))) A__FIRST(s(z0), cons(first(y0, cons(cons(y1, y2), y3)), z2)) -> c1(MARK(first(y0, cons(cons(y1, y2), y3)))) A__FIRST(s(z0), cons(first(first(y0, y1), cons(y2, y3)), z2)) -> c1(MARK(first(first(y0, y1), cons(y2, y3)))) A__FIRST(s(z0), cons(first(from(y0), cons(y1, y2)), z2)) -> c1(MARK(first(from(y0), cons(y1, y2)))) A__FIRST(s(z0), cons(first(s(y0), cons(y1, y2)), z2)) -> c1(MARK(first(s(y0), cons(y1, y2)))) A__FIRST(s(z0), cons(first(cons(y0, y1), cons(y2, y3)), z2)) -> c1(MARK(first(cons(y0, y1), cons(y2, y3)))) A__FIRST(s(z0), cons(first(first(y0, first(y1, y2)), y3), z2)) -> c1(MARK(first(first(y0, first(y1, y2)), y3))) A__FIRST(s(z0), cons(first(first(y0, from(y1)), y2), z2)) -> c1(MARK(first(first(y0, from(y1)), y2))) A__FIRST(s(z0), cons(first(first(y0, 0), y1), z2)) -> c1(MARK(first(first(y0, 0), y1))) A__FIRST(s(z0), cons(first(first(y0, nil), y1), z2)) -> c1(MARK(first(first(y0, nil), y1))) A__FIRST(s(z0), cons(first(first(y0, s(y1)), y2), z2)) -> c1(MARK(first(first(y0, s(y1)), y2))) A__FIRST(s(z0), cons(first(first(y0, cons(y1, y2)), y3), z2)) -> c1(MARK(first(first(y0, cons(y1, y2)), y3))) A__FIRST(s(z0), cons(first(first(first(y0, y1), y2), y3), z2)) -> c1(MARK(first(first(first(y0, y1), y2), y3))) A__FIRST(s(z0), cons(first(first(from(y0), y1), y2), z2)) -> c1(MARK(first(first(from(y0), y1), y2))) A__FIRST(s(z0), cons(first(first(0, y0), y1), z2)) -> c1(MARK(first(first(0, y0), y1))) A__FIRST(s(z0), cons(first(first(nil, y0), y1), z2)) -> c1(MARK(first(first(nil, y0), y1))) A__FIRST(s(z0), cons(first(first(s(y0), y1), y2), z2)) -> c1(MARK(first(first(s(y0), y1), y2))) A__FIRST(s(z0), cons(first(first(cons(y0, y1), y2), y3), z2)) -> c1(MARK(first(first(cons(y0, y1), y2), y3))) A__FIRST(s(z0), cons(first(first(y0, y1), 0), z2)) -> c1(MARK(first(first(y0, y1), 0))) A__FIRST(s(z0), cons(first(first(y0, y1), nil), z2)) -> c1(MARK(first(first(y0, y1), nil))) A__FIRST(s(z0), cons(first(first(y0, y1), s(y2)), z2)) -> c1(MARK(first(first(y0, y1), s(y2)))) A__FIRST(s(z0), cons(first(first(y0, y1), y2), z2)) -> c1(MARK(first(first(y0, y1), y2))) A__FIRST(s(z0), cons(first(from(first(y0, y1)), y2), z2)) -> c1(MARK(first(from(first(y0, y1)), y2))) A__FIRST(s(z0), cons(first(from(from(y0)), y1), z2)) -> c1(MARK(first(from(from(y0)), y1))) A__FIRST(s(z0), cons(first(from(0), y0), z2)) -> c1(MARK(first(from(0), y0))) A__FIRST(s(z0), cons(first(from(nil), y0), z2)) -> c1(MARK(first(from(nil), y0))) A__FIRST(s(z0), cons(first(from(s(y0)), y1), z2)) -> c1(MARK(first(from(s(y0)), y1))) A__FIRST(s(z0), cons(first(from(cons(y0, y1)), y2), z2)) -> c1(MARK(first(from(cons(y0, y1)), y2))) A__FIRST(s(z0), cons(first(from(y0), y1), z2)) -> c1(MARK(first(from(y0), y1))) A__FIRST(s(z0), cons(first(from(y0), 0), z2)) -> c1(MARK(first(from(y0), 0))) A__FIRST(s(z0), cons(first(from(y0), nil), z2)) -> c1(MARK(first(from(y0), nil))) A__FIRST(s(z0), cons(first(from(y0), s(y1)), z2)) -> c1(MARK(first(from(y0), s(y1)))) A__FIRST(s(z0), cons(first(s(first(y0, y1)), y2), z2)) -> c1(MARK(first(s(first(y0, y1)), y2))) A__FIRST(s(z0), cons(first(s(from(y0)), y1), z2)) -> c1(MARK(first(s(from(y0)), y1))) A__FIRST(s(z0), cons(first(s(0), y0), z2)) -> c1(MARK(first(s(0), y0))) A__FIRST(s(z0), cons(first(s(nil), y0), z2)) -> c1(MARK(first(s(nil), y0))) A__FIRST(s(z0), cons(first(s(s(y0)), y1), z2)) -> c1(MARK(first(s(s(y0)), y1))) A__FIRST(s(z0), cons(first(s(cons(y0, y1)), y2), z2)) -> c1(MARK(first(s(cons(y0, y1)), y2))) A__FIRST(s(z0), cons(first(s(y0), y1), z2)) -> c1(MARK(first(s(y0), y1))) A__FIRST(s(z0), cons(first(s(y0), 0), z2)) -> c1(MARK(first(s(y0), 0))) A__FIRST(s(z0), cons(first(s(y0), nil), z2)) -> c1(MARK(first(s(y0), nil))) A__FIRST(s(z0), cons(first(s(y0), s(y1)), z2)) -> c1(MARK(first(s(y0), s(y1)))) A__FIRST(s(z0), cons(first(0, first(y0, y1)), z2)) -> c1(MARK(first(0, first(y0, y1)))) A__FIRST(s(z0), cons(first(nil, first(y0, y1)), z2)) -> c1(MARK(first(nil, first(y0, y1)))) A__FIRST(s(z0), cons(first(0, from(y0)), z2)) -> c1(MARK(first(0, from(y0)))) A__FIRST(s(z0), cons(first(nil, from(y0)), z2)) -> c1(MARK(first(nil, from(y0)))) A__FIRST(s(z0), cons(first(y0, cons(y1, y2)), z2)) -> c1(MARK(first(y0, cons(y1, y2)))) A__FIRST(s(z0), cons(first(0, cons(y0, y1)), z2)) -> c1(MARK(first(0, cons(y0, y1)))) A__FIRST(s(z0), cons(first(nil, cons(y0, y1)), z2)) -> c1(MARK(first(nil, cons(y0, y1)))) MARK(first(x0, cons(0, x2))) -> c5(MARK(x0)) MARK(first(x0, cons(nil, x2))) -> c5(MARK(x0)) MARK(first(x0, cons(0, x2))) -> c6(MARK(cons(0, x2))) MARK(first(x0, cons(nil, x2))) -> c6(MARK(cons(nil, x2))) A__FROM(from(y0)) -> c3(MARK(from(y0))) A__FROM(s(y0)) -> c3(MARK(s(y0))) A__FROM(cons(y0, y1)) -> c3(MARK(cons(y0, y1))) A__FROM(first(y0, 0)) -> c3(MARK(first(y0, 0))) A__FROM(first(y0, nil)) -> c3(MARK(first(y0, nil))) A__FROM(first(y0, s(y1))) -> c3(MARK(first(y0, s(y1)))) A__FROM(first(cons(y0, y1), y2)) -> c3(MARK(first(cons(y0, y1), y2))) A__FROM(first(0, y0)) -> c3(MARK(first(0, y0))) A__FROM(first(nil, y0)) -> c3(MARK(first(nil, y0))) A__FROM(first(y0, first(y1, first(y2, y3)))) -> c3(MARK(first(y0, first(y1, first(y2, y3))))) A__FROM(first(y0, first(y1, from(y2)))) -> c3(MARK(first(y0, first(y1, from(y2))))) A__FROM(first(y0, first(y1, 0))) -> c3(MARK(first(y0, first(y1, 0)))) A__FROM(first(y0, first(y1, nil))) -> c3(MARK(first(y0, first(y1, nil)))) A__FROM(first(y0, first(y1, s(y2)))) -> c3(MARK(first(y0, first(y1, s(y2))))) A__FROM(first(y0, first(y1, cons(y2, y3)))) -> c3(MARK(first(y0, first(y1, cons(y2, y3))))) A__FROM(first(y0, first(first(y1, y2), y3))) -> c3(MARK(first(y0, first(first(y1, y2), y3)))) A__FROM(first(y0, first(from(y1), y2))) -> c3(MARK(first(y0, first(from(y1), y2)))) A__FROM(first(y0, first(0, y1))) -> c3(MARK(first(y0, first(0, y1)))) A__FROM(first(y0, first(nil, y1))) -> c3(MARK(first(y0, first(nil, y1)))) A__FROM(first(y0, first(s(y1), y2))) -> c3(MARK(first(y0, first(s(y1), y2)))) A__FROM(first(y0, first(cons(y1, y2), y3))) -> c3(MARK(first(y0, first(cons(y1, y2), y3)))) A__FROM(first(first(y0, y1), first(y2, y3))) -> c3(MARK(first(first(y0, y1), first(y2, y3)))) A__FROM(first(from(y0), first(y1, y2))) -> c3(MARK(first(from(y0), first(y1, y2)))) A__FROM(first(s(y0), first(y1, y2))) -> c3(MARK(first(s(y0), first(y1, y2)))) A__FROM(first(y0, first(y1, y2))) -> c3(MARK(first(y0, first(y1, y2)))) A__FROM(first(cons(y0, y1), first(y2, y3))) -> c3(MARK(first(cons(y0, y1), first(y2, y3)))) A__FROM(first(y0, from(y1))) -> c3(MARK(first(y0, from(y1)))) A__FROM(first(y0, from(first(y1, y2)))) -> c3(MARK(first(y0, from(first(y1, y2))))) A__FROM(first(y0, from(from(y1)))) -> c3(MARK(first(y0, from(from(y1))))) A__FROM(first(y0, from(0))) -> c3(MARK(first(y0, from(0)))) A__FROM(first(y0, from(nil))) -> c3(MARK(first(y0, from(nil)))) A__FROM(first(y0, from(s(y1)))) -> c3(MARK(first(y0, from(s(y1))))) A__FROM(first(y0, from(cons(y1, y2)))) -> c3(MARK(first(y0, from(cons(y1, y2))))) A__FROM(first(first(y0, y1), from(y2))) -> c3(MARK(first(first(y0, y1), from(y2)))) A__FROM(first(from(y0), from(y1))) -> c3(MARK(first(from(y0), from(y1)))) A__FROM(first(s(y0), from(y1))) -> c3(MARK(first(s(y0), from(y1)))) A__FROM(first(cons(y0, y1), from(y2))) -> c3(MARK(first(cons(y0, y1), from(y2)))) A__FROM(first(y0, cons(first(y1, y2), y3))) -> c3(MARK(first(y0, cons(first(y1, y2), y3)))) A__FROM(first(y0, cons(from(y1), y2))) -> c3(MARK(first(y0, cons(from(y1), y2)))) A__FROM(first(y0, cons(s(y1), y2))) -> c3(MARK(first(y0, cons(s(y1), y2)))) A__FROM(first(y0, cons(cons(y1, y2), y3))) -> c3(MARK(first(y0, cons(cons(y1, y2), y3)))) A__FROM(first(first(y0, y1), cons(y2, y3))) -> c3(MARK(first(first(y0, y1), cons(y2, y3)))) A__FROM(first(from(y0), cons(y1, y2))) -> c3(MARK(first(from(y0), cons(y1, y2)))) A__FROM(first(s(y0), cons(y1, y2))) -> c3(MARK(first(s(y0), cons(y1, y2)))) A__FROM(first(cons(y0, y1), cons(y2, y3))) -> c3(MARK(first(cons(y0, y1), cons(y2, y3)))) A__FROM(first(first(y0, first(y1, y2)), y3)) -> c3(MARK(first(first(y0, first(y1, y2)), y3))) A__FROM(first(first(y0, from(y1)), y2)) -> c3(MARK(first(first(y0, from(y1)), y2))) A__FROM(first(first(y0, 0), y1)) -> c3(MARK(first(first(y0, 0), y1))) A__FROM(first(first(y0, nil), y1)) -> c3(MARK(first(first(y0, nil), y1))) A__FROM(first(first(y0, s(y1)), y2)) -> c3(MARK(first(first(y0, s(y1)), y2))) A__FROM(first(first(y0, cons(y1, y2)), y3)) -> c3(MARK(first(first(y0, cons(y1, y2)), y3))) A__FROM(first(first(first(y0, y1), y2), y3)) -> c3(MARK(first(first(first(y0, y1), y2), y3))) A__FROM(first(first(from(y0), y1), y2)) -> c3(MARK(first(first(from(y0), y1), y2))) A__FROM(first(first(0, y0), y1)) -> c3(MARK(first(first(0, y0), y1))) A__FROM(first(first(nil, y0), y1)) -> c3(MARK(first(first(nil, y0), y1))) A__FROM(first(first(s(y0), y1), y2)) -> c3(MARK(first(first(s(y0), y1), y2))) A__FROM(first(first(cons(y0, y1), y2), y3)) -> c3(MARK(first(first(cons(y0, y1), y2), y3))) A__FROM(first(first(y0, y1), 0)) -> c3(MARK(first(first(y0, y1), 0))) A__FROM(first(first(y0, y1), nil)) -> c3(MARK(first(first(y0, y1), nil))) A__FROM(first(first(y0, y1), s(y2))) -> c3(MARK(first(first(y0, y1), s(y2)))) A__FROM(first(first(y0, y1), y2)) -> c3(MARK(first(first(y0, y1), y2))) A__FROM(first(from(first(y0, y1)), y2)) -> c3(MARK(first(from(first(y0, y1)), y2))) A__FROM(first(from(from(y0)), y1)) -> c3(MARK(first(from(from(y0)), y1))) A__FROM(first(from(0), y0)) -> c3(MARK(first(from(0), y0))) A__FROM(first(from(nil), y0)) -> c3(MARK(first(from(nil), y0))) A__FROM(first(from(s(y0)), y1)) -> c3(MARK(first(from(s(y0)), y1))) A__FROM(first(from(cons(y0, y1)), y2)) -> c3(MARK(first(from(cons(y0, y1)), y2))) A__FROM(first(from(y0), y1)) -> c3(MARK(first(from(y0), y1))) A__FROM(first(from(y0), 0)) -> c3(MARK(first(from(y0), 0))) A__FROM(first(from(y0), nil)) -> c3(MARK(first(from(y0), nil))) A__FROM(first(from(y0), s(y1))) -> c3(MARK(first(from(y0), s(y1)))) A__FROM(first(s(first(y0, y1)), y2)) -> c3(MARK(first(s(first(y0, y1)), y2))) A__FROM(first(s(from(y0)), y1)) -> c3(MARK(first(s(from(y0)), y1))) A__FROM(first(s(0), y0)) -> c3(MARK(first(s(0), y0))) A__FROM(first(s(nil), y0)) -> c3(MARK(first(s(nil), y0))) A__FROM(first(s(s(y0)), y1)) -> c3(MARK(first(s(s(y0)), y1))) A__FROM(first(s(cons(y0, y1)), y2)) -> c3(MARK(first(s(cons(y0, y1)), y2))) A__FROM(first(s(y0), y1)) -> c3(MARK(first(s(y0), y1))) A__FROM(first(s(y0), 0)) -> c3(MARK(first(s(y0), 0))) A__FROM(first(s(y0), nil)) -> c3(MARK(first(s(y0), nil))) A__FROM(first(s(y0), s(y1))) -> c3(MARK(first(s(y0), s(y1)))) A__FROM(first(0, first(y0, y1))) -> c3(MARK(first(0, first(y0, y1)))) A__FROM(first(nil, first(y0, y1))) -> c3(MARK(first(nil, first(y0, y1)))) A__FROM(first(0, from(y0))) -> c3(MARK(first(0, from(y0)))) A__FROM(first(nil, from(y0))) -> c3(MARK(first(nil, from(y0)))) A__FROM(first(y0, cons(y1, y2))) -> c3(MARK(first(y0, cons(y1, y2)))) A__FROM(first(0, cons(y0, y1))) -> c3(MARK(first(0, cons(y0, y1)))) A__FROM(first(nil, cons(y0, y1))) -> c3(MARK(first(nil, cons(y0, y1)))) A__FROM(first(y0, cons(0, y1))) -> c3(MARK(first(y0, cons(0, y1)))) A__FROM(first(y0, cons(nil, y1))) -> c3(MARK(first(y0, cons(nil, y1)))) MARK(from(s(z0))) -> c7(A__FROM(s(mark(z0))), MARK(s(z0))) MARK(from(cons(z0, z1))) -> c7(A__FROM(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(from(0), x1)) -> c5(A__FIRST(a__from(0), mark(x1))) MARK(first(from(nil), x1)) -> c5(A__FIRST(a__from(nil), mark(x1))) MARK(first(x0, from(0))) -> c6(A__FIRST(mark(x0), a__from(0))) MARK(first(x0, from(nil))) -> c6(A__FIRST(mark(x0), a__from(nil))) MARK(from(first(x0, x1))) -> c7(A__FROM(first(mark(x0), mark(x1))), MARK(first(x0, x1))) MARK(from(first(x0, first(z0, z1)))) -> c7(A__FROM(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) MARK(from(first(x0, from(z0)))) -> c7(A__FROM(a__first(mark(x0), a__from(mark(z0)))), MARK(first(x0, from(z0)))) MARK(from(first(x0, 0))) -> c7(A__FROM(a__first(mark(x0), 0)), MARK(first(x0, 0))) MARK(from(first(x0, nil))) -> c7(A__FROM(a__first(mark(x0), nil)), MARK(first(x0, nil))) MARK(from(first(x0, s(z0)))) -> c7(A__FROM(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) MARK(from(first(x0, cons(z0, z1)))) -> c7(A__FROM(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) MARK(from(first(first(z0, z1), x1))) -> c7(A__FROM(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) MARK(from(first(from(z0), x1))) -> c7(A__FROM(a__first(a__from(mark(z0)), mark(x1))), MARK(first(from(z0), x1))) MARK(from(first(0, x1))) -> c7(A__FROM(a__first(0, mark(x1))), MARK(first(0, x1))) MARK(from(first(nil, x1))) -> c7(A__FROM(a__first(nil, mark(x1))), MARK(first(nil, x1))) MARK(from(first(s(z0), x1))) -> c7(A__FROM(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) MARK(from(first(cons(z0, z1), x1))) -> c7(A__FROM(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) MARK(from(from(x0))) -> c7(A__FROM(cons(mark(mark(x0)), from(s(mark(x0))))), MARK(from(x0))) MARK(from(from(x0))) -> c7(A__FROM(from(mark(x0))), MARK(from(x0))) MARK(from(from(first(z0, z1)))) -> c7(A__FROM(a__from(a__first(mark(z0), mark(z1)))), MARK(from(first(z0, z1)))) MARK(from(from(from(z0)))) -> c7(A__FROM(a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(from(from(s(z0)))) -> c7(A__FROM(a__from(s(mark(z0)))), MARK(from(s(z0)))) MARK(from(from(cons(z0, z1)))) -> c7(A__FROM(a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(from(from(0))) -> c7(A__FROM(a__from(0))) MARK(from(from(nil))) -> c7(A__FROM(a__from(nil))) MARK(s(s(y0))) -> c10(MARK(s(y0))) MARK(s(cons(y0, y1))) -> c10(MARK(cons(y0, y1))) MARK(s(first(y0, 0))) -> c10(MARK(first(y0, 0))) MARK(s(first(y0, nil))) -> c10(MARK(first(y0, nil))) MARK(s(first(y0, s(y1)))) -> c10(MARK(first(y0, s(y1)))) MARK(s(first(cons(y0, y1), y2))) -> c10(MARK(first(cons(y0, y1), y2))) MARK(s(first(0, y0))) -> c10(MARK(first(0, y0))) MARK(s(first(nil, y0))) -> c10(MARK(first(nil, y0))) MARK(s(first(y0, first(y1, first(y2, y3))))) -> c10(MARK(first(y0, first(y1, first(y2, y3))))) MARK(s(first(y0, first(y1, from(y2))))) -> c10(MARK(first(y0, first(y1, from(y2))))) MARK(s(first(y0, first(y1, 0)))) -> c10(MARK(first(y0, first(y1, 0)))) MARK(s(first(y0, first(y1, nil)))) -> c10(MARK(first(y0, first(y1, nil)))) MARK(s(first(y0, first(y1, s(y2))))) -> c10(MARK(first(y0, first(y1, s(y2))))) MARK(s(first(y0, first(y1, cons(y2, y3))))) -> c10(MARK(first(y0, first(y1, cons(y2, y3))))) MARK(s(first(y0, first(first(y1, y2), y3)))) -> c10(MARK(first(y0, first(first(y1, y2), y3)))) MARK(s(first(y0, first(from(y1), y2)))) -> c10(MARK(first(y0, first(from(y1), y2)))) MARK(s(first(y0, first(0, y1)))) -> c10(MARK(first(y0, first(0, y1)))) MARK(s(first(y0, first(nil, y1)))) -> c10(MARK(first(y0, first(nil, y1)))) MARK(s(first(y0, first(s(y1), y2)))) -> c10(MARK(first(y0, first(s(y1), y2)))) MARK(s(first(y0, first(cons(y1, y2), y3)))) -> c10(MARK(first(y0, first(cons(y1, y2), y3)))) MARK(s(first(first(y0, y1), first(y2, y3)))) -> c10(MARK(first(first(y0, y1), first(y2, y3)))) MARK(s(first(from(y0), first(y1, y2)))) -> c10(MARK(first(from(y0), first(y1, y2)))) MARK(s(first(s(y0), first(y1, y2)))) -> c10(MARK(first(s(y0), first(y1, y2)))) MARK(s(first(y0, first(y1, y2)))) -> c10(MARK(first(y0, first(y1, y2)))) MARK(s(first(cons(y0, y1), first(y2, y3)))) -> c10(MARK(first(cons(y0, y1), first(y2, y3)))) MARK(s(first(y0, from(y1)))) -> c10(MARK(first(y0, from(y1)))) MARK(s(first(y0, from(first(y1, y2))))) -> c10(MARK(first(y0, from(first(y1, y2))))) MARK(s(first(y0, from(from(y1))))) -> c10(MARK(first(y0, from(from(y1))))) MARK(s(first(y0, from(0)))) -> c10(MARK(first(y0, from(0)))) MARK(s(first(y0, from(nil)))) -> c10(MARK(first(y0, from(nil)))) MARK(s(first(y0, from(s(y1))))) -> c10(MARK(first(y0, from(s(y1))))) MARK(s(first(y0, from(cons(y1, y2))))) -> c10(MARK(first(y0, from(cons(y1, y2))))) MARK(s(first(first(y0, y1), from(y2)))) -> c10(MARK(first(first(y0, y1), from(y2)))) MARK(s(first(from(y0), from(y1)))) -> c10(MARK(first(from(y0), from(y1)))) MARK(s(first(s(y0), from(y1)))) -> c10(MARK(first(s(y0), from(y1)))) MARK(s(first(cons(y0, y1), from(y2)))) -> c10(MARK(first(cons(y0, y1), from(y2)))) MARK(s(first(y0, cons(first(y1, y2), y3)))) -> c10(MARK(first(y0, cons(first(y1, y2), y3)))) MARK(s(first(y0, cons(from(y1), y2)))) -> c10(MARK(first(y0, cons(from(y1), y2)))) MARK(s(first(y0, cons(s(y1), y2)))) -> c10(MARK(first(y0, cons(s(y1), y2)))) MARK(s(first(y0, cons(cons(y1, y2), y3)))) -> c10(MARK(first(y0, cons(cons(y1, y2), y3)))) MARK(s(first(first(y0, y1), cons(y2, y3)))) -> c10(MARK(first(first(y0, y1), cons(y2, y3)))) MARK(s(first(from(y0), cons(y1, y2)))) -> c10(MARK(first(from(y0), cons(y1, y2)))) MARK(s(first(s(y0), cons(y1, y2)))) -> c10(MARK(first(s(y0), cons(y1, y2)))) MARK(s(first(cons(y0, y1), cons(y2, y3)))) -> c10(MARK(first(cons(y0, y1), cons(y2, y3)))) MARK(s(first(first(y0, first(y1, y2)), y3))) -> c10(MARK(first(first(y0, first(y1, y2)), y3))) MARK(s(first(first(y0, from(y1)), y2))) -> c10(MARK(first(first(y0, from(y1)), y2))) MARK(s(first(first(y0, 0), y1))) -> c10(MARK(first(first(y0, 0), y1))) MARK(s(first(first(y0, nil), y1))) -> c10(MARK(first(first(y0, nil), y1))) MARK(s(first(first(y0, s(y1)), y2))) -> c10(MARK(first(first(y0, s(y1)), y2))) MARK(s(first(first(y0, cons(y1, y2)), y3))) -> c10(MARK(first(first(y0, cons(y1, y2)), y3))) MARK(s(first(first(first(y0, y1), y2), y3))) -> c10(MARK(first(first(first(y0, y1), y2), y3))) MARK(s(first(first(from(y0), y1), y2))) -> c10(MARK(first(first(from(y0), y1), y2))) MARK(s(first(first(0, y0), y1))) -> c10(MARK(first(first(0, y0), y1))) MARK(s(first(first(nil, y0), y1))) -> c10(MARK(first(first(nil, y0), y1))) MARK(s(first(first(s(y0), y1), y2))) -> c10(MARK(first(first(s(y0), y1), y2))) MARK(s(first(first(cons(y0, y1), y2), y3))) -> c10(MARK(first(first(cons(y0, y1), y2), y3))) MARK(s(first(first(y0, y1), 0))) -> c10(MARK(first(first(y0, y1), 0))) MARK(s(first(first(y0, y1), nil))) -> c10(MARK(first(first(y0, y1), nil))) MARK(s(first(first(y0, y1), s(y2)))) -> c10(MARK(first(first(y0, y1), s(y2)))) MARK(s(first(first(y0, y1), y2))) -> c10(MARK(first(first(y0, y1), y2))) MARK(s(first(from(first(y0, y1)), y2))) -> c10(MARK(first(from(first(y0, y1)), y2))) MARK(s(first(from(from(y0)), y1))) -> c10(MARK(first(from(from(y0)), y1))) MARK(s(first(from(s(y0)), y1))) -> c10(MARK(first(from(s(y0)), y1))) MARK(s(first(from(cons(y0, y1)), y2))) -> c10(MARK(first(from(cons(y0, y1)), y2))) MARK(s(first(from(y0), y1))) -> c10(MARK(first(from(y0), y1))) MARK(s(first(from(y0), 0))) -> c10(MARK(first(from(y0), 0))) MARK(s(first(from(y0), nil))) -> c10(MARK(first(from(y0), nil))) MARK(s(first(from(y0), s(y1)))) -> c10(MARK(first(from(y0), s(y1)))) MARK(s(first(s(first(y0, y1)), y2))) -> c10(MARK(first(s(first(y0, y1)), y2))) MARK(s(first(s(from(y0)), y1))) -> c10(MARK(first(s(from(y0)), y1))) MARK(s(first(s(0), y0))) -> c10(MARK(first(s(0), y0))) MARK(s(first(s(nil), y0))) -> c10(MARK(first(s(nil), y0))) MARK(s(first(s(s(y0)), y1))) -> c10(MARK(first(s(s(y0)), y1))) MARK(s(first(s(cons(y0, y1)), y2))) -> c10(MARK(first(s(cons(y0, y1)), y2))) MARK(s(first(s(y0), y1))) -> c10(MARK(first(s(y0), y1))) MARK(s(first(s(y0), 0))) -> c10(MARK(first(s(y0), 0))) MARK(s(first(s(y0), nil))) -> c10(MARK(first(s(y0), nil))) MARK(s(first(s(y0), s(y1)))) -> c10(MARK(first(s(y0), s(y1)))) MARK(s(first(0, first(y0, y1)))) -> c10(MARK(first(0, first(y0, y1)))) MARK(s(first(nil, first(y0, y1)))) -> c10(MARK(first(nil, first(y0, y1)))) MARK(s(first(0, from(y0)))) -> c10(MARK(first(0, from(y0)))) MARK(s(first(nil, from(y0)))) -> c10(MARK(first(nil, from(y0)))) MARK(s(first(y0, cons(y1, y2)))) -> c10(MARK(first(y0, cons(y1, y2)))) MARK(s(first(0, cons(y0, y1)))) -> c10(MARK(first(0, cons(y0, y1)))) MARK(s(first(nil, cons(y0, y1)))) -> c10(MARK(first(nil, cons(y0, y1)))) MARK(s(first(from(0), y0))) -> c10(MARK(first(from(0), y0))) MARK(s(first(from(nil), y0))) -> c10(MARK(first(from(nil), y0))) MARK(s(first(y0, cons(0, y1)))) -> c10(MARK(first(y0, cons(0, y1)))) MARK(s(first(y0, cons(nil, y1)))) -> c10(MARK(first(y0, cons(nil, y1)))) MARK(s(from(s(y0)))) -> c10(MARK(from(s(y0)))) MARK(s(from(cons(y0, y1)))) -> c10(MARK(from(cons(y0, y1)))) MARK(s(from(first(y0, y1)))) -> c10(MARK(from(first(y0, y1)))) MARK(s(from(first(y0, first(y1, y2))))) -> c10(MARK(from(first(y0, first(y1, y2))))) MARK(s(from(first(y0, from(y1))))) -> c10(MARK(from(first(y0, from(y1))))) MARK(s(from(first(y0, 0)))) -> c10(MARK(from(first(y0, 0)))) MARK(s(from(first(y0, nil)))) -> c10(MARK(from(first(y0, nil)))) MARK(s(from(first(y0, s(y1))))) -> c10(MARK(from(first(y0, s(y1))))) MARK(s(from(first(y0, cons(y1, y2))))) -> c10(MARK(from(first(y0, cons(y1, y2))))) MARK(s(from(first(first(y0, y1), y2)))) -> c10(MARK(from(first(first(y0, y1), y2)))) MARK(s(from(first(from(y0), y1)))) -> c10(MARK(from(first(from(y0), y1)))) MARK(s(from(first(0, y0)))) -> c10(MARK(from(first(0, y0)))) MARK(s(from(first(nil, y0)))) -> c10(MARK(from(first(nil, y0)))) MARK(s(from(first(s(y0), y1)))) -> c10(MARK(from(first(s(y0), y1)))) MARK(s(from(first(cons(y0, y1), y2)))) -> c10(MARK(from(first(cons(y0, y1), y2)))) MARK(s(from(from(y0)))) -> c10(MARK(from(from(y0)))) MARK(s(from(from(first(y0, y1))))) -> c10(MARK(from(from(first(y0, y1))))) MARK(s(from(from(from(y0))))) -> c10(MARK(from(from(from(y0))))) MARK(s(from(from(s(y0))))) -> c10(MARK(from(from(s(y0))))) MARK(s(from(from(cons(y0, y1))))) -> c10(MARK(from(from(cons(y0, y1))))) MARK(s(from(from(0)))) -> c10(MARK(from(from(0)))) MARK(s(from(from(nil)))) -> c10(MARK(from(from(nil)))) MARK(first(s(0), x1)) -> c5(A__FIRST(s(0), mark(x1))) MARK(first(s(nil), x1)) -> c5(A__FIRST(s(nil), mark(x1))) K tuples:none Defined Rule Symbols: a__first_2, a__from_1, mark_1 Defined Pair Symbols: MARK_1, A__FIRST_2, A__FROM_1 Compound Symbols: c11_1, c5_1, c6_1, c5_2, c6_2, c1_1, c3_1, c7_2, c7_1, c10_1 ---------------------------------------- (157) CdtForwardInstantiationProof (BOTH BOUNDS(ID, ID)) Use forward instantiation to replace MARK(cons(z0, z1)) -> c11(MARK(z0)) by MARK(cons(cons(y0, y1), z1)) -> c11(MARK(cons(y0, y1))) MARK(cons(first(y0, 0), z1)) -> c11(MARK(first(y0, 0))) MARK(cons(first(y0, nil), z1)) -> c11(MARK(first(y0, nil))) MARK(cons(first(y0, s(y1)), z1)) -> c11(MARK(first(y0, s(y1)))) MARK(cons(first(cons(y0, y1), y2), z1)) -> c11(MARK(first(cons(y0, y1), y2))) MARK(cons(first(0, y0), z1)) -> c11(MARK(first(0, y0))) MARK(cons(first(nil, y0), z1)) -> c11(MARK(first(nil, y0))) MARK(cons(first(y0, first(y1, first(y2, y3))), z1)) -> c11(MARK(first(y0, first(y1, first(y2, y3))))) MARK(cons(first(y0, first(y1, from(y2))), z1)) -> c11(MARK(first(y0, first(y1, from(y2))))) MARK(cons(first(y0, first(y1, 0)), z1)) -> c11(MARK(first(y0, first(y1, 0)))) MARK(cons(first(y0, first(y1, nil)), z1)) -> c11(MARK(first(y0, first(y1, nil)))) MARK(cons(first(y0, first(y1, s(y2))), z1)) -> c11(MARK(first(y0, first(y1, s(y2))))) MARK(cons(first(y0, first(y1, cons(y2, y3))), z1)) -> c11(MARK(first(y0, first(y1, cons(y2, y3))))) MARK(cons(first(y0, first(first(y1, y2), y3)), z1)) -> c11(MARK(first(y0, first(first(y1, y2), y3)))) MARK(cons(first(y0, first(from(y1), y2)), z1)) -> c11(MARK(first(y0, first(from(y1), y2)))) MARK(cons(first(y0, first(0, y1)), z1)) -> c11(MARK(first(y0, first(0, y1)))) MARK(cons(first(y0, first(nil, y1)), z1)) -> c11(MARK(first(y0, first(nil, y1)))) MARK(cons(first(y0, first(s(y1), y2)), z1)) -> c11(MARK(first(y0, first(s(y1), y2)))) MARK(cons(first(y0, first(cons(y1, y2), y3)), z1)) -> c11(MARK(first(y0, first(cons(y1, y2), y3)))) MARK(cons(first(first(y0, y1), first(y2, y3)), z1)) -> c11(MARK(first(first(y0, y1), first(y2, y3)))) MARK(cons(first(from(y0), first(y1, y2)), z1)) -> c11(MARK(first(from(y0), first(y1, y2)))) MARK(cons(first(s(y0), first(y1, y2)), z1)) -> c11(MARK(first(s(y0), first(y1, y2)))) MARK(cons(first(y0, first(y1, y2)), z1)) -> c11(MARK(first(y0, first(y1, y2)))) MARK(cons(first(cons(y0, y1), first(y2, y3)), z1)) -> c11(MARK(first(cons(y0, y1), first(y2, y3)))) MARK(cons(first(y0, from(y1)), z1)) -> c11(MARK(first(y0, from(y1)))) MARK(cons(first(y0, from(first(y1, y2))), z1)) -> c11(MARK(first(y0, from(first(y1, y2))))) MARK(cons(first(y0, from(from(y1))), z1)) -> c11(MARK(first(y0, from(from(y1))))) MARK(cons(first(y0, from(0)), z1)) -> c11(MARK(first(y0, from(0)))) MARK(cons(first(y0, from(nil)), z1)) -> c11(MARK(first(y0, from(nil)))) MARK(cons(first(y0, from(s(y1))), z1)) -> c11(MARK(first(y0, from(s(y1))))) MARK(cons(first(y0, from(cons(y1, y2))), z1)) -> c11(MARK(first(y0, from(cons(y1, y2))))) MARK(cons(first(first(y0, y1), from(y2)), z1)) -> c11(MARK(first(first(y0, y1), from(y2)))) MARK(cons(first(from(y0), from(y1)), z1)) -> c11(MARK(first(from(y0), from(y1)))) MARK(cons(first(s(y0), from(y1)), z1)) -> c11(MARK(first(s(y0), from(y1)))) MARK(cons(first(cons(y0, y1), from(y2)), z1)) -> c11(MARK(first(cons(y0, y1), from(y2)))) MARK(cons(first(y0, cons(first(y1, y2), y3)), z1)) -> c11(MARK(first(y0, cons(first(y1, y2), y3)))) MARK(cons(first(y0, cons(from(y1), y2)), z1)) -> c11(MARK(first(y0, cons(from(y1), y2)))) MARK(cons(first(y0, cons(s(y1), y2)), z1)) -> c11(MARK(first(y0, cons(s(y1), y2)))) MARK(cons(first(y0, cons(cons(y1, y2), y3)), z1)) -> c11(MARK(first(y0, cons(cons(y1, y2), y3)))) MARK(cons(first(first(y0, y1), cons(y2, y3)), z1)) -> c11(MARK(first(first(y0, y1), cons(y2, y3)))) MARK(cons(first(from(y0), cons(y1, y2)), z1)) -> c11(MARK(first(from(y0), cons(y1, y2)))) MARK(cons(first(s(y0), cons(y1, y2)), z1)) -> c11(MARK(first(s(y0), cons(y1, y2)))) MARK(cons(first(cons(y0, y1), cons(y2, y3)), z1)) -> c11(MARK(first(cons(y0, y1), cons(y2, y3)))) MARK(cons(first(first(y0, first(y1, y2)), y3), z1)) -> c11(MARK(first(first(y0, first(y1, y2)), y3))) MARK(cons(first(first(y0, from(y1)), y2), z1)) -> c11(MARK(first(first(y0, from(y1)), y2))) MARK(cons(first(first(y0, 0), y1), z1)) -> c11(MARK(first(first(y0, 0), y1))) MARK(cons(first(first(y0, nil), y1), z1)) -> c11(MARK(first(first(y0, nil), y1))) MARK(cons(first(first(y0, s(y1)), y2), z1)) -> c11(MARK(first(first(y0, s(y1)), y2))) MARK(cons(first(first(y0, cons(y1, y2)), y3), z1)) -> c11(MARK(first(first(y0, cons(y1, y2)), y3))) MARK(cons(first(first(first(y0, y1), y2), y3), z1)) -> c11(MARK(first(first(first(y0, y1), y2), y3))) MARK(cons(first(first(from(y0), y1), y2), z1)) -> c11(MARK(first(first(from(y0), y1), y2))) MARK(cons(first(first(0, y0), y1), z1)) -> c11(MARK(first(first(0, y0), y1))) MARK(cons(first(first(nil, y0), y1), z1)) -> c11(MARK(first(first(nil, y0), y1))) MARK(cons(first(first(s(y0), y1), y2), z1)) -> c11(MARK(first(first(s(y0), y1), y2))) MARK(cons(first(first(cons(y0, y1), y2), y3), z1)) -> c11(MARK(first(first(cons(y0, y1), y2), y3))) MARK(cons(first(first(y0, y1), 0), z1)) -> c11(MARK(first(first(y0, y1), 0))) MARK(cons(first(first(y0, y1), nil), z1)) -> c11(MARK(first(first(y0, y1), nil))) MARK(cons(first(first(y0, y1), s(y2)), z1)) -> c11(MARK(first(first(y0, y1), s(y2)))) MARK(cons(first(first(y0, y1), y2), z1)) -> c11(MARK(first(first(y0, y1), y2))) MARK(cons(first(from(first(y0, y1)), y2), z1)) -> c11(MARK(first(from(first(y0, y1)), y2))) MARK(cons(first(from(from(y0)), y1), z1)) -> c11(MARK(first(from(from(y0)), y1))) MARK(cons(first(from(s(y0)), y1), z1)) -> c11(MARK(first(from(s(y0)), y1))) MARK(cons(first(from(cons(y0, y1)), y2), z1)) -> c11(MARK(first(from(cons(y0, y1)), y2))) MARK(cons(first(from(y0), y1), z1)) -> c11(MARK(first(from(y0), y1))) MARK(cons(first(from(y0), 0), z1)) -> c11(MARK(first(from(y0), 0))) MARK(cons(first(from(y0), nil), z1)) -> c11(MARK(first(from(y0), nil))) MARK(cons(first(from(y0), s(y1)), z1)) -> c11(MARK(first(from(y0), s(y1)))) MARK(cons(first(s(first(y0, y1)), y2), z1)) -> c11(MARK(first(s(first(y0, y1)), y2))) MARK(cons(first(s(from(y0)), y1), z1)) -> c11(MARK(first(s(from(y0)), y1))) MARK(cons(first(s(s(y0)), y1), z1)) -> c11(MARK(first(s(s(y0)), y1))) MARK(cons(first(s(cons(y0, y1)), y2), z1)) -> c11(MARK(first(s(cons(y0, y1)), y2))) MARK(cons(first(s(y0), y1), z1)) -> c11(MARK(first(s(y0), y1))) MARK(cons(first(s(y0), 0), z1)) -> c11(MARK(first(s(y0), 0))) MARK(cons(first(s(y0), nil), z1)) -> c11(MARK(first(s(y0), nil))) MARK(cons(first(s(y0), s(y1)), z1)) -> c11(MARK(first(s(y0), s(y1)))) MARK(cons(first(0, first(y0, y1)), z1)) -> c11(MARK(first(0, first(y0, y1)))) MARK(cons(first(nil, first(y0, y1)), z1)) -> c11(MARK(first(nil, first(y0, y1)))) MARK(cons(first(0, from(y0)), z1)) -> c11(MARK(first(0, from(y0)))) MARK(cons(first(nil, from(y0)), z1)) -> c11(MARK(first(nil, from(y0)))) MARK(cons(first(y0, cons(y1, y2)), z1)) -> c11(MARK(first(y0, cons(y1, y2)))) MARK(cons(first(0, cons(y0, y1)), z1)) -> c11(MARK(first(0, cons(y0, y1)))) MARK(cons(first(nil, cons(y0, y1)), z1)) -> c11(MARK(first(nil, cons(y0, y1)))) MARK(cons(first(from(0), y0), z1)) -> c11(MARK(first(from(0), y0))) MARK(cons(first(from(nil), y0), z1)) -> c11(MARK(first(from(nil), y0))) MARK(cons(first(s(0), y0), z1)) -> c11(MARK(first(s(0), y0))) MARK(cons(first(s(nil), y0), z1)) -> c11(MARK(first(s(nil), y0))) MARK(cons(first(y0, cons(0, y1)), z1)) -> c11(MARK(first(y0, cons(0, y1)))) MARK(cons(first(y0, cons(nil, y1)), z1)) -> c11(MARK(first(y0, cons(nil, y1)))) MARK(cons(from(s(y0)), z1)) -> c11(MARK(from(s(y0)))) MARK(cons(from(cons(y0, y1)), z1)) -> c11(MARK(from(cons(y0, y1)))) MARK(cons(from(first(y0, y1)), z1)) -> c11(MARK(from(first(y0, y1)))) MARK(cons(from(first(y0, first(y1, y2))), z1)) -> c11(MARK(from(first(y0, first(y1, y2))))) MARK(cons(from(first(y0, from(y1))), z1)) -> c11(MARK(from(first(y0, from(y1))))) MARK(cons(from(first(y0, 0)), z1)) -> c11(MARK(from(first(y0, 0)))) MARK(cons(from(first(y0, nil)), z1)) -> c11(MARK(from(first(y0, nil)))) MARK(cons(from(first(y0, s(y1))), z1)) -> c11(MARK(from(first(y0, s(y1))))) MARK(cons(from(first(y0, cons(y1, y2))), z1)) -> c11(MARK(from(first(y0, cons(y1, y2))))) MARK(cons(from(first(first(y0, y1), y2)), z1)) -> c11(MARK(from(first(first(y0, y1), y2)))) MARK(cons(from(first(from(y0), y1)), z1)) -> c11(MARK(from(first(from(y0), y1)))) MARK(cons(from(first(0, y0)), z1)) -> c11(MARK(from(first(0, y0)))) MARK(cons(from(first(nil, y0)), z1)) -> c11(MARK(from(first(nil, y0)))) MARK(cons(from(first(s(y0), y1)), z1)) -> c11(MARK(from(first(s(y0), y1)))) MARK(cons(from(first(cons(y0, y1), y2)), z1)) -> c11(MARK(from(first(cons(y0, y1), y2)))) MARK(cons(from(from(y0)), z1)) -> c11(MARK(from(from(y0)))) MARK(cons(from(from(first(y0, y1))), z1)) -> c11(MARK(from(from(first(y0, y1))))) MARK(cons(from(from(from(y0))), z1)) -> c11(MARK(from(from(from(y0))))) MARK(cons(from(from(s(y0))), z1)) -> c11(MARK(from(from(s(y0))))) MARK(cons(from(from(cons(y0, y1))), z1)) -> c11(MARK(from(from(cons(y0, y1))))) MARK(cons(from(from(0)), z1)) -> c11(MARK(from(from(0)))) MARK(cons(from(from(nil)), z1)) -> c11(MARK(from(from(nil)))) MARK(cons(s(s(y0)), z1)) -> c11(MARK(s(s(y0)))) MARK(cons(s(cons(y0, y1)), z1)) -> c11(MARK(s(cons(y0, y1)))) MARK(cons(s(first(y0, 0)), z1)) -> c11(MARK(s(first(y0, 0)))) MARK(cons(s(first(y0, nil)), z1)) -> c11(MARK(s(first(y0, nil)))) MARK(cons(s(first(y0, s(y1))), z1)) -> c11(MARK(s(first(y0, s(y1))))) MARK(cons(s(first(cons(y0, y1), y2)), z1)) -> c11(MARK(s(first(cons(y0, y1), y2)))) MARK(cons(s(first(0, y0)), z1)) -> c11(MARK(s(first(0, y0)))) MARK(cons(s(first(nil, y0)), z1)) -> c11(MARK(s(first(nil, y0)))) MARK(cons(s(first(y0, first(y1, first(y2, y3)))), z1)) -> c11(MARK(s(first(y0, first(y1, first(y2, y3)))))) MARK(cons(s(first(y0, first(y1, from(y2)))), z1)) -> c11(MARK(s(first(y0, first(y1, from(y2)))))) MARK(cons(s(first(y0, first(y1, 0))), z1)) -> c11(MARK(s(first(y0, first(y1, 0))))) MARK(cons(s(first(y0, first(y1, nil))), z1)) -> c11(MARK(s(first(y0, first(y1, nil))))) MARK(cons(s(first(y0, first(y1, s(y2)))), z1)) -> c11(MARK(s(first(y0, first(y1, s(y2)))))) MARK(cons(s(first(y0, first(y1, cons(y2, y3)))), z1)) -> c11(MARK(s(first(y0, first(y1, cons(y2, y3)))))) MARK(cons(s(first(y0, first(first(y1, y2), y3))), z1)) -> c11(MARK(s(first(y0, first(first(y1, y2), y3))))) MARK(cons(s(first(y0, first(from(y1), y2))), z1)) -> c11(MARK(s(first(y0, first(from(y1), y2))))) MARK(cons(s(first(y0, first(0, y1))), z1)) -> c11(MARK(s(first(y0, first(0, y1))))) MARK(cons(s(first(y0, first(nil, y1))), z1)) -> c11(MARK(s(first(y0, first(nil, y1))))) MARK(cons(s(first(y0, first(s(y1), y2))), z1)) -> c11(MARK(s(first(y0, first(s(y1), y2))))) MARK(cons(s(first(y0, first(cons(y1, y2), y3))), z1)) -> c11(MARK(s(first(y0, first(cons(y1, y2), y3))))) MARK(cons(s(first(first(y0, y1), first(y2, y3))), z1)) -> c11(MARK(s(first(first(y0, y1), first(y2, y3))))) MARK(cons(s(first(from(y0), first(y1, y2))), z1)) -> c11(MARK(s(first(from(y0), first(y1, y2))))) MARK(cons(s(first(s(y0), first(y1, y2))), z1)) -> c11(MARK(s(first(s(y0), first(y1, y2))))) MARK(cons(s(first(y0, first(y1, y2))), z1)) -> c11(MARK(s(first(y0, first(y1, y2))))) MARK(cons(s(first(cons(y0, y1), first(y2, y3))), z1)) -> c11(MARK(s(first(cons(y0, y1), first(y2, y3))))) MARK(cons(s(first(y0, from(y1))), z1)) -> c11(MARK(s(first(y0, from(y1))))) MARK(cons(s(first(y0, from(first(y1, y2)))), z1)) -> c11(MARK(s(first(y0, from(first(y1, y2)))))) MARK(cons(s(first(y0, from(from(y1)))), z1)) -> c11(MARK(s(first(y0, from(from(y1)))))) MARK(cons(s(first(y0, from(0))), z1)) -> c11(MARK(s(first(y0, from(0))))) MARK(cons(s(first(y0, from(nil))), z1)) -> c11(MARK(s(first(y0, from(nil))))) MARK(cons(s(first(y0, from(s(y1)))), z1)) -> c11(MARK(s(first(y0, from(s(y1)))))) MARK(cons(s(first(y0, from(cons(y1, y2)))), z1)) -> c11(MARK(s(first(y0, from(cons(y1, y2)))))) MARK(cons(s(first(first(y0, y1), from(y2))), z1)) -> c11(MARK(s(first(first(y0, y1), from(y2))))) MARK(cons(s(first(from(y0), from(y1))), z1)) -> c11(MARK(s(first(from(y0), from(y1))))) MARK(cons(s(first(s(y0), from(y1))), z1)) -> c11(MARK(s(first(s(y0), from(y1))))) MARK(cons(s(first(cons(y0, y1), from(y2))), z1)) -> c11(MARK(s(first(cons(y0, y1), from(y2))))) MARK(cons(s(first(y0, cons(first(y1, y2), y3))), z1)) -> c11(MARK(s(first(y0, cons(first(y1, y2), y3))))) MARK(cons(s(first(y0, cons(from(y1), y2))), z1)) -> c11(MARK(s(first(y0, cons(from(y1), y2))))) MARK(cons(s(first(y0, cons(s(y1), y2))), z1)) -> c11(MARK(s(first(y0, cons(s(y1), y2))))) MARK(cons(s(first(y0, cons(cons(y1, y2), y3))), z1)) -> c11(MARK(s(first(y0, cons(cons(y1, y2), y3))))) MARK(cons(s(first(first(y0, y1), cons(y2, y3))), z1)) -> c11(MARK(s(first(first(y0, y1), cons(y2, y3))))) MARK(cons(s(first(from(y0), cons(y1, y2))), z1)) -> c11(MARK(s(first(from(y0), cons(y1, y2))))) MARK(cons(s(first(s(y0), cons(y1, y2))), z1)) -> c11(MARK(s(first(s(y0), cons(y1, y2))))) MARK(cons(s(first(cons(y0, y1), cons(y2, y3))), z1)) -> c11(MARK(s(first(cons(y0, y1), cons(y2, y3))))) MARK(cons(s(first(first(y0, first(y1, y2)), y3)), z1)) -> c11(MARK(s(first(first(y0, first(y1, y2)), y3)))) MARK(cons(s(first(first(y0, from(y1)), y2)), z1)) -> c11(MARK(s(first(first(y0, from(y1)), y2)))) MARK(cons(s(first(first(y0, 0), y1)), z1)) -> c11(MARK(s(first(first(y0, 0), y1)))) MARK(cons(s(first(first(y0, nil), y1)), z1)) -> c11(MARK(s(first(first(y0, nil), y1)))) MARK(cons(s(first(first(y0, s(y1)), y2)), z1)) -> c11(MARK(s(first(first(y0, s(y1)), y2)))) MARK(cons(s(first(first(y0, cons(y1, y2)), y3)), z1)) -> c11(MARK(s(first(first(y0, cons(y1, y2)), y3)))) MARK(cons(s(first(first(first(y0, y1), y2), y3)), z1)) -> c11(MARK(s(first(first(first(y0, y1), y2), y3)))) MARK(cons(s(first(first(from(y0), y1), y2)), z1)) -> c11(MARK(s(first(first(from(y0), y1), y2)))) MARK(cons(s(first(first(0, y0), y1)), z1)) -> c11(MARK(s(first(first(0, y0), y1)))) MARK(cons(s(first(first(nil, y0), y1)), z1)) -> c11(MARK(s(first(first(nil, y0), y1)))) MARK(cons(s(first(first(s(y0), y1), y2)), z1)) -> c11(MARK(s(first(first(s(y0), y1), y2)))) MARK(cons(s(first(first(cons(y0, y1), y2), y3)), z1)) -> c11(MARK(s(first(first(cons(y0, y1), y2), y3)))) MARK(cons(s(first(first(y0, y1), 0)), z1)) -> c11(MARK(s(first(first(y0, y1), 0)))) MARK(cons(s(first(first(y0, y1), nil)), z1)) -> c11(MARK(s(first(first(y0, y1), nil)))) MARK(cons(s(first(first(y0, y1), s(y2))), z1)) -> c11(MARK(s(first(first(y0, y1), s(y2))))) MARK(cons(s(first(first(y0, y1), y2)), z1)) -> c11(MARK(s(first(first(y0, y1), y2)))) MARK(cons(s(first(from(first(y0, y1)), y2)), z1)) -> c11(MARK(s(first(from(first(y0, y1)), y2)))) MARK(cons(s(first(from(from(y0)), y1)), z1)) -> c11(MARK(s(first(from(from(y0)), y1)))) MARK(cons(s(first(from(s(y0)), y1)), z1)) -> c11(MARK(s(first(from(s(y0)), y1)))) MARK(cons(s(first(from(cons(y0, y1)), y2)), z1)) -> c11(MARK(s(first(from(cons(y0, y1)), y2)))) MARK(cons(s(first(from(y0), y1)), z1)) -> c11(MARK(s(first(from(y0), y1)))) MARK(cons(s(first(from(y0), 0)), z1)) -> c11(MARK(s(first(from(y0), 0)))) MARK(cons(s(first(from(y0), nil)), z1)) -> c11(MARK(s(first(from(y0), nil)))) MARK(cons(s(first(from(y0), s(y1))), z1)) -> c11(MARK(s(first(from(y0), s(y1))))) MARK(cons(s(first(s(first(y0, y1)), y2)), z1)) -> c11(MARK(s(first(s(first(y0, y1)), y2)))) MARK(cons(s(first(s(from(y0)), y1)), z1)) -> c11(MARK(s(first(s(from(y0)), y1)))) MARK(cons(s(first(s(0), y0)), z1)) -> c11(MARK(s(first(s(0), y0)))) MARK(cons(s(first(s(nil), y0)), z1)) -> c11(MARK(s(first(s(nil), y0)))) MARK(cons(s(first(s(s(y0)), y1)), z1)) -> c11(MARK(s(first(s(s(y0)), y1)))) MARK(cons(s(first(s(cons(y0, y1)), y2)), z1)) -> c11(MARK(s(first(s(cons(y0, y1)), y2)))) MARK(cons(s(first(s(y0), y1)), z1)) -> c11(MARK(s(first(s(y0), y1)))) MARK(cons(s(first(s(y0), 0)), z1)) -> c11(MARK(s(first(s(y0), 0)))) MARK(cons(s(first(s(y0), nil)), z1)) -> c11(MARK(s(first(s(y0), nil)))) MARK(cons(s(first(s(y0), s(y1))), z1)) -> c11(MARK(s(first(s(y0), s(y1))))) MARK(cons(s(first(0, first(y0, y1))), z1)) -> c11(MARK(s(first(0, first(y0, y1))))) MARK(cons(s(first(nil, first(y0, y1))), z1)) -> c11(MARK(s(first(nil, first(y0, y1))))) MARK(cons(s(first(0, from(y0))), z1)) -> c11(MARK(s(first(0, from(y0))))) MARK(cons(s(first(nil, from(y0))), z1)) -> c11(MARK(s(first(nil, from(y0))))) MARK(cons(s(first(y0, cons(y1, y2))), z1)) -> c11(MARK(s(first(y0, cons(y1, y2))))) MARK(cons(s(first(0, cons(y0, y1))), z1)) -> c11(MARK(s(first(0, cons(y0, y1))))) MARK(cons(s(first(nil, cons(y0, y1))), z1)) -> c11(MARK(s(first(nil, cons(y0, y1))))) MARK(cons(s(first(from(0), y0)), z1)) -> c11(MARK(s(first(from(0), y0)))) MARK(cons(s(first(from(nil), y0)), z1)) -> c11(MARK(s(first(from(nil), y0)))) MARK(cons(s(first(y0, cons(0, y1))), z1)) -> c11(MARK(s(first(y0, cons(0, y1))))) MARK(cons(s(first(y0, cons(nil, y1))), z1)) -> c11(MARK(s(first(y0, cons(nil, y1))))) MARK(cons(s(from(s(y0))), z1)) -> c11(MARK(s(from(s(y0))))) MARK(cons(s(from(cons(y0, y1))), z1)) -> c11(MARK(s(from(cons(y0, y1))))) MARK(cons(s(from(first(y0, y1))), z1)) -> c11(MARK(s(from(first(y0, y1))))) MARK(cons(s(from(first(y0, first(y1, y2)))), z1)) -> c11(MARK(s(from(first(y0, first(y1, y2)))))) MARK(cons(s(from(first(y0, from(y1)))), z1)) -> c11(MARK(s(from(first(y0, from(y1)))))) MARK(cons(s(from(first(y0, 0))), z1)) -> c11(MARK(s(from(first(y0, 0))))) MARK(cons(s(from(first(y0, nil))), z1)) -> c11(MARK(s(from(first(y0, nil))))) MARK(cons(s(from(first(y0, s(y1)))), z1)) -> c11(MARK(s(from(first(y0, s(y1)))))) MARK(cons(s(from(first(y0, cons(y1, y2)))), z1)) -> c11(MARK(s(from(first(y0, cons(y1, y2)))))) MARK(cons(s(from(first(first(y0, y1), y2))), z1)) -> c11(MARK(s(from(first(first(y0, y1), y2))))) MARK(cons(s(from(first(from(y0), y1))), z1)) -> c11(MARK(s(from(first(from(y0), y1))))) MARK(cons(s(from(first(0, y0))), z1)) -> c11(MARK(s(from(first(0, y0))))) MARK(cons(s(from(first(nil, y0))), z1)) -> c11(MARK(s(from(first(nil, y0))))) MARK(cons(s(from(first(s(y0), y1))), z1)) -> c11(MARK(s(from(first(s(y0), y1))))) MARK(cons(s(from(first(cons(y0, y1), y2))), z1)) -> c11(MARK(s(from(first(cons(y0, y1), y2))))) MARK(cons(s(from(from(y0))), z1)) -> c11(MARK(s(from(from(y0))))) MARK(cons(s(from(from(first(y0, y1)))), z1)) -> c11(MARK(s(from(from(first(y0, y1)))))) MARK(cons(s(from(from(from(y0)))), z1)) -> c11(MARK(s(from(from(from(y0)))))) MARK(cons(s(from(from(s(y0)))), z1)) -> c11(MARK(s(from(from(s(y0)))))) MARK(cons(s(from(from(cons(y0, y1)))), z1)) -> c11(MARK(s(from(from(cons(y0, y1)))))) MARK(cons(s(from(from(0))), z1)) -> c11(MARK(s(from(from(0))))) MARK(cons(s(from(from(nil))), z1)) -> c11(MARK(s(from(from(nil))))) ---------------------------------------- (158) Obligation: Complexity Dependency Tuples Problem Rules: a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(0) -> 0 mark(nil) -> nil mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(x0, from(x1))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), from(x1))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(first(x0, cons(from(z0), x2))) -> c5(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(s(z0), x2))) -> c5(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(first(first(z0, z1), cons(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(first(z0, z1))) MARK(first(from(z0), cons(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(first(s(z0), cons(x1, x2))) -> c5(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(s(z0))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(first(x0, first(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(first(x0, first(z0, z1)))) MARK(first(first(x0, from(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(first(x0, from(z0)))) MARK(first(first(x0, 0), x2)) -> c5(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(first(x0, 0))) MARK(first(first(x0, nil), x2)) -> c5(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(first(x0, nil))) MARK(first(first(x0, s(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(first(x0, s(z0)))) MARK(first(first(x0, cons(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(first(x0, cons(z0, z1)))) MARK(first(first(first(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(first(first(z0, z1), x1))) MARK(first(first(from(z0), x1), x2)) -> c5(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(first(from(z0), x1))) MARK(first(first(0, x1), x2)) -> c5(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(first(0, x1))) MARK(first(first(nil, x1), x2)) -> c5(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(first(nil, x1))) MARK(first(first(s(z0), x1), x2)) -> c5(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(first(s(z0), x1))) MARK(first(first(cons(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(first(cons(z0, z1), x1))) MARK(first(first(x0, x1), 0)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), nil)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), s(z0))) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), x2)) -> c5(MARK(first(x0, x1))) MARK(first(from(first(z0, z1)), x1)) -> c5(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(from(first(z0, z1)))) MARK(first(from(from(z0)), x1)) -> c5(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(first(from(s(z0)), x1)) -> c5(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(from(s(z0)))) MARK(first(from(cons(z0, z1)), x1)) -> c5(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(first(from(x0), x1)) -> c5(MARK(from(x0))) MARK(first(from(x0), 0)) -> c5(MARK(from(x0))) MARK(first(from(x0), nil)) -> c5(MARK(from(x0))) MARK(first(from(x0), s(z0))) -> c5(MARK(from(x0))) MARK(first(s(first(z0, z1)), x1)) -> c5(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(s(first(z0, z1)))) MARK(first(s(from(z0)), x1)) -> c5(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(s(from(z0)))) MARK(first(s(s(z0)), x1)) -> c5(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(s(s(z0)))) MARK(first(s(cons(z0, z1)), x1)) -> c5(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(s(cons(z0, z1)))) MARK(first(s(x0), x1)) -> c5(MARK(s(x0))) MARK(first(s(x0), 0)) -> c5(MARK(s(x0))) MARK(first(s(x0), nil)) -> c5(MARK(s(x0))) MARK(first(s(x0), s(z0))) -> c5(MARK(s(x0))) MARK(first(x0, first(x1, first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(first(x1, first(z0, z1)))) MARK(first(x0, first(x1, from(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(first(x1, from(z0)))) MARK(first(x0, first(x1, 0))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(first(x1, 0))) MARK(first(x0, first(x1, nil))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(first(x1, nil))) MARK(first(x0, first(x1, s(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(first(x1, s(z0)))) MARK(first(x0, first(x1, cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(first(x1, cons(z0, z1)))) MARK(first(x0, first(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(first(first(z0, z1), x2))) MARK(first(x0, first(from(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(first(from(z0), x2))) MARK(first(x0, first(0, x2))) -> c6(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(first(0, x2))) MARK(first(x0, first(nil, x2))) -> c6(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(first(nil, x2))) MARK(first(x0, first(s(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(first(s(z0), x2))) MARK(first(x0, first(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(first(cons(z0, z1), x2))) MARK(first(first(z0, z1), first(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(from(z0), first(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(s(z0), first(x1, x2))) -> c6(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(x0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(nil, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(cons(z0, z1), first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(x0, from(x1))) -> c6(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(first(x0, from(first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(from(first(z0, z1)))) MARK(first(x0, from(from(z0)))) -> c6(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(first(x0, from(s(z0)))) -> c6(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(from(s(z0)))) MARK(first(x0, from(cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(first(first(z0, z1), from(x1))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(first(from(z0), from(x1))) -> c6(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(s(z0), from(x1))) -> c6(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(x0, from(x1))) -> c6(MARK(from(x1))) MARK(first(0, from(x1))) -> c6(MARK(from(x1))) MARK(first(nil, from(x1))) -> c6(MARK(from(x1))) MARK(first(cons(z0, z1), from(x1))) -> c6(MARK(from(x1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(cons(first(z0, z1), x2))) MARK(first(x0, cons(from(z0), x2))) -> c6(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(first(x0, cons(s(z0), x2))) -> c6(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(cons(s(z0), x2))) MARK(first(x0, cons(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(first(first(z0, z1), cons(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(from(z0), cons(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(s(z0), cons(x1, x2))) -> c6(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(x0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(nil, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(first(x0, first(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(first(first(x0, from(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, 0), x2)) -> c6(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(x2)) MARK(first(first(x0, nil), x2)) -> c6(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(x2)) MARK(first(first(x0, s(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, cons(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(first(first(first(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(from(z0), x1), x2)) -> c6(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(0, x1), x2)) -> c6(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(nil, x1), x2)) -> c6(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(s(z0), x1), x2)) -> c6(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(cons(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(x0, x1), s(z0))) -> c6(MARK(s(z0))) MARK(first(first(x0, x1), x2)) -> c6(MARK(x2)) MARK(first(from(first(z0, z1)), x1)) -> c6(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(first(from(from(z0)), x1)) -> c6(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(first(from(0), x1)) -> c6(A__FIRST(a__from(0), mark(x1)), MARK(x1)) MARK(first(from(nil), x1)) -> c6(A__FIRST(a__from(nil), mark(x1)), MARK(x1)) MARK(first(from(s(z0)), x1)) -> c6(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(x1)) MARK(first(from(cons(z0, z1)), x1)) -> c6(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(first(from(x0), s(z0))) -> c6(MARK(s(z0))) MARK(first(from(x0), x1)) -> c6(MARK(x1)) MARK(first(s(first(z0, z1)), x1)) -> c6(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(first(s(from(z0)), x1)) -> c6(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(first(s(0), x1)) -> c6(A__FIRST(s(0), mark(x1)), MARK(x1)) MARK(first(s(nil), x1)) -> c6(A__FIRST(s(nil), mark(x1)), MARK(x1)) MARK(first(s(s(z0)), x1)) -> c6(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(x1)) MARK(first(s(cons(z0, z1)), x1)) -> c6(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(first(s(x0), s(z0))) -> c6(MARK(s(z0))) A__FIRST(s(z0), cons(from(y0), z2)) -> c1(MARK(from(y0))) A__FIRST(s(z0), cons(s(y0), z2)) -> c1(MARK(s(y0))) A__FIRST(s(z0), cons(cons(y0, y1), z2)) -> c1(MARK(cons(y0, y1))) A__FIRST(s(z0), cons(first(y0, 0), z2)) -> c1(MARK(first(y0, 0))) A__FIRST(s(z0), cons(first(y0, nil), z2)) -> c1(MARK(first(y0, nil))) A__FIRST(s(z0), cons(first(y0, s(y1)), z2)) -> c1(MARK(first(y0, s(y1)))) A__FIRST(s(z0), cons(first(cons(y0, y1), y2), z2)) -> c1(MARK(first(cons(y0, y1), y2))) A__FIRST(s(z0), cons(first(0, y0), z2)) -> c1(MARK(first(0, y0))) A__FIRST(s(z0), cons(first(nil, y0), z2)) -> c1(MARK(first(nil, y0))) A__FIRST(s(z0), cons(first(y0, first(y1, first(y2, y3))), z2)) -> c1(MARK(first(y0, first(y1, first(y2, y3))))) A__FIRST(s(z0), cons(first(y0, first(y1, from(y2))), z2)) -> c1(MARK(first(y0, first(y1, from(y2))))) A__FIRST(s(z0), cons(first(y0, first(y1, 0)), z2)) -> c1(MARK(first(y0, first(y1, 0)))) A__FIRST(s(z0), cons(first(y0, first(y1, nil)), z2)) -> c1(MARK(first(y0, first(y1, nil)))) A__FIRST(s(z0), cons(first(y0, first(y1, s(y2))), z2)) -> c1(MARK(first(y0, first(y1, s(y2))))) A__FIRST(s(z0), cons(first(y0, first(y1, cons(y2, y3))), z2)) -> c1(MARK(first(y0, first(y1, cons(y2, y3))))) A__FIRST(s(z0), cons(first(y0, first(first(y1, y2), y3)), z2)) -> c1(MARK(first(y0, first(first(y1, y2), y3)))) A__FIRST(s(z0), cons(first(y0, first(from(y1), y2)), z2)) -> c1(MARK(first(y0, first(from(y1), y2)))) A__FIRST(s(z0), cons(first(y0, first(0, y1)), z2)) -> c1(MARK(first(y0, first(0, y1)))) A__FIRST(s(z0), cons(first(y0, first(nil, y1)), z2)) -> c1(MARK(first(y0, first(nil, y1)))) A__FIRST(s(z0), cons(first(y0, first(s(y1), y2)), z2)) -> c1(MARK(first(y0, first(s(y1), y2)))) A__FIRST(s(z0), cons(first(y0, first(cons(y1, y2), y3)), z2)) -> c1(MARK(first(y0, first(cons(y1, y2), y3)))) A__FIRST(s(z0), cons(first(first(y0, y1), first(y2, y3)), z2)) -> c1(MARK(first(first(y0, y1), first(y2, y3)))) A__FIRST(s(z0), cons(first(from(y0), first(y1, y2)), z2)) -> c1(MARK(first(from(y0), first(y1, y2)))) A__FIRST(s(z0), cons(first(s(y0), first(y1, y2)), z2)) -> c1(MARK(first(s(y0), first(y1, y2)))) A__FIRST(s(z0), cons(first(y0, first(y1, y2)), z2)) -> c1(MARK(first(y0, first(y1, y2)))) A__FIRST(s(z0), cons(first(cons(y0, y1), first(y2, y3)), z2)) -> c1(MARK(first(cons(y0, y1), first(y2, y3)))) A__FIRST(s(z0), cons(first(y0, from(y1)), z2)) -> c1(MARK(first(y0, from(y1)))) A__FIRST(s(z0), cons(first(y0, from(first(y1, y2))), z2)) -> c1(MARK(first(y0, from(first(y1, y2))))) A__FIRST(s(z0), cons(first(y0, from(from(y1))), z2)) -> c1(MARK(first(y0, from(from(y1))))) A__FIRST(s(z0), cons(first(y0, from(0)), z2)) -> c1(MARK(first(y0, from(0)))) A__FIRST(s(z0), cons(first(y0, from(nil)), z2)) -> c1(MARK(first(y0, from(nil)))) A__FIRST(s(z0), cons(first(y0, from(s(y1))), z2)) -> c1(MARK(first(y0, from(s(y1))))) A__FIRST(s(z0), cons(first(y0, from(cons(y1, y2))), z2)) -> c1(MARK(first(y0, from(cons(y1, y2))))) A__FIRST(s(z0), cons(first(first(y0, y1), from(y2)), z2)) -> c1(MARK(first(first(y0, y1), from(y2)))) A__FIRST(s(z0), cons(first(from(y0), from(y1)), z2)) -> c1(MARK(first(from(y0), from(y1)))) A__FIRST(s(z0), cons(first(s(y0), from(y1)), z2)) -> c1(MARK(first(s(y0), from(y1)))) A__FIRST(s(z0), cons(first(cons(y0, y1), from(y2)), z2)) -> c1(MARK(first(cons(y0, y1), from(y2)))) A__FIRST(s(z0), cons(first(y0, cons(first(y1, y2), y3)), z2)) -> c1(MARK(first(y0, cons(first(y1, y2), y3)))) A__FIRST(s(z0), cons(first(y0, cons(from(y1), y2)), z2)) -> c1(MARK(first(y0, cons(from(y1), y2)))) A__FIRST(s(z0), cons(first(y0, cons(0, y1)), z2)) -> c1(MARK(first(y0, cons(0, y1)))) A__FIRST(s(z0), cons(first(y0, cons(nil, y1)), z2)) -> c1(MARK(first(y0, cons(nil, y1)))) A__FIRST(s(z0), cons(first(y0, cons(s(y1), y2)), z2)) -> c1(MARK(first(y0, cons(s(y1), y2)))) A__FIRST(s(z0), cons(first(y0, cons(cons(y1, y2), y3)), z2)) -> c1(MARK(first(y0, cons(cons(y1, y2), y3)))) A__FIRST(s(z0), cons(first(first(y0, y1), cons(y2, y3)), z2)) -> c1(MARK(first(first(y0, y1), cons(y2, y3)))) A__FIRST(s(z0), cons(first(from(y0), cons(y1, y2)), z2)) -> c1(MARK(first(from(y0), cons(y1, y2)))) A__FIRST(s(z0), cons(first(s(y0), cons(y1, y2)), z2)) -> c1(MARK(first(s(y0), cons(y1, y2)))) A__FIRST(s(z0), cons(first(cons(y0, y1), cons(y2, y3)), z2)) -> c1(MARK(first(cons(y0, y1), cons(y2, y3)))) A__FIRST(s(z0), cons(first(first(y0, first(y1, y2)), y3), z2)) -> c1(MARK(first(first(y0, first(y1, y2)), y3))) A__FIRST(s(z0), cons(first(first(y0, from(y1)), y2), z2)) -> c1(MARK(first(first(y0, from(y1)), y2))) A__FIRST(s(z0), cons(first(first(y0, 0), y1), z2)) -> c1(MARK(first(first(y0, 0), y1))) A__FIRST(s(z0), cons(first(first(y0, nil), y1), z2)) -> c1(MARK(first(first(y0, nil), y1))) A__FIRST(s(z0), cons(first(first(y0, s(y1)), y2), z2)) -> c1(MARK(first(first(y0, s(y1)), y2))) A__FIRST(s(z0), cons(first(first(y0, cons(y1, y2)), y3), z2)) -> c1(MARK(first(first(y0, cons(y1, y2)), y3))) A__FIRST(s(z0), cons(first(first(first(y0, y1), y2), y3), z2)) -> c1(MARK(first(first(first(y0, y1), y2), y3))) A__FIRST(s(z0), cons(first(first(from(y0), y1), y2), z2)) -> c1(MARK(first(first(from(y0), y1), y2))) A__FIRST(s(z0), cons(first(first(0, y0), y1), z2)) -> c1(MARK(first(first(0, y0), y1))) A__FIRST(s(z0), cons(first(first(nil, y0), y1), z2)) -> c1(MARK(first(first(nil, y0), y1))) A__FIRST(s(z0), cons(first(first(s(y0), y1), y2), z2)) -> c1(MARK(first(first(s(y0), y1), y2))) A__FIRST(s(z0), cons(first(first(cons(y0, y1), y2), y3), z2)) -> c1(MARK(first(first(cons(y0, y1), y2), y3))) A__FIRST(s(z0), cons(first(first(y0, y1), 0), z2)) -> c1(MARK(first(first(y0, y1), 0))) A__FIRST(s(z0), cons(first(first(y0, y1), nil), z2)) -> c1(MARK(first(first(y0, y1), nil))) A__FIRST(s(z0), cons(first(first(y0, y1), s(y2)), z2)) -> c1(MARK(first(first(y0, y1), s(y2)))) A__FIRST(s(z0), cons(first(first(y0, y1), y2), z2)) -> c1(MARK(first(first(y0, y1), y2))) A__FIRST(s(z0), cons(first(from(first(y0, y1)), y2), z2)) -> c1(MARK(first(from(first(y0, y1)), y2))) A__FIRST(s(z0), cons(first(from(from(y0)), y1), z2)) -> c1(MARK(first(from(from(y0)), y1))) A__FIRST(s(z0), cons(first(from(0), y0), z2)) -> c1(MARK(first(from(0), y0))) A__FIRST(s(z0), cons(first(from(nil), y0), z2)) -> c1(MARK(first(from(nil), y0))) A__FIRST(s(z0), cons(first(from(s(y0)), y1), z2)) -> c1(MARK(first(from(s(y0)), y1))) A__FIRST(s(z0), cons(first(from(cons(y0, y1)), y2), z2)) -> c1(MARK(first(from(cons(y0, y1)), y2))) A__FIRST(s(z0), cons(first(from(y0), y1), z2)) -> c1(MARK(first(from(y0), y1))) A__FIRST(s(z0), cons(first(from(y0), 0), z2)) -> c1(MARK(first(from(y0), 0))) A__FIRST(s(z0), cons(first(from(y0), nil), z2)) -> c1(MARK(first(from(y0), nil))) A__FIRST(s(z0), cons(first(from(y0), s(y1)), z2)) -> c1(MARK(first(from(y0), s(y1)))) A__FIRST(s(z0), cons(first(s(first(y0, y1)), y2), z2)) -> c1(MARK(first(s(first(y0, y1)), y2))) A__FIRST(s(z0), cons(first(s(from(y0)), y1), z2)) -> c1(MARK(first(s(from(y0)), y1))) A__FIRST(s(z0), cons(first(s(0), y0), z2)) -> c1(MARK(first(s(0), y0))) A__FIRST(s(z0), cons(first(s(nil), y0), z2)) -> c1(MARK(first(s(nil), y0))) A__FIRST(s(z0), cons(first(s(s(y0)), y1), z2)) -> c1(MARK(first(s(s(y0)), y1))) A__FIRST(s(z0), cons(first(s(cons(y0, y1)), y2), z2)) -> c1(MARK(first(s(cons(y0, y1)), y2))) A__FIRST(s(z0), cons(first(s(y0), y1), z2)) -> c1(MARK(first(s(y0), y1))) A__FIRST(s(z0), cons(first(s(y0), 0), z2)) -> c1(MARK(first(s(y0), 0))) A__FIRST(s(z0), cons(first(s(y0), nil), z2)) -> c1(MARK(first(s(y0), nil))) A__FIRST(s(z0), cons(first(s(y0), s(y1)), z2)) -> c1(MARK(first(s(y0), s(y1)))) A__FIRST(s(z0), cons(first(0, first(y0, y1)), z2)) -> c1(MARK(first(0, first(y0, y1)))) A__FIRST(s(z0), cons(first(nil, first(y0, y1)), z2)) -> c1(MARK(first(nil, first(y0, y1)))) A__FIRST(s(z0), cons(first(0, from(y0)), z2)) -> c1(MARK(first(0, from(y0)))) A__FIRST(s(z0), cons(first(nil, from(y0)), z2)) -> c1(MARK(first(nil, from(y0)))) A__FIRST(s(z0), cons(first(y0, cons(y1, y2)), z2)) -> c1(MARK(first(y0, cons(y1, y2)))) A__FIRST(s(z0), cons(first(0, cons(y0, y1)), z2)) -> c1(MARK(first(0, cons(y0, y1)))) A__FIRST(s(z0), cons(first(nil, cons(y0, y1)), z2)) -> c1(MARK(first(nil, cons(y0, y1)))) MARK(first(x0, cons(0, x2))) -> c5(MARK(x0)) MARK(first(x0, cons(nil, x2))) -> c5(MARK(x0)) MARK(first(x0, cons(0, x2))) -> c6(MARK(cons(0, x2))) MARK(first(x0, cons(nil, x2))) -> c6(MARK(cons(nil, x2))) A__FROM(from(y0)) -> c3(MARK(from(y0))) A__FROM(s(y0)) -> c3(MARK(s(y0))) A__FROM(cons(y0, y1)) -> c3(MARK(cons(y0, y1))) A__FROM(first(y0, 0)) -> c3(MARK(first(y0, 0))) A__FROM(first(y0, nil)) -> c3(MARK(first(y0, nil))) A__FROM(first(y0, s(y1))) -> c3(MARK(first(y0, s(y1)))) A__FROM(first(cons(y0, y1), y2)) -> c3(MARK(first(cons(y0, y1), y2))) A__FROM(first(0, y0)) -> c3(MARK(first(0, y0))) A__FROM(first(nil, y0)) -> c3(MARK(first(nil, y0))) A__FROM(first(y0, first(y1, first(y2, y3)))) -> c3(MARK(first(y0, first(y1, first(y2, y3))))) A__FROM(first(y0, first(y1, from(y2)))) -> c3(MARK(first(y0, first(y1, from(y2))))) A__FROM(first(y0, first(y1, 0))) -> c3(MARK(first(y0, first(y1, 0)))) A__FROM(first(y0, first(y1, nil))) -> c3(MARK(first(y0, first(y1, nil)))) A__FROM(first(y0, first(y1, s(y2)))) -> c3(MARK(first(y0, first(y1, s(y2))))) A__FROM(first(y0, first(y1, cons(y2, y3)))) -> c3(MARK(first(y0, first(y1, cons(y2, y3))))) A__FROM(first(y0, first(first(y1, y2), y3))) -> c3(MARK(first(y0, first(first(y1, y2), y3)))) A__FROM(first(y0, first(from(y1), y2))) -> c3(MARK(first(y0, first(from(y1), y2)))) A__FROM(first(y0, first(0, y1))) -> c3(MARK(first(y0, first(0, y1)))) A__FROM(first(y0, first(nil, y1))) -> c3(MARK(first(y0, first(nil, y1)))) A__FROM(first(y0, first(s(y1), y2))) -> c3(MARK(first(y0, first(s(y1), y2)))) A__FROM(first(y0, first(cons(y1, y2), y3))) -> c3(MARK(first(y0, first(cons(y1, y2), y3)))) A__FROM(first(first(y0, y1), first(y2, y3))) -> c3(MARK(first(first(y0, y1), first(y2, y3)))) A__FROM(first(from(y0), first(y1, y2))) -> c3(MARK(first(from(y0), first(y1, y2)))) A__FROM(first(s(y0), first(y1, y2))) -> c3(MARK(first(s(y0), first(y1, y2)))) A__FROM(first(y0, first(y1, y2))) -> c3(MARK(first(y0, first(y1, y2)))) A__FROM(first(cons(y0, y1), first(y2, y3))) -> c3(MARK(first(cons(y0, y1), first(y2, y3)))) A__FROM(first(y0, from(y1))) -> c3(MARK(first(y0, from(y1)))) A__FROM(first(y0, from(first(y1, y2)))) -> c3(MARK(first(y0, from(first(y1, y2))))) A__FROM(first(y0, from(from(y1)))) -> c3(MARK(first(y0, from(from(y1))))) A__FROM(first(y0, from(0))) -> c3(MARK(first(y0, from(0)))) A__FROM(first(y0, from(nil))) -> c3(MARK(first(y0, from(nil)))) A__FROM(first(y0, from(s(y1)))) -> c3(MARK(first(y0, from(s(y1))))) A__FROM(first(y0, from(cons(y1, y2)))) -> c3(MARK(first(y0, from(cons(y1, y2))))) A__FROM(first(first(y0, y1), from(y2))) -> c3(MARK(first(first(y0, y1), from(y2)))) A__FROM(first(from(y0), from(y1))) -> c3(MARK(first(from(y0), from(y1)))) A__FROM(first(s(y0), from(y1))) -> c3(MARK(first(s(y0), from(y1)))) A__FROM(first(cons(y0, y1), from(y2))) -> c3(MARK(first(cons(y0, y1), from(y2)))) A__FROM(first(y0, cons(first(y1, y2), y3))) -> c3(MARK(first(y0, cons(first(y1, y2), y3)))) A__FROM(first(y0, cons(from(y1), y2))) -> c3(MARK(first(y0, cons(from(y1), y2)))) A__FROM(first(y0, cons(s(y1), y2))) -> c3(MARK(first(y0, cons(s(y1), y2)))) A__FROM(first(y0, cons(cons(y1, y2), y3))) -> c3(MARK(first(y0, cons(cons(y1, y2), y3)))) A__FROM(first(first(y0, y1), cons(y2, y3))) -> c3(MARK(first(first(y0, y1), cons(y2, y3)))) A__FROM(first(from(y0), cons(y1, y2))) -> c3(MARK(first(from(y0), cons(y1, y2)))) A__FROM(first(s(y0), cons(y1, y2))) -> c3(MARK(first(s(y0), cons(y1, y2)))) A__FROM(first(cons(y0, y1), cons(y2, y3))) -> c3(MARK(first(cons(y0, y1), cons(y2, y3)))) A__FROM(first(first(y0, first(y1, y2)), y3)) -> c3(MARK(first(first(y0, first(y1, y2)), y3))) A__FROM(first(first(y0, from(y1)), y2)) -> c3(MARK(first(first(y0, from(y1)), y2))) A__FROM(first(first(y0, 0), y1)) -> c3(MARK(first(first(y0, 0), y1))) A__FROM(first(first(y0, nil), y1)) -> c3(MARK(first(first(y0, nil), y1))) A__FROM(first(first(y0, s(y1)), y2)) -> c3(MARK(first(first(y0, s(y1)), y2))) A__FROM(first(first(y0, cons(y1, y2)), y3)) -> c3(MARK(first(first(y0, cons(y1, y2)), y3))) A__FROM(first(first(first(y0, y1), y2), y3)) -> c3(MARK(first(first(first(y0, y1), y2), y3))) A__FROM(first(first(from(y0), y1), y2)) -> c3(MARK(first(first(from(y0), y1), y2))) A__FROM(first(first(0, y0), y1)) -> c3(MARK(first(first(0, y0), y1))) A__FROM(first(first(nil, y0), y1)) -> c3(MARK(first(first(nil, y0), y1))) A__FROM(first(first(s(y0), y1), y2)) -> c3(MARK(first(first(s(y0), y1), y2))) A__FROM(first(first(cons(y0, y1), y2), y3)) -> c3(MARK(first(first(cons(y0, y1), y2), y3))) A__FROM(first(first(y0, y1), 0)) -> c3(MARK(first(first(y0, y1), 0))) A__FROM(first(first(y0, y1), nil)) -> c3(MARK(first(first(y0, y1), nil))) A__FROM(first(first(y0, y1), s(y2))) -> c3(MARK(first(first(y0, y1), s(y2)))) A__FROM(first(first(y0, y1), y2)) -> c3(MARK(first(first(y0, y1), y2))) A__FROM(first(from(first(y0, y1)), y2)) -> c3(MARK(first(from(first(y0, y1)), y2))) A__FROM(first(from(from(y0)), y1)) -> c3(MARK(first(from(from(y0)), y1))) A__FROM(first(from(0), y0)) -> c3(MARK(first(from(0), y0))) A__FROM(first(from(nil), y0)) -> c3(MARK(first(from(nil), y0))) A__FROM(first(from(s(y0)), y1)) -> c3(MARK(first(from(s(y0)), y1))) A__FROM(first(from(cons(y0, y1)), y2)) -> c3(MARK(first(from(cons(y0, y1)), y2))) A__FROM(first(from(y0), y1)) -> c3(MARK(first(from(y0), y1))) A__FROM(first(from(y0), 0)) -> c3(MARK(first(from(y0), 0))) A__FROM(first(from(y0), nil)) -> c3(MARK(first(from(y0), nil))) A__FROM(first(from(y0), s(y1))) -> c3(MARK(first(from(y0), s(y1)))) A__FROM(first(s(first(y0, y1)), y2)) -> c3(MARK(first(s(first(y0, y1)), y2))) A__FROM(first(s(from(y0)), y1)) -> c3(MARK(first(s(from(y0)), y1))) A__FROM(first(s(0), y0)) -> c3(MARK(first(s(0), y0))) A__FROM(first(s(nil), y0)) -> c3(MARK(first(s(nil), y0))) A__FROM(first(s(s(y0)), y1)) -> c3(MARK(first(s(s(y0)), y1))) A__FROM(first(s(cons(y0, y1)), y2)) -> c3(MARK(first(s(cons(y0, y1)), y2))) A__FROM(first(s(y0), y1)) -> c3(MARK(first(s(y0), y1))) A__FROM(first(s(y0), 0)) -> c3(MARK(first(s(y0), 0))) A__FROM(first(s(y0), nil)) -> c3(MARK(first(s(y0), nil))) A__FROM(first(s(y0), s(y1))) -> c3(MARK(first(s(y0), s(y1)))) A__FROM(first(0, first(y0, y1))) -> c3(MARK(first(0, first(y0, y1)))) A__FROM(first(nil, first(y0, y1))) -> c3(MARK(first(nil, first(y0, y1)))) A__FROM(first(0, from(y0))) -> c3(MARK(first(0, from(y0)))) A__FROM(first(nil, from(y0))) -> c3(MARK(first(nil, from(y0)))) A__FROM(first(y0, cons(y1, y2))) -> c3(MARK(first(y0, cons(y1, y2)))) A__FROM(first(0, cons(y0, y1))) -> c3(MARK(first(0, cons(y0, y1)))) A__FROM(first(nil, cons(y0, y1))) -> c3(MARK(first(nil, cons(y0, y1)))) A__FROM(first(y0, cons(0, y1))) -> c3(MARK(first(y0, cons(0, y1)))) A__FROM(first(y0, cons(nil, y1))) -> c3(MARK(first(y0, cons(nil, y1)))) MARK(from(s(z0))) -> c7(A__FROM(s(mark(z0))), MARK(s(z0))) MARK(from(cons(z0, z1))) -> c7(A__FROM(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(from(0), x1)) -> c5(A__FIRST(a__from(0), mark(x1))) MARK(first(from(nil), x1)) -> c5(A__FIRST(a__from(nil), mark(x1))) MARK(first(x0, from(0))) -> c6(A__FIRST(mark(x0), a__from(0))) MARK(first(x0, from(nil))) -> c6(A__FIRST(mark(x0), a__from(nil))) MARK(from(first(x0, x1))) -> c7(A__FROM(first(mark(x0), mark(x1))), MARK(first(x0, x1))) MARK(from(first(x0, first(z0, z1)))) -> c7(A__FROM(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) MARK(from(first(x0, from(z0)))) -> c7(A__FROM(a__first(mark(x0), a__from(mark(z0)))), MARK(first(x0, from(z0)))) MARK(from(first(x0, 0))) -> c7(A__FROM(a__first(mark(x0), 0)), MARK(first(x0, 0))) MARK(from(first(x0, nil))) -> c7(A__FROM(a__first(mark(x0), nil)), MARK(first(x0, nil))) MARK(from(first(x0, s(z0)))) -> c7(A__FROM(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) MARK(from(first(x0, cons(z0, z1)))) -> c7(A__FROM(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) MARK(from(first(first(z0, z1), x1))) -> c7(A__FROM(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) MARK(from(first(from(z0), x1))) -> c7(A__FROM(a__first(a__from(mark(z0)), mark(x1))), MARK(first(from(z0), x1))) MARK(from(first(0, x1))) -> c7(A__FROM(a__first(0, mark(x1))), MARK(first(0, x1))) MARK(from(first(nil, x1))) -> c7(A__FROM(a__first(nil, mark(x1))), MARK(first(nil, x1))) MARK(from(first(s(z0), x1))) -> c7(A__FROM(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) MARK(from(first(cons(z0, z1), x1))) -> c7(A__FROM(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) MARK(from(from(x0))) -> c7(A__FROM(cons(mark(mark(x0)), from(s(mark(x0))))), MARK(from(x0))) MARK(from(from(x0))) -> c7(A__FROM(from(mark(x0))), MARK(from(x0))) MARK(from(from(first(z0, z1)))) -> c7(A__FROM(a__from(a__first(mark(z0), mark(z1)))), MARK(from(first(z0, z1)))) MARK(from(from(from(z0)))) -> c7(A__FROM(a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(from(from(s(z0)))) -> c7(A__FROM(a__from(s(mark(z0)))), MARK(from(s(z0)))) MARK(from(from(cons(z0, z1)))) -> c7(A__FROM(a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(from(from(0))) -> c7(A__FROM(a__from(0))) MARK(from(from(nil))) -> c7(A__FROM(a__from(nil))) MARK(s(s(y0))) -> c10(MARK(s(y0))) MARK(s(cons(y0, y1))) -> c10(MARK(cons(y0, y1))) MARK(s(first(y0, 0))) -> c10(MARK(first(y0, 0))) MARK(s(first(y0, nil))) -> c10(MARK(first(y0, nil))) MARK(s(first(y0, s(y1)))) -> c10(MARK(first(y0, s(y1)))) MARK(s(first(cons(y0, y1), y2))) -> c10(MARK(first(cons(y0, y1), y2))) MARK(s(first(0, y0))) -> c10(MARK(first(0, y0))) MARK(s(first(nil, y0))) -> c10(MARK(first(nil, y0))) MARK(s(first(y0, first(y1, first(y2, y3))))) -> c10(MARK(first(y0, first(y1, first(y2, y3))))) MARK(s(first(y0, first(y1, from(y2))))) -> c10(MARK(first(y0, first(y1, from(y2))))) MARK(s(first(y0, first(y1, 0)))) -> c10(MARK(first(y0, first(y1, 0)))) MARK(s(first(y0, first(y1, nil)))) -> c10(MARK(first(y0, first(y1, nil)))) MARK(s(first(y0, first(y1, s(y2))))) -> c10(MARK(first(y0, first(y1, s(y2))))) MARK(s(first(y0, first(y1, cons(y2, y3))))) -> c10(MARK(first(y0, first(y1, cons(y2, y3))))) MARK(s(first(y0, first(first(y1, y2), y3)))) -> c10(MARK(first(y0, first(first(y1, y2), y3)))) MARK(s(first(y0, first(from(y1), y2)))) -> c10(MARK(first(y0, first(from(y1), y2)))) MARK(s(first(y0, first(0, y1)))) -> c10(MARK(first(y0, first(0, y1)))) MARK(s(first(y0, first(nil, y1)))) -> c10(MARK(first(y0, first(nil, y1)))) MARK(s(first(y0, first(s(y1), y2)))) -> c10(MARK(first(y0, first(s(y1), y2)))) MARK(s(first(y0, first(cons(y1, y2), y3)))) -> c10(MARK(first(y0, first(cons(y1, y2), y3)))) MARK(s(first(first(y0, y1), first(y2, y3)))) -> c10(MARK(first(first(y0, y1), first(y2, y3)))) MARK(s(first(from(y0), first(y1, y2)))) -> c10(MARK(first(from(y0), first(y1, y2)))) MARK(s(first(s(y0), first(y1, y2)))) -> c10(MARK(first(s(y0), first(y1, y2)))) MARK(s(first(y0, first(y1, y2)))) -> c10(MARK(first(y0, first(y1, y2)))) MARK(s(first(cons(y0, y1), first(y2, y3)))) -> c10(MARK(first(cons(y0, y1), first(y2, y3)))) MARK(s(first(y0, from(y1)))) -> c10(MARK(first(y0, from(y1)))) MARK(s(first(y0, from(first(y1, y2))))) -> c10(MARK(first(y0, from(first(y1, y2))))) MARK(s(first(y0, from(from(y1))))) -> c10(MARK(first(y0, from(from(y1))))) MARK(s(first(y0, from(0)))) -> c10(MARK(first(y0, from(0)))) MARK(s(first(y0, from(nil)))) -> c10(MARK(first(y0, from(nil)))) MARK(s(first(y0, from(s(y1))))) -> c10(MARK(first(y0, from(s(y1))))) MARK(s(first(y0, from(cons(y1, y2))))) -> c10(MARK(first(y0, from(cons(y1, y2))))) MARK(s(first(first(y0, y1), from(y2)))) -> c10(MARK(first(first(y0, y1), from(y2)))) MARK(s(first(from(y0), from(y1)))) -> c10(MARK(first(from(y0), from(y1)))) MARK(s(first(s(y0), from(y1)))) -> c10(MARK(first(s(y0), from(y1)))) MARK(s(first(cons(y0, y1), from(y2)))) -> c10(MARK(first(cons(y0, y1), from(y2)))) MARK(s(first(y0, cons(first(y1, y2), y3)))) -> c10(MARK(first(y0, cons(first(y1, y2), y3)))) MARK(s(first(y0, cons(from(y1), y2)))) -> c10(MARK(first(y0, cons(from(y1), y2)))) MARK(s(first(y0, cons(s(y1), y2)))) -> c10(MARK(first(y0, cons(s(y1), y2)))) MARK(s(first(y0, cons(cons(y1, y2), y3)))) -> c10(MARK(first(y0, cons(cons(y1, y2), y3)))) MARK(s(first(first(y0, y1), cons(y2, y3)))) -> c10(MARK(first(first(y0, y1), cons(y2, y3)))) MARK(s(first(from(y0), cons(y1, y2)))) -> c10(MARK(first(from(y0), cons(y1, y2)))) MARK(s(first(s(y0), cons(y1, y2)))) -> c10(MARK(first(s(y0), cons(y1, y2)))) MARK(s(first(cons(y0, y1), cons(y2, y3)))) -> c10(MARK(first(cons(y0, y1), cons(y2, y3)))) MARK(s(first(first(y0, first(y1, y2)), y3))) -> c10(MARK(first(first(y0, first(y1, y2)), y3))) MARK(s(first(first(y0, from(y1)), y2))) -> c10(MARK(first(first(y0, from(y1)), y2))) MARK(s(first(first(y0, 0), y1))) -> c10(MARK(first(first(y0, 0), y1))) MARK(s(first(first(y0, nil), y1))) -> c10(MARK(first(first(y0, nil), y1))) MARK(s(first(first(y0, s(y1)), y2))) -> c10(MARK(first(first(y0, s(y1)), y2))) MARK(s(first(first(y0, cons(y1, y2)), y3))) -> c10(MARK(first(first(y0, cons(y1, y2)), y3))) MARK(s(first(first(first(y0, y1), y2), y3))) -> c10(MARK(first(first(first(y0, y1), y2), y3))) MARK(s(first(first(from(y0), y1), y2))) -> c10(MARK(first(first(from(y0), y1), y2))) MARK(s(first(first(0, y0), y1))) -> c10(MARK(first(first(0, y0), y1))) MARK(s(first(first(nil, y0), y1))) -> c10(MARK(first(first(nil, y0), y1))) MARK(s(first(first(s(y0), y1), y2))) -> c10(MARK(first(first(s(y0), y1), y2))) MARK(s(first(first(cons(y0, y1), y2), y3))) -> c10(MARK(first(first(cons(y0, y1), y2), y3))) MARK(s(first(first(y0, y1), 0))) -> c10(MARK(first(first(y0, y1), 0))) MARK(s(first(first(y0, y1), nil))) -> c10(MARK(first(first(y0, y1), nil))) MARK(s(first(first(y0, y1), s(y2)))) -> c10(MARK(first(first(y0, y1), s(y2)))) MARK(s(first(first(y0, y1), y2))) -> c10(MARK(first(first(y0, y1), y2))) MARK(s(first(from(first(y0, y1)), y2))) -> c10(MARK(first(from(first(y0, y1)), y2))) MARK(s(first(from(from(y0)), y1))) -> c10(MARK(first(from(from(y0)), y1))) MARK(s(first(from(s(y0)), y1))) -> c10(MARK(first(from(s(y0)), y1))) MARK(s(first(from(cons(y0, y1)), y2))) -> c10(MARK(first(from(cons(y0, y1)), y2))) MARK(s(first(from(y0), y1))) -> c10(MARK(first(from(y0), y1))) MARK(s(first(from(y0), 0))) -> c10(MARK(first(from(y0), 0))) MARK(s(first(from(y0), nil))) -> c10(MARK(first(from(y0), nil))) MARK(s(first(from(y0), s(y1)))) -> c10(MARK(first(from(y0), s(y1)))) MARK(s(first(s(first(y0, y1)), y2))) -> c10(MARK(first(s(first(y0, y1)), y2))) MARK(s(first(s(from(y0)), y1))) -> c10(MARK(first(s(from(y0)), y1))) MARK(s(first(s(0), y0))) -> c10(MARK(first(s(0), y0))) MARK(s(first(s(nil), y0))) -> c10(MARK(first(s(nil), y0))) MARK(s(first(s(s(y0)), y1))) -> c10(MARK(first(s(s(y0)), y1))) MARK(s(first(s(cons(y0, y1)), y2))) -> c10(MARK(first(s(cons(y0, y1)), y2))) MARK(s(first(s(y0), y1))) -> c10(MARK(first(s(y0), y1))) MARK(s(first(s(y0), 0))) -> c10(MARK(first(s(y0), 0))) MARK(s(first(s(y0), nil))) -> c10(MARK(first(s(y0), nil))) MARK(s(first(s(y0), s(y1)))) -> c10(MARK(first(s(y0), s(y1)))) MARK(s(first(0, first(y0, y1)))) -> c10(MARK(first(0, first(y0, y1)))) MARK(s(first(nil, first(y0, y1)))) -> c10(MARK(first(nil, first(y0, y1)))) MARK(s(first(0, from(y0)))) -> c10(MARK(first(0, from(y0)))) MARK(s(first(nil, from(y0)))) -> c10(MARK(first(nil, from(y0)))) MARK(s(first(y0, cons(y1, y2)))) -> c10(MARK(first(y0, cons(y1, y2)))) MARK(s(first(0, cons(y0, y1)))) -> c10(MARK(first(0, cons(y0, y1)))) MARK(s(first(nil, cons(y0, y1)))) -> c10(MARK(first(nil, cons(y0, y1)))) MARK(s(first(from(0), y0))) -> c10(MARK(first(from(0), y0))) MARK(s(first(from(nil), y0))) -> c10(MARK(first(from(nil), y0))) MARK(s(first(y0, cons(0, y1)))) -> c10(MARK(first(y0, cons(0, y1)))) MARK(s(first(y0, cons(nil, y1)))) -> c10(MARK(first(y0, cons(nil, y1)))) MARK(s(from(s(y0)))) -> c10(MARK(from(s(y0)))) MARK(s(from(cons(y0, y1)))) -> c10(MARK(from(cons(y0, y1)))) MARK(s(from(first(y0, y1)))) -> c10(MARK(from(first(y0, y1)))) MARK(s(from(first(y0, first(y1, y2))))) -> c10(MARK(from(first(y0, first(y1, y2))))) MARK(s(from(first(y0, from(y1))))) -> c10(MARK(from(first(y0, from(y1))))) MARK(s(from(first(y0, 0)))) -> c10(MARK(from(first(y0, 0)))) MARK(s(from(first(y0, nil)))) -> c10(MARK(from(first(y0, nil)))) MARK(s(from(first(y0, s(y1))))) -> c10(MARK(from(first(y0, s(y1))))) MARK(s(from(first(y0, cons(y1, y2))))) -> c10(MARK(from(first(y0, cons(y1, y2))))) MARK(s(from(first(first(y0, y1), y2)))) -> c10(MARK(from(first(first(y0, y1), y2)))) MARK(s(from(first(from(y0), y1)))) -> c10(MARK(from(first(from(y0), y1)))) MARK(s(from(first(0, y0)))) -> c10(MARK(from(first(0, y0)))) MARK(s(from(first(nil, y0)))) -> c10(MARK(from(first(nil, y0)))) MARK(s(from(first(s(y0), y1)))) -> c10(MARK(from(first(s(y0), y1)))) MARK(s(from(first(cons(y0, y1), y2)))) -> c10(MARK(from(first(cons(y0, y1), y2)))) MARK(s(from(from(y0)))) -> c10(MARK(from(from(y0)))) MARK(s(from(from(first(y0, y1))))) -> c10(MARK(from(from(first(y0, y1))))) MARK(s(from(from(from(y0))))) -> c10(MARK(from(from(from(y0))))) MARK(s(from(from(s(y0))))) -> c10(MARK(from(from(s(y0))))) MARK(s(from(from(cons(y0, y1))))) -> c10(MARK(from(from(cons(y0, y1))))) MARK(s(from(from(0)))) -> c10(MARK(from(from(0)))) MARK(s(from(from(nil)))) -> c10(MARK(from(from(nil)))) MARK(first(s(0), x1)) -> c5(A__FIRST(s(0), mark(x1))) MARK(first(s(nil), x1)) -> c5(A__FIRST(s(nil), mark(x1))) MARK(cons(cons(y0, y1), z1)) -> c11(MARK(cons(y0, y1))) MARK(cons(first(y0, 0), z1)) -> c11(MARK(first(y0, 0))) MARK(cons(first(y0, nil), z1)) -> c11(MARK(first(y0, nil))) MARK(cons(first(y0, s(y1)), z1)) -> c11(MARK(first(y0, s(y1)))) MARK(cons(first(cons(y0, y1), y2), z1)) -> c11(MARK(first(cons(y0, y1), y2))) MARK(cons(first(0, y0), z1)) -> c11(MARK(first(0, y0))) MARK(cons(first(nil, y0), z1)) -> c11(MARK(first(nil, y0))) MARK(cons(first(y0, first(y1, first(y2, y3))), z1)) -> c11(MARK(first(y0, first(y1, first(y2, y3))))) MARK(cons(first(y0, first(y1, from(y2))), z1)) -> c11(MARK(first(y0, first(y1, from(y2))))) MARK(cons(first(y0, first(y1, 0)), z1)) -> c11(MARK(first(y0, first(y1, 0)))) MARK(cons(first(y0, first(y1, nil)), z1)) -> c11(MARK(first(y0, first(y1, nil)))) MARK(cons(first(y0, first(y1, s(y2))), z1)) -> c11(MARK(first(y0, first(y1, s(y2))))) MARK(cons(first(y0, first(y1, cons(y2, y3))), z1)) -> c11(MARK(first(y0, first(y1, cons(y2, y3))))) MARK(cons(first(y0, first(first(y1, y2), y3)), z1)) -> c11(MARK(first(y0, first(first(y1, y2), y3)))) MARK(cons(first(y0, first(from(y1), y2)), z1)) -> c11(MARK(first(y0, first(from(y1), y2)))) MARK(cons(first(y0, first(0, y1)), z1)) -> c11(MARK(first(y0, first(0, y1)))) MARK(cons(first(y0, first(nil, y1)), z1)) -> c11(MARK(first(y0, first(nil, y1)))) MARK(cons(first(y0, first(s(y1), y2)), z1)) -> c11(MARK(first(y0, first(s(y1), y2)))) MARK(cons(first(y0, first(cons(y1, y2), y3)), z1)) -> c11(MARK(first(y0, first(cons(y1, y2), y3)))) MARK(cons(first(first(y0, y1), first(y2, y3)), z1)) -> c11(MARK(first(first(y0, y1), first(y2, y3)))) MARK(cons(first(from(y0), first(y1, y2)), z1)) -> c11(MARK(first(from(y0), first(y1, y2)))) MARK(cons(first(s(y0), first(y1, y2)), z1)) -> c11(MARK(first(s(y0), first(y1, y2)))) MARK(cons(first(y0, first(y1, y2)), z1)) -> c11(MARK(first(y0, first(y1, y2)))) MARK(cons(first(cons(y0, y1), first(y2, y3)), z1)) -> c11(MARK(first(cons(y0, y1), first(y2, y3)))) MARK(cons(first(y0, from(y1)), z1)) -> c11(MARK(first(y0, from(y1)))) MARK(cons(first(y0, from(first(y1, y2))), z1)) -> c11(MARK(first(y0, from(first(y1, y2))))) MARK(cons(first(y0, from(from(y1))), z1)) -> c11(MARK(first(y0, from(from(y1))))) MARK(cons(first(y0, from(0)), z1)) -> c11(MARK(first(y0, from(0)))) MARK(cons(first(y0, from(nil)), z1)) -> c11(MARK(first(y0, from(nil)))) MARK(cons(first(y0, from(s(y1))), z1)) -> c11(MARK(first(y0, from(s(y1))))) MARK(cons(first(y0, from(cons(y1, y2))), z1)) -> c11(MARK(first(y0, from(cons(y1, y2))))) MARK(cons(first(first(y0, y1), from(y2)), z1)) -> c11(MARK(first(first(y0, y1), from(y2)))) MARK(cons(first(from(y0), from(y1)), z1)) -> c11(MARK(first(from(y0), from(y1)))) MARK(cons(first(s(y0), from(y1)), z1)) -> c11(MARK(first(s(y0), from(y1)))) MARK(cons(first(cons(y0, y1), from(y2)), z1)) -> c11(MARK(first(cons(y0, y1), from(y2)))) MARK(cons(first(y0, cons(first(y1, y2), y3)), z1)) -> c11(MARK(first(y0, cons(first(y1, y2), y3)))) MARK(cons(first(y0, cons(from(y1), y2)), z1)) -> c11(MARK(first(y0, cons(from(y1), y2)))) MARK(cons(first(y0, cons(s(y1), y2)), z1)) -> c11(MARK(first(y0, cons(s(y1), y2)))) MARK(cons(first(y0, cons(cons(y1, y2), y3)), z1)) -> c11(MARK(first(y0, cons(cons(y1, y2), y3)))) MARK(cons(first(first(y0, y1), cons(y2, y3)), z1)) -> c11(MARK(first(first(y0, y1), cons(y2, y3)))) MARK(cons(first(from(y0), cons(y1, y2)), z1)) -> c11(MARK(first(from(y0), cons(y1, y2)))) MARK(cons(first(s(y0), cons(y1, y2)), z1)) -> c11(MARK(first(s(y0), cons(y1, y2)))) MARK(cons(first(cons(y0, y1), cons(y2, y3)), z1)) -> c11(MARK(first(cons(y0, y1), cons(y2, y3)))) MARK(cons(first(first(y0, first(y1, y2)), y3), z1)) -> c11(MARK(first(first(y0, first(y1, y2)), y3))) MARK(cons(first(first(y0, from(y1)), y2), z1)) -> c11(MARK(first(first(y0, from(y1)), y2))) MARK(cons(first(first(y0, 0), y1), z1)) -> c11(MARK(first(first(y0, 0), y1))) MARK(cons(first(first(y0, nil), y1), z1)) -> c11(MARK(first(first(y0, nil), y1))) MARK(cons(first(first(y0, s(y1)), y2), z1)) -> c11(MARK(first(first(y0, s(y1)), y2))) MARK(cons(first(first(y0, cons(y1, y2)), y3), z1)) -> c11(MARK(first(first(y0, cons(y1, y2)), y3))) MARK(cons(first(first(first(y0, y1), y2), y3), z1)) -> c11(MARK(first(first(first(y0, y1), y2), y3))) MARK(cons(first(first(from(y0), y1), y2), z1)) -> c11(MARK(first(first(from(y0), y1), y2))) MARK(cons(first(first(0, y0), y1), z1)) -> c11(MARK(first(first(0, y0), y1))) MARK(cons(first(first(nil, y0), y1), z1)) -> c11(MARK(first(first(nil, y0), y1))) MARK(cons(first(first(s(y0), y1), y2), z1)) -> c11(MARK(first(first(s(y0), y1), y2))) MARK(cons(first(first(cons(y0, y1), y2), y3), z1)) -> c11(MARK(first(first(cons(y0, y1), y2), y3))) MARK(cons(first(first(y0, y1), 0), z1)) -> c11(MARK(first(first(y0, y1), 0))) MARK(cons(first(first(y0, y1), nil), z1)) -> c11(MARK(first(first(y0, y1), nil))) MARK(cons(first(first(y0, y1), s(y2)), z1)) -> c11(MARK(first(first(y0, y1), s(y2)))) MARK(cons(first(first(y0, y1), y2), z1)) -> c11(MARK(first(first(y0, y1), y2))) MARK(cons(first(from(first(y0, y1)), y2), z1)) -> c11(MARK(first(from(first(y0, y1)), y2))) MARK(cons(first(from(from(y0)), y1), z1)) -> c11(MARK(first(from(from(y0)), y1))) MARK(cons(first(from(s(y0)), y1), z1)) -> c11(MARK(first(from(s(y0)), y1))) MARK(cons(first(from(cons(y0, y1)), y2), z1)) -> c11(MARK(first(from(cons(y0, y1)), y2))) MARK(cons(first(from(y0), y1), z1)) -> c11(MARK(first(from(y0), y1))) MARK(cons(first(from(y0), 0), z1)) -> c11(MARK(first(from(y0), 0))) MARK(cons(first(from(y0), nil), z1)) -> c11(MARK(first(from(y0), nil))) MARK(cons(first(from(y0), s(y1)), z1)) -> c11(MARK(first(from(y0), s(y1)))) MARK(cons(first(s(first(y0, y1)), y2), z1)) -> c11(MARK(first(s(first(y0, y1)), y2))) MARK(cons(first(s(from(y0)), y1), z1)) -> c11(MARK(first(s(from(y0)), y1))) MARK(cons(first(s(s(y0)), y1), z1)) -> c11(MARK(first(s(s(y0)), y1))) MARK(cons(first(s(cons(y0, y1)), y2), z1)) -> c11(MARK(first(s(cons(y0, y1)), y2))) MARK(cons(first(s(y0), y1), z1)) -> c11(MARK(first(s(y0), y1))) MARK(cons(first(s(y0), 0), z1)) -> c11(MARK(first(s(y0), 0))) MARK(cons(first(s(y0), nil), z1)) -> c11(MARK(first(s(y0), nil))) MARK(cons(first(s(y0), s(y1)), z1)) -> c11(MARK(first(s(y0), s(y1)))) MARK(cons(first(0, first(y0, y1)), z1)) -> c11(MARK(first(0, first(y0, y1)))) MARK(cons(first(nil, first(y0, y1)), z1)) -> c11(MARK(first(nil, first(y0, y1)))) MARK(cons(first(0, from(y0)), z1)) -> c11(MARK(first(0, from(y0)))) MARK(cons(first(nil, from(y0)), z1)) -> c11(MARK(first(nil, from(y0)))) MARK(cons(first(y0, cons(y1, y2)), z1)) -> c11(MARK(first(y0, cons(y1, y2)))) MARK(cons(first(0, cons(y0, y1)), z1)) -> c11(MARK(first(0, cons(y0, y1)))) MARK(cons(first(nil, cons(y0, y1)), z1)) -> c11(MARK(first(nil, cons(y0, y1)))) MARK(cons(first(from(0), y0), z1)) -> c11(MARK(first(from(0), y0))) MARK(cons(first(from(nil), y0), z1)) -> c11(MARK(first(from(nil), y0))) MARK(cons(first(s(0), y0), z1)) -> c11(MARK(first(s(0), y0))) MARK(cons(first(s(nil), y0), z1)) -> c11(MARK(first(s(nil), y0))) MARK(cons(first(y0, cons(0, y1)), z1)) -> c11(MARK(first(y0, cons(0, y1)))) MARK(cons(first(y0, cons(nil, y1)), z1)) -> c11(MARK(first(y0, cons(nil, y1)))) MARK(cons(from(s(y0)), z1)) -> c11(MARK(from(s(y0)))) MARK(cons(from(cons(y0, y1)), z1)) -> c11(MARK(from(cons(y0, y1)))) MARK(cons(from(first(y0, y1)), z1)) -> c11(MARK(from(first(y0, y1)))) MARK(cons(from(first(y0, first(y1, y2))), z1)) -> c11(MARK(from(first(y0, first(y1, y2))))) MARK(cons(from(first(y0, from(y1))), z1)) -> c11(MARK(from(first(y0, from(y1))))) MARK(cons(from(first(y0, 0)), z1)) -> c11(MARK(from(first(y0, 0)))) MARK(cons(from(first(y0, nil)), z1)) -> c11(MARK(from(first(y0, nil)))) MARK(cons(from(first(y0, s(y1))), z1)) -> c11(MARK(from(first(y0, s(y1))))) MARK(cons(from(first(y0, cons(y1, y2))), z1)) -> c11(MARK(from(first(y0, cons(y1, y2))))) MARK(cons(from(first(first(y0, y1), y2)), z1)) -> c11(MARK(from(first(first(y0, y1), y2)))) MARK(cons(from(first(from(y0), y1)), z1)) -> c11(MARK(from(first(from(y0), y1)))) MARK(cons(from(first(0, y0)), z1)) -> c11(MARK(from(first(0, y0)))) MARK(cons(from(first(nil, y0)), z1)) -> c11(MARK(from(first(nil, y0)))) MARK(cons(from(first(s(y0), y1)), z1)) -> c11(MARK(from(first(s(y0), y1)))) MARK(cons(from(first(cons(y0, y1), y2)), z1)) -> c11(MARK(from(first(cons(y0, y1), y2)))) MARK(cons(from(from(y0)), z1)) -> c11(MARK(from(from(y0)))) MARK(cons(from(from(first(y0, y1))), z1)) -> c11(MARK(from(from(first(y0, y1))))) MARK(cons(from(from(from(y0))), z1)) -> c11(MARK(from(from(from(y0))))) MARK(cons(from(from(s(y0))), z1)) -> c11(MARK(from(from(s(y0))))) MARK(cons(from(from(cons(y0, y1))), z1)) -> c11(MARK(from(from(cons(y0, y1))))) MARK(cons(from(from(0)), z1)) -> c11(MARK(from(from(0)))) MARK(cons(from(from(nil)), z1)) -> c11(MARK(from(from(nil)))) MARK(cons(s(s(y0)), z1)) -> c11(MARK(s(s(y0)))) MARK(cons(s(cons(y0, y1)), z1)) -> c11(MARK(s(cons(y0, y1)))) MARK(cons(s(first(y0, 0)), z1)) -> c11(MARK(s(first(y0, 0)))) MARK(cons(s(first(y0, nil)), z1)) -> c11(MARK(s(first(y0, nil)))) MARK(cons(s(first(y0, s(y1))), z1)) -> c11(MARK(s(first(y0, s(y1))))) MARK(cons(s(first(cons(y0, y1), y2)), z1)) -> c11(MARK(s(first(cons(y0, y1), y2)))) MARK(cons(s(first(0, y0)), z1)) -> c11(MARK(s(first(0, y0)))) MARK(cons(s(first(nil, y0)), z1)) -> c11(MARK(s(first(nil, y0)))) MARK(cons(s(first(y0, first(y1, first(y2, y3)))), z1)) -> c11(MARK(s(first(y0, first(y1, first(y2, y3)))))) MARK(cons(s(first(y0, first(y1, from(y2)))), z1)) -> c11(MARK(s(first(y0, first(y1, from(y2)))))) MARK(cons(s(first(y0, first(y1, 0))), z1)) -> c11(MARK(s(first(y0, first(y1, 0))))) MARK(cons(s(first(y0, first(y1, nil))), z1)) -> c11(MARK(s(first(y0, first(y1, nil))))) MARK(cons(s(first(y0, first(y1, s(y2)))), z1)) -> c11(MARK(s(first(y0, first(y1, s(y2)))))) MARK(cons(s(first(y0, first(y1, cons(y2, y3)))), z1)) -> c11(MARK(s(first(y0, first(y1, cons(y2, y3)))))) MARK(cons(s(first(y0, first(first(y1, y2), y3))), z1)) -> c11(MARK(s(first(y0, first(first(y1, y2), y3))))) MARK(cons(s(first(y0, first(from(y1), y2))), z1)) -> c11(MARK(s(first(y0, first(from(y1), y2))))) MARK(cons(s(first(y0, first(0, y1))), z1)) -> c11(MARK(s(first(y0, first(0, y1))))) MARK(cons(s(first(y0, first(nil, y1))), z1)) -> c11(MARK(s(first(y0, first(nil, y1))))) MARK(cons(s(first(y0, first(s(y1), y2))), z1)) -> c11(MARK(s(first(y0, first(s(y1), y2))))) MARK(cons(s(first(y0, first(cons(y1, y2), y3))), z1)) -> c11(MARK(s(first(y0, first(cons(y1, y2), y3))))) MARK(cons(s(first(first(y0, y1), first(y2, y3))), z1)) -> c11(MARK(s(first(first(y0, y1), first(y2, y3))))) MARK(cons(s(first(from(y0), first(y1, y2))), z1)) -> c11(MARK(s(first(from(y0), first(y1, y2))))) MARK(cons(s(first(s(y0), first(y1, y2))), z1)) -> c11(MARK(s(first(s(y0), first(y1, y2))))) MARK(cons(s(first(y0, first(y1, y2))), z1)) -> c11(MARK(s(first(y0, first(y1, y2))))) MARK(cons(s(first(cons(y0, y1), first(y2, y3))), z1)) -> c11(MARK(s(first(cons(y0, y1), first(y2, y3))))) MARK(cons(s(first(y0, from(y1))), z1)) -> c11(MARK(s(first(y0, from(y1))))) MARK(cons(s(first(y0, from(first(y1, y2)))), z1)) -> c11(MARK(s(first(y0, from(first(y1, y2)))))) MARK(cons(s(first(y0, from(from(y1)))), z1)) -> c11(MARK(s(first(y0, from(from(y1)))))) MARK(cons(s(first(y0, from(0))), z1)) -> c11(MARK(s(first(y0, from(0))))) MARK(cons(s(first(y0, from(nil))), z1)) -> c11(MARK(s(first(y0, from(nil))))) MARK(cons(s(first(y0, from(s(y1)))), z1)) -> c11(MARK(s(first(y0, from(s(y1)))))) MARK(cons(s(first(y0, from(cons(y1, y2)))), z1)) -> c11(MARK(s(first(y0, from(cons(y1, y2)))))) MARK(cons(s(first(first(y0, y1), from(y2))), z1)) -> c11(MARK(s(first(first(y0, y1), from(y2))))) MARK(cons(s(first(from(y0), from(y1))), z1)) -> c11(MARK(s(first(from(y0), from(y1))))) MARK(cons(s(first(s(y0), from(y1))), z1)) -> c11(MARK(s(first(s(y0), from(y1))))) MARK(cons(s(first(cons(y0, y1), from(y2))), z1)) -> c11(MARK(s(first(cons(y0, y1), from(y2))))) MARK(cons(s(first(y0, cons(first(y1, y2), y3))), z1)) -> c11(MARK(s(first(y0, cons(first(y1, y2), y3))))) MARK(cons(s(first(y0, cons(from(y1), y2))), z1)) -> c11(MARK(s(first(y0, cons(from(y1), y2))))) MARK(cons(s(first(y0, cons(s(y1), y2))), z1)) -> c11(MARK(s(first(y0, cons(s(y1), y2))))) MARK(cons(s(first(y0, cons(cons(y1, y2), y3))), z1)) -> c11(MARK(s(first(y0, cons(cons(y1, y2), y3))))) MARK(cons(s(first(first(y0, y1), cons(y2, y3))), z1)) -> c11(MARK(s(first(first(y0, y1), cons(y2, y3))))) MARK(cons(s(first(from(y0), cons(y1, y2))), z1)) -> c11(MARK(s(first(from(y0), cons(y1, y2))))) MARK(cons(s(first(s(y0), cons(y1, y2))), z1)) -> c11(MARK(s(first(s(y0), cons(y1, y2))))) MARK(cons(s(first(cons(y0, y1), cons(y2, y3))), z1)) -> c11(MARK(s(first(cons(y0, y1), cons(y2, y3))))) MARK(cons(s(first(first(y0, first(y1, y2)), y3)), z1)) -> c11(MARK(s(first(first(y0, first(y1, y2)), y3)))) MARK(cons(s(first(first(y0, from(y1)), y2)), z1)) -> c11(MARK(s(first(first(y0, from(y1)), y2)))) MARK(cons(s(first(first(y0, 0), y1)), z1)) -> c11(MARK(s(first(first(y0, 0), y1)))) MARK(cons(s(first(first(y0, nil), y1)), z1)) -> c11(MARK(s(first(first(y0, nil), y1)))) MARK(cons(s(first(first(y0, s(y1)), y2)), z1)) -> c11(MARK(s(first(first(y0, s(y1)), y2)))) MARK(cons(s(first(first(y0, cons(y1, y2)), y3)), z1)) -> c11(MARK(s(first(first(y0, cons(y1, y2)), y3)))) MARK(cons(s(first(first(first(y0, y1), y2), y3)), z1)) -> c11(MARK(s(first(first(first(y0, y1), y2), y3)))) MARK(cons(s(first(first(from(y0), y1), y2)), z1)) -> c11(MARK(s(first(first(from(y0), y1), y2)))) MARK(cons(s(first(first(0, y0), y1)), z1)) -> c11(MARK(s(first(first(0, y0), y1)))) MARK(cons(s(first(first(nil, y0), y1)), z1)) -> c11(MARK(s(first(first(nil, y0), y1)))) MARK(cons(s(first(first(s(y0), y1), y2)), z1)) -> c11(MARK(s(first(first(s(y0), y1), y2)))) MARK(cons(s(first(first(cons(y0, y1), y2), y3)), z1)) -> c11(MARK(s(first(first(cons(y0, y1), y2), y3)))) MARK(cons(s(first(first(y0, y1), 0)), z1)) -> c11(MARK(s(first(first(y0, y1), 0)))) MARK(cons(s(first(first(y0, y1), nil)), z1)) -> c11(MARK(s(first(first(y0, y1), nil)))) MARK(cons(s(first(first(y0, y1), s(y2))), z1)) -> c11(MARK(s(first(first(y0, y1), s(y2))))) MARK(cons(s(first(first(y0, y1), y2)), z1)) -> c11(MARK(s(first(first(y0, y1), y2)))) MARK(cons(s(first(from(first(y0, y1)), y2)), z1)) -> c11(MARK(s(first(from(first(y0, y1)), y2)))) MARK(cons(s(first(from(from(y0)), y1)), z1)) -> c11(MARK(s(first(from(from(y0)), y1)))) MARK(cons(s(first(from(s(y0)), y1)), z1)) -> c11(MARK(s(first(from(s(y0)), y1)))) MARK(cons(s(first(from(cons(y0, y1)), y2)), z1)) -> c11(MARK(s(first(from(cons(y0, y1)), y2)))) MARK(cons(s(first(from(y0), y1)), z1)) -> c11(MARK(s(first(from(y0), y1)))) MARK(cons(s(first(from(y0), 0)), z1)) -> c11(MARK(s(first(from(y0), 0)))) MARK(cons(s(first(from(y0), nil)), z1)) -> c11(MARK(s(first(from(y0), nil)))) MARK(cons(s(first(from(y0), s(y1))), z1)) -> c11(MARK(s(first(from(y0), s(y1))))) MARK(cons(s(first(s(first(y0, y1)), y2)), z1)) -> c11(MARK(s(first(s(first(y0, y1)), y2)))) MARK(cons(s(first(s(from(y0)), y1)), z1)) -> c11(MARK(s(first(s(from(y0)), y1)))) MARK(cons(s(first(s(0), y0)), z1)) -> c11(MARK(s(first(s(0), y0)))) MARK(cons(s(first(s(nil), y0)), z1)) -> c11(MARK(s(first(s(nil), y0)))) MARK(cons(s(first(s(s(y0)), y1)), z1)) -> c11(MARK(s(first(s(s(y0)), y1)))) MARK(cons(s(first(s(cons(y0, y1)), y2)), z1)) -> c11(MARK(s(first(s(cons(y0, y1)), y2)))) MARK(cons(s(first(s(y0), y1)), z1)) -> c11(MARK(s(first(s(y0), y1)))) MARK(cons(s(first(s(y0), 0)), z1)) -> c11(MARK(s(first(s(y0), 0)))) MARK(cons(s(first(s(y0), nil)), z1)) -> c11(MARK(s(first(s(y0), nil)))) MARK(cons(s(first(s(y0), s(y1))), z1)) -> c11(MARK(s(first(s(y0), s(y1))))) MARK(cons(s(first(0, first(y0, y1))), z1)) -> c11(MARK(s(first(0, first(y0, y1))))) MARK(cons(s(first(nil, first(y0, y1))), z1)) -> c11(MARK(s(first(nil, first(y0, y1))))) MARK(cons(s(first(0, from(y0))), z1)) -> c11(MARK(s(first(0, from(y0))))) MARK(cons(s(first(nil, from(y0))), z1)) -> c11(MARK(s(first(nil, from(y0))))) MARK(cons(s(first(y0, cons(y1, y2))), z1)) -> c11(MARK(s(first(y0, cons(y1, y2))))) MARK(cons(s(first(0, cons(y0, y1))), z1)) -> c11(MARK(s(first(0, cons(y0, y1))))) MARK(cons(s(first(nil, cons(y0, y1))), z1)) -> c11(MARK(s(first(nil, cons(y0, y1))))) MARK(cons(s(first(from(0), y0)), z1)) -> c11(MARK(s(first(from(0), y0)))) MARK(cons(s(first(from(nil), y0)), z1)) -> c11(MARK(s(first(from(nil), y0)))) MARK(cons(s(first(y0, cons(0, y1))), z1)) -> c11(MARK(s(first(y0, cons(0, y1))))) MARK(cons(s(first(y0, cons(nil, y1))), z1)) -> c11(MARK(s(first(y0, cons(nil, y1))))) MARK(cons(s(from(s(y0))), z1)) -> c11(MARK(s(from(s(y0))))) MARK(cons(s(from(cons(y0, y1))), z1)) -> c11(MARK(s(from(cons(y0, y1))))) MARK(cons(s(from(first(y0, y1))), z1)) -> c11(MARK(s(from(first(y0, y1))))) MARK(cons(s(from(first(y0, first(y1, y2)))), z1)) -> c11(MARK(s(from(first(y0, first(y1, y2)))))) MARK(cons(s(from(first(y0, from(y1)))), z1)) -> c11(MARK(s(from(first(y0, from(y1)))))) MARK(cons(s(from(first(y0, 0))), z1)) -> c11(MARK(s(from(first(y0, 0))))) MARK(cons(s(from(first(y0, nil))), z1)) -> c11(MARK(s(from(first(y0, nil))))) MARK(cons(s(from(first(y0, s(y1)))), z1)) -> c11(MARK(s(from(first(y0, s(y1)))))) MARK(cons(s(from(first(y0, cons(y1, y2)))), z1)) -> c11(MARK(s(from(first(y0, cons(y1, y2)))))) MARK(cons(s(from(first(first(y0, y1), y2))), z1)) -> c11(MARK(s(from(first(first(y0, y1), y2))))) MARK(cons(s(from(first(from(y0), y1))), z1)) -> c11(MARK(s(from(first(from(y0), y1))))) MARK(cons(s(from(first(0, y0))), z1)) -> c11(MARK(s(from(first(0, y0))))) MARK(cons(s(from(first(nil, y0))), z1)) -> c11(MARK(s(from(first(nil, y0))))) MARK(cons(s(from(first(s(y0), y1))), z1)) -> c11(MARK(s(from(first(s(y0), y1))))) MARK(cons(s(from(first(cons(y0, y1), y2))), z1)) -> c11(MARK(s(from(first(cons(y0, y1), y2))))) MARK(cons(s(from(from(y0))), z1)) -> c11(MARK(s(from(from(y0))))) MARK(cons(s(from(from(first(y0, y1)))), z1)) -> c11(MARK(s(from(from(first(y0, y1)))))) MARK(cons(s(from(from(from(y0)))), z1)) -> c11(MARK(s(from(from(from(y0)))))) MARK(cons(s(from(from(s(y0)))), z1)) -> c11(MARK(s(from(from(s(y0)))))) MARK(cons(s(from(from(cons(y0, y1)))), z1)) -> c11(MARK(s(from(from(cons(y0, y1)))))) MARK(cons(s(from(from(0))), z1)) -> c11(MARK(s(from(from(0))))) MARK(cons(s(from(from(nil))), z1)) -> c11(MARK(s(from(from(nil))))) S tuples: MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(x0, from(x1))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), from(x1))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(first(x0, cons(from(z0), x2))) -> c5(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(s(z0), x2))) -> c5(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(first(first(z0, z1), cons(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(first(z0, z1))) MARK(first(from(z0), cons(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(first(s(z0), cons(x1, x2))) -> c5(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(s(z0))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(first(x0, first(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(first(x0, first(z0, z1)))) MARK(first(first(x0, from(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(first(x0, from(z0)))) MARK(first(first(x0, 0), x2)) -> c5(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(first(x0, 0))) MARK(first(first(x0, nil), x2)) -> c5(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(first(x0, nil))) MARK(first(first(x0, s(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(first(x0, s(z0)))) MARK(first(first(x0, cons(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(first(x0, cons(z0, z1)))) MARK(first(first(first(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(first(first(z0, z1), x1))) MARK(first(first(from(z0), x1), x2)) -> c5(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(first(from(z0), x1))) MARK(first(first(0, x1), x2)) -> c5(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(first(0, x1))) MARK(first(first(nil, x1), x2)) -> c5(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(first(nil, x1))) MARK(first(first(s(z0), x1), x2)) -> c5(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(first(s(z0), x1))) MARK(first(first(cons(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(first(cons(z0, z1), x1))) MARK(first(first(x0, x1), 0)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), nil)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), s(z0))) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), x2)) -> c5(MARK(first(x0, x1))) MARK(first(from(first(z0, z1)), x1)) -> c5(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(from(first(z0, z1)))) MARK(first(from(from(z0)), x1)) -> c5(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(first(from(s(z0)), x1)) -> c5(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(from(s(z0)))) MARK(first(from(cons(z0, z1)), x1)) -> c5(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(first(from(x0), x1)) -> c5(MARK(from(x0))) MARK(first(from(x0), 0)) -> c5(MARK(from(x0))) MARK(first(from(x0), nil)) -> c5(MARK(from(x0))) MARK(first(from(x0), s(z0))) -> c5(MARK(from(x0))) MARK(first(s(first(z0, z1)), x1)) -> c5(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(s(first(z0, z1)))) MARK(first(s(from(z0)), x1)) -> c5(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(s(from(z0)))) MARK(first(s(s(z0)), x1)) -> c5(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(s(s(z0)))) MARK(first(s(cons(z0, z1)), x1)) -> c5(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(s(cons(z0, z1)))) MARK(first(s(x0), x1)) -> c5(MARK(s(x0))) MARK(first(s(x0), 0)) -> c5(MARK(s(x0))) MARK(first(s(x0), nil)) -> c5(MARK(s(x0))) MARK(first(s(x0), s(z0))) -> c5(MARK(s(x0))) MARK(first(x0, first(x1, first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(first(x1, first(z0, z1)))) MARK(first(x0, first(x1, from(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(first(x1, from(z0)))) MARK(first(x0, first(x1, 0))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(first(x1, 0))) MARK(first(x0, first(x1, nil))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(first(x1, nil))) MARK(first(x0, first(x1, s(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(first(x1, s(z0)))) MARK(first(x0, first(x1, cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(first(x1, cons(z0, z1)))) MARK(first(x0, first(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(first(first(z0, z1), x2))) MARK(first(x0, first(from(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(first(from(z0), x2))) MARK(first(x0, first(0, x2))) -> c6(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(first(0, x2))) MARK(first(x0, first(nil, x2))) -> c6(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(first(nil, x2))) MARK(first(x0, first(s(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(first(s(z0), x2))) MARK(first(x0, first(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(first(cons(z0, z1), x2))) MARK(first(first(z0, z1), first(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(from(z0), first(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(s(z0), first(x1, x2))) -> c6(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(x0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(nil, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(cons(z0, z1), first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(x0, from(x1))) -> c6(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(first(x0, from(first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(from(first(z0, z1)))) MARK(first(x0, from(from(z0)))) -> c6(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(first(x0, from(s(z0)))) -> c6(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(from(s(z0)))) MARK(first(x0, from(cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(first(first(z0, z1), from(x1))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(first(from(z0), from(x1))) -> c6(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(s(z0), from(x1))) -> c6(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(x0, from(x1))) -> c6(MARK(from(x1))) MARK(first(0, from(x1))) -> c6(MARK(from(x1))) MARK(first(nil, from(x1))) -> c6(MARK(from(x1))) MARK(first(cons(z0, z1), from(x1))) -> c6(MARK(from(x1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(cons(first(z0, z1), x2))) MARK(first(x0, cons(from(z0), x2))) -> c6(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(first(x0, cons(s(z0), x2))) -> c6(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(cons(s(z0), x2))) MARK(first(x0, cons(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(first(first(z0, z1), cons(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(from(z0), cons(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(s(z0), cons(x1, x2))) -> c6(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(x0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(nil, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(first(x0, first(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(first(first(x0, from(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, 0), x2)) -> c6(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(x2)) MARK(first(first(x0, nil), x2)) -> c6(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(x2)) MARK(first(first(x0, s(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, cons(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(first(first(first(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(from(z0), x1), x2)) -> c6(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(0, x1), x2)) -> c6(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(nil, x1), x2)) -> c6(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(s(z0), x1), x2)) -> c6(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(cons(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(x0, x1), s(z0))) -> c6(MARK(s(z0))) MARK(first(first(x0, x1), x2)) -> c6(MARK(x2)) MARK(first(from(first(z0, z1)), x1)) -> c6(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(first(from(from(z0)), x1)) -> c6(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(first(from(0), x1)) -> c6(A__FIRST(a__from(0), mark(x1)), MARK(x1)) MARK(first(from(nil), x1)) -> c6(A__FIRST(a__from(nil), mark(x1)), MARK(x1)) MARK(first(from(s(z0)), x1)) -> c6(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(x1)) MARK(first(from(cons(z0, z1)), x1)) -> c6(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(first(from(x0), s(z0))) -> c6(MARK(s(z0))) MARK(first(from(x0), x1)) -> c6(MARK(x1)) MARK(first(s(first(z0, z1)), x1)) -> c6(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(first(s(from(z0)), x1)) -> c6(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(first(s(0), x1)) -> c6(A__FIRST(s(0), mark(x1)), MARK(x1)) MARK(first(s(nil), x1)) -> c6(A__FIRST(s(nil), mark(x1)), MARK(x1)) MARK(first(s(s(z0)), x1)) -> c6(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(x1)) MARK(first(s(cons(z0, z1)), x1)) -> c6(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(first(s(x0), s(z0))) -> c6(MARK(s(z0))) A__FIRST(s(z0), cons(from(y0), z2)) -> c1(MARK(from(y0))) A__FIRST(s(z0), cons(s(y0), z2)) -> c1(MARK(s(y0))) A__FIRST(s(z0), cons(cons(y0, y1), z2)) -> c1(MARK(cons(y0, y1))) A__FIRST(s(z0), cons(first(y0, 0), z2)) -> c1(MARK(first(y0, 0))) A__FIRST(s(z0), cons(first(y0, nil), z2)) -> c1(MARK(first(y0, nil))) A__FIRST(s(z0), cons(first(y0, s(y1)), z2)) -> c1(MARK(first(y0, s(y1)))) A__FIRST(s(z0), cons(first(cons(y0, y1), y2), z2)) -> c1(MARK(first(cons(y0, y1), y2))) A__FIRST(s(z0), cons(first(0, y0), z2)) -> c1(MARK(first(0, y0))) A__FIRST(s(z0), cons(first(nil, y0), z2)) -> c1(MARK(first(nil, y0))) A__FIRST(s(z0), cons(first(y0, first(y1, first(y2, y3))), z2)) -> c1(MARK(first(y0, first(y1, first(y2, y3))))) A__FIRST(s(z0), cons(first(y0, first(y1, from(y2))), z2)) -> c1(MARK(first(y0, first(y1, from(y2))))) A__FIRST(s(z0), cons(first(y0, first(y1, 0)), z2)) -> c1(MARK(first(y0, first(y1, 0)))) A__FIRST(s(z0), cons(first(y0, first(y1, nil)), z2)) -> c1(MARK(first(y0, first(y1, nil)))) A__FIRST(s(z0), cons(first(y0, first(y1, s(y2))), z2)) -> c1(MARK(first(y0, first(y1, s(y2))))) A__FIRST(s(z0), cons(first(y0, first(y1, cons(y2, y3))), z2)) -> c1(MARK(first(y0, first(y1, cons(y2, y3))))) A__FIRST(s(z0), cons(first(y0, first(first(y1, y2), y3)), z2)) -> c1(MARK(first(y0, first(first(y1, y2), y3)))) A__FIRST(s(z0), cons(first(y0, first(from(y1), y2)), z2)) -> c1(MARK(first(y0, first(from(y1), y2)))) A__FIRST(s(z0), cons(first(y0, first(0, y1)), z2)) -> c1(MARK(first(y0, first(0, y1)))) A__FIRST(s(z0), cons(first(y0, first(nil, y1)), z2)) -> c1(MARK(first(y0, first(nil, y1)))) A__FIRST(s(z0), cons(first(y0, first(s(y1), y2)), z2)) -> c1(MARK(first(y0, first(s(y1), y2)))) A__FIRST(s(z0), cons(first(y0, first(cons(y1, y2), y3)), z2)) -> c1(MARK(first(y0, first(cons(y1, y2), y3)))) A__FIRST(s(z0), cons(first(first(y0, y1), first(y2, y3)), z2)) -> c1(MARK(first(first(y0, y1), first(y2, y3)))) A__FIRST(s(z0), cons(first(from(y0), first(y1, y2)), z2)) -> c1(MARK(first(from(y0), first(y1, y2)))) A__FIRST(s(z0), cons(first(s(y0), first(y1, y2)), z2)) -> c1(MARK(first(s(y0), first(y1, y2)))) A__FIRST(s(z0), cons(first(y0, first(y1, y2)), z2)) -> c1(MARK(first(y0, first(y1, y2)))) A__FIRST(s(z0), cons(first(cons(y0, y1), first(y2, y3)), z2)) -> c1(MARK(first(cons(y0, y1), first(y2, y3)))) A__FIRST(s(z0), cons(first(y0, from(y1)), z2)) -> c1(MARK(first(y0, from(y1)))) A__FIRST(s(z0), cons(first(y0, from(first(y1, y2))), z2)) -> c1(MARK(first(y0, from(first(y1, y2))))) A__FIRST(s(z0), cons(first(y0, from(from(y1))), z2)) -> c1(MARK(first(y0, from(from(y1))))) A__FIRST(s(z0), cons(first(y0, from(0)), z2)) -> c1(MARK(first(y0, from(0)))) A__FIRST(s(z0), cons(first(y0, from(nil)), z2)) -> c1(MARK(first(y0, from(nil)))) A__FIRST(s(z0), cons(first(y0, from(s(y1))), z2)) -> c1(MARK(first(y0, from(s(y1))))) A__FIRST(s(z0), cons(first(y0, from(cons(y1, y2))), z2)) -> c1(MARK(first(y0, from(cons(y1, y2))))) A__FIRST(s(z0), cons(first(first(y0, y1), from(y2)), z2)) -> c1(MARK(first(first(y0, y1), from(y2)))) A__FIRST(s(z0), cons(first(from(y0), from(y1)), z2)) -> c1(MARK(first(from(y0), from(y1)))) A__FIRST(s(z0), cons(first(s(y0), from(y1)), z2)) -> c1(MARK(first(s(y0), from(y1)))) A__FIRST(s(z0), cons(first(cons(y0, y1), from(y2)), z2)) -> c1(MARK(first(cons(y0, y1), from(y2)))) A__FIRST(s(z0), cons(first(y0, cons(first(y1, y2), y3)), z2)) -> c1(MARK(first(y0, cons(first(y1, y2), y3)))) A__FIRST(s(z0), cons(first(y0, cons(from(y1), y2)), z2)) -> c1(MARK(first(y0, cons(from(y1), y2)))) A__FIRST(s(z0), cons(first(y0, cons(0, y1)), z2)) -> c1(MARK(first(y0, cons(0, y1)))) A__FIRST(s(z0), cons(first(y0, cons(nil, y1)), z2)) -> c1(MARK(first(y0, cons(nil, y1)))) A__FIRST(s(z0), cons(first(y0, cons(s(y1), y2)), z2)) -> c1(MARK(first(y0, cons(s(y1), y2)))) A__FIRST(s(z0), cons(first(y0, cons(cons(y1, y2), y3)), z2)) -> c1(MARK(first(y0, cons(cons(y1, y2), y3)))) A__FIRST(s(z0), cons(first(first(y0, y1), cons(y2, y3)), z2)) -> c1(MARK(first(first(y0, y1), cons(y2, y3)))) A__FIRST(s(z0), cons(first(from(y0), cons(y1, y2)), z2)) -> c1(MARK(first(from(y0), cons(y1, y2)))) A__FIRST(s(z0), cons(first(s(y0), cons(y1, y2)), z2)) -> c1(MARK(first(s(y0), cons(y1, y2)))) A__FIRST(s(z0), cons(first(cons(y0, y1), cons(y2, y3)), z2)) -> c1(MARK(first(cons(y0, y1), cons(y2, y3)))) A__FIRST(s(z0), cons(first(first(y0, first(y1, y2)), y3), z2)) -> c1(MARK(first(first(y0, first(y1, y2)), y3))) A__FIRST(s(z0), cons(first(first(y0, from(y1)), y2), z2)) -> c1(MARK(first(first(y0, from(y1)), y2))) A__FIRST(s(z0), cons(first(first(y0, 0), y1), z2)) -> c1(MARK(first(first(y0, 0), y1))) A__FIRST(s(z0), cons(first(first(y0, nil), y1), z2)) -> c1(MARK(first(first(y0, nil), y1))) A__FIRST(s(z0), cons(first(first(y0, s(y1)), y2), z2)) -> c1(MARK(first(first(y0, s(y1)), y2))) A__FIRST(s(z0), cons(first(first(y0, cons(y1, y2)), y3), z2)) -> c1(MARK(first(first(y0, cons(y1, y2)), y3))) A__FIRST(s(z0), cons(first(first(first(y0, y1), y2), y3), z2)) -> c1(MARK(first(first(first(y0, y1), y2), y3))) A__FIRST(s(z0), cons(first(first(from(y0), y1), y2), z2)) -> c1(MARK(first(first(from(y0), y1), y2))) A__FIRST(s(z0), cons(first(first(0, y0), y1), z2)) -> c1(MARK(first(first(0, y0), y1))) A__FIRST(s(z0), cons(first(first(nil, y0), y1), z2)) -> c1(MARK(first(first(nil, y0), y1))) A__FIRST(s(z0), cons(first(first(s(y0), y1), y2), z2)) -> c1(MARK(first(first(s(y0), y1), y2))) A__FIRST(s(z0), cons(first(first(cons(y0, y1), y2), y3), z2)) -> c1(MARK(first(first(cons(y0, y1), y2), y3))) A__FIRST(s(z0), cons(first(first(y0, y1), 0), z2)) -> c1(MARK(first(first(y0, y1), 0))) A__FIRST(s(z0), cons(first(first(y0, y1), nil), z2)) -> c1(MARK(first(first(y0, y1), nil))) A__FIRST(s(z0), cons(first(first(y0, y1), s(y2)), z2)) -> c1(MARK(first(first(y0, y1), s(y2)))) A__FIRST(s(z0), cons(first(first(y0, y1), y2), z2)) -> c1(MARK(first(first(y0, y1), y2))) A__FIRST(s(z0), cons(first(from(first(y0, y1)), y2), z2)) -> c1(MARK(first(from(first(y0, y1)), y2))) A__FIRST(s(z0), cons(first(from(from(y0)), y1), z2)) -> c1(MARK(first(from(from(y0)), y1))) A__FIRST(s(z0), cons(first(from(0), y0), z2)) -> c1(MARK(first(from(0), y0))) A__FIRST(s(z0), cons(first(from(nil), y0), z2)) -> c1(MARK(first(from(nil), y0))) A__FIRST(s(z0), cons(first(from(s(y0)), y1), z2)) -> c1(MARK(first(from(s(y0)), y1))) A__FIRST(s(z0), cons(first(from(cons(y0, y1)), y2), z2)) -> c1(MARK(first(from(cons(y0, y1)), y2))) A__FIRST(s(z0), cons(first(from(y0), y1), z2)) -> c1(MARK(first(from(y0), y1))) A__FIRST(s(z0), cons(first(from(y0), 0), z2)) -> c1(MARK(first(from(y0), 0))) A__FIRST(s(z0), cons(first(from(y0), nil), z2)) -> c1(MARK(first(from(y0), nil))) A__FIRST(s(z0), cons(first(from(y0), s(y1)), z2)) -> c1(MARK(first(from(y0), s(y1)))) A__FIRST(s(z0), cons(first(s(first(y0, y1)), y2), z2)) -> c1(MARK(first(s(first(y0, y1)), y2))) A__FIRST(s(z0), cons(first(s(from(y0)), y1), z2)) -> c1(MARK(first(s(from(y0)), y1))) A__FIRST(s(z0), cons(first(s(0), y0), z2)) -> c1(MARK(first(s(0), y0))) A__FIRST(s(z0), cons(first(s(nil), y0), z2)) -> c1(MARK(first(s(nil), y0))) A__FIRST(s(z0), cons(first(s(s(y0)), y1), z2)) -> c1(MARK(first(s(s(y0)), y1))) A__FIRST(s(z0), cons(first(s(cons(y0, y1)), y2), z2)) -> c1(MARK(first(s(cons(y0, y1)), y2))) A__FIRST(s(z0), cons(first(s(y0), y1), z2)) -> c1(MARK(first(s(y0), y1))) A__FIRST(s(z0), cons(first(s(y0), 0), z2)) -> c1(MARK(first(s(y0), 0))) A__FIRST(s(z0), cons(first(s(y0), nil), z2)) -> c1(MARK(first(s(y0), nil))) A__FIRST(s(z0), cons(first(s(y0), s(y1)), z2)) -> c1(MARK(first(s(y0), s(y1)))) A__FIRST(s(z0), cons(first(0, first(y0, y1)), z2)) -> c1(MARK(first(0, first(y0, y1)))) A__FIRST(s(z0), cons(first(nil, first(y0, y1)), z2)) -> c1(MARK(first(nil, first(y0, y1)))) A__FIRST(s(z0), cons(first(0, from(y0)), z2)) -> c1(MARK(first(0, from(y0)))) A__FIRST(s(z0), cons(first(nil, from(y0)), z2)) -> c1(MARK(first(nil, from(y0)))) A__FIRST(s(z0), cons(first(y0, cons(y1, y2)), z2)) -> c1(MARK(first(y0, cons(y1, y2)))) A__FIRST(s(z0), cons(first(0, cons(y0, y1)), z2)) -> c1(MARK(first(0, cons(y0, y1)))) A__FIRST(s(z0), cons(first(nil, cons(y0, y1)), z2)) -> c1(MARK(first(nil, cons(y0, y1)))) MARK(first(x0, cons(0, x2))) -> c5(MARK(x0)) MARK(first(x0, cons(nil, x2))) -> c5(MARK(x0)) MARK(first(x0, cons(0, x2))) -> c6(MARK(cons(0, x2))) MARK(first(x0, cons(nil, x2))) -> c6(MARK(cons(nil, x2))) A__FROM(from(y0)) -> c3(MARK(from(y0))) A__FROM(s(y0)) -> c3(MARK(s(y0))) A__FROM(cons(y0, y1)) -> c3(MARK(cons(y0, y1))) A__FROM(first(y0, 0)) -> c3(MARK(first(y0, 0))) A__FROM(first(y0, nil)) -> c3(MARK(first(y0, nil))) A__FROM(first(y0, s(y1))) -> c3(MARK(first(y0, s(y1)))) A__FROM(first(cons(y0, y1), y2)) -> c3(MARK(first(cons(y0, y1), y2))) A__FROM(first(0, y0)) -> c3(MARK(first(0, y0))) A__FROM(first(nil, y0)) -> c3(MARK(first(nil, y0))) A__FROM(first(y0, first(y1, first(y2, y3)))) -> c3(MARK(first(y0, first(y1, first(y2, y3))))) A__FROM(first(y0, first(y1, from(y2)))) -> c3(MARK(first(y0, first(y1, from(y2))))) A__FROM(first(y0, first(y1, 0))) -> c3(MARK(first(y0, first(y1, 0)))) A__FROM(first(y0, first(y1, nil))) -> c3(MARK(first(y0, first(y1, nil)))) A__FROM(first(y0, first(y1, s(y2)))) -> c3(MARK(first(y0, first(y1, s(y2))))) A__FROM(first(y0, first(y1, cons(y2, y3)))) -> c3(MARK(first(y0, first(y1, cons(y2, y3))))) A__FROM(first(y0, first(first(y1, y2), y3))) -> c3(MARK(first(y0, first(first(y1, y2), y3)))) A__FROM(first(y0, first(from(y1), y2))) -> c3(MARK(first(y0, first(from(y1), y2)))) A__FROM(first(y0, first(0, y1))) -> c3(MARK(first(y0, first(0, y1)))) A__FROM(first(y0, first(nil, y1))) -> c3(MARK(first(y0, first(nil, y1)))) A__FROM(first(y0, first(s(y1), y2))) -> c3(MARK(first(y0, first(s(y1), y2)))) A__FROM(first(y0, first(cons(y1, y2), y3))) -> c3(MARK(first(y0, first(cons(y1, y2), y3)))) A__FROM(first(first(y0, y1), first(y2, y3))) -> c3(MARK(first(first(y0, y1), first(y2, y3)))) A__FROM(first(from(y0), first(y1, y2))) -> c3(MARK(first(from(y0), first(y1, y2)))) A__FROM(first(s(y0), first(y1, y2))) -> c3(MARK(first(s(y0), first(y1, y2)))) A__FROM(first(y0, first(y1, y2))) -> c3(MARK(first(y0, first(y1, y2)))) A__FROM(first(cons(y0, y1), first(y2, y3))) -> c3(MARK(first(cons(y0, y1), first(y2, y3)))) A__FROM(first(y0, from(y1))) -> c3(MARK(first(y0, from(y1)))) A__FROM(first(y0, from(first(y1, y2)))) -> c3(MARK(first(y0, from(first(y1, y2))))) A__FROM(first(y0, from(from(y1)))) -> c3(MARK(first(y0, from(from(y1))))) A__FROM(first(y0, from(0))) -> c3(MARK(first(y0, from(0)))) A__FROM(first(y0, from(nil))) -> c3(MARK(first(y0, from(nil)))) A__FROM(first(y0, from(s(y1)))) -> c3(MARK(first(y0, from(s(y1))))) A__FROM(first(y0, from(cons(y1, y2)))) -> c3(MARK(first(y0, from(cons(y1, y2))))) A__FROM(first(first(y0, y1), from(y2))) -> c3(MARK(first(first(y0, y1), from(y2)))) A__FROM(first(from(y0), from(y1))) -> c3(MARK(first(from(y0), from(y1)))) A__FROM(first(s(y0), from(y1))) -> c3(MARK(first(s(y0), from(y1)))) A__FROM(first(cons(y0, y1), from(y2))) -> c3(MARK(first(cons(y0, y1), from(y2)))) A__FROM(first(y0, cons(first(y1, y2), y3))) -> c3(MARK(first(y0, cons(first(y1, y2), y3)))) A__FROM(first(y0, cons(from(y1), y2))) -> c3(MARK(first(y0, cons(from(y1), y2)))) A__FROM(first(y0, cons(s(y1), y2))) -> c3(MARK(first(y0, cons(s(y1), y2)))) A__FROM(first(y0, cons(cons(y1, y2), y3))) -> c3(MARK(first(y0, cons(cons(y1, y2), y3)))) A__FROM(first(first(y0, y1), cons(y2, y3))) -> c3(MARK(first(first(y0, y1), cons(y2, y3)))) A__FROM(first(from(y0), cons(y1, y2))) -> c3(MARK(first(from(y0), cons(y1, y2)))) A__FROM(first(s(y0), cons(y1, y2))) -> c3(MARK(first(s(y0), cons(y1, y2)))) A__FROM(first(cons(y0, y1), cons(y2, y3))) -> c3(MARK(first(cons(y0, y1), cons(y2, y3)))) A__FROM(first(first(y0, first(y1, y2)), y3)) -> c3(MARK(first(first(y0, first(y1, y2)), y3))) A__FROM(first(first(y0, from(y1)), y2)) -> c3(MARK(first(first(y0, from(y1)), y2))) A__FROM(first(first(y0, 0), y1)) -> c3(MARK(first(first(y0, 0), y1))) A__FROM(first(first(y0, nil), y1)) -> c3(MARK(first(first(y0, nil), y1))) A__FROM(first(first(y0, s(y1)), y2)) -> c3(MARK(first(first(y0, s(y1)), y2))) A__FROM(first(first(y0, cons(y1, y2)), y3)) -> c3(MARK(first(first(y0, cons(y1, y2)), y3))) A__FROM(first(first(first(y0, y1), y2), y3)) -> c3(MARK(first(first(first(y0, y1), y2), y3))) A__FROM(first(first(from(y0), y1), y2)) -> c3(MARK(first(first(from(y0), y1), y2))) A__FROM(first(first(0, y0), y1)) -> c3(MARK(first(first(0, y0), y1))) A__FROM(first(first(nil, y0), y1)) -> c3(MARK(first(first(nil, y0), y1))) A__FROM(first(first(s(y0), y1), y2)) -> c3(MARK(first(first(s(y0), y1), y2))) A__FROM(first(first(cons(y0, y1), y2), y3)) -> c3(MARK(first(first(cons(y0, y1), y2), y3))) A__FROM(first(first(y0, y1), 0)) -> c3(MARK(first(first(y0, y1), 0))) A__FROM(first(first(y0, y1), nil)) -> c3(MARK(first(first(y0, y1), nil))) A__FROM(first(first(y0, y1), s(y2))) -> c3(MARK(first(first(y0, y1), s(y2)))) A__FROM(first(first(y0, y1), y2)) -> c3(MARK(first(first(y0, y1), y2))) A__FROM(first(from(first(y0, y1)), y2)) -> c3(MARK(first(from(first(y0, y1)), y2))) A__FROM(first(from(from(y0)), y1)) -> c3(MARK(first(from(from(y0)), y1))) A__FROM(first(from(0), y0)) -> c3(MARK(first(from(0), y0))) A__FROM(first(from(nil), y0)) -> c3(MARK(first(from(nil), y0))) A__FROM(first(from(s(y0)), y1)) -> c3(MARK(first(from(s(y0)), y1))) A__FROM(first(from(cons(y0, y1)), y2)) -> c3(MARK(first(from(cons(y0, y1)), y2))) A__FROM(first(from(y0), y1)) -> c3(MARK(first(from(y0), y1))) A__FROM(first(from(y0), 0)) -> c3(MARK(first(from(y0), 0))) A__FROM(first(from(y0), nil)) -> c3(MARK(first(from(y0), nil))) A__FROM(first(from(y0), s(y1))) -> c3(MARK(first(from(y0), s(y1)))) A__FROM(first(s(first(y0, y1)), y2)) -> c3(MARK(first(s(first(y0, y1)), y2))) A__FROM(first(s(from(y0)), y1)) -> c3(MARK(first(s(from(y0)), y1))) A__FROM(first(s(0), y0)) -> c3(MARK(first(s(0), y0))) A__FROM(first(s(nil), y0)) -> c3(MARK(first(s(nil), y0))) A__FROM(first(s(s(y0)), y1)) -> c3(MARK(first(s(s(y0)), y1))) A__FROM(first(s(cons(y0, y1)), y2)) -> c3(MARK(first(s(cons(y0, y1)), y2))) A__FROM(first(s(y0), y1)) -> c3(MARK(first(s(y0), y1))) A__FROM(first(s(y0), 0)) -> c3(MARK(first(s(y0), 0))) A__FROM(first(s(y0), nil)) -> c3(MARK(first(s(y0), nil))) A__FROM(first(s(y0), s(y1))) -> c3(MARK(first(s(y0), s(y1)))) A__FROM(first(0, first(y0, y1))) -> c3(MARK(first(0, first(y0, y1)))) A__FROM(first(nil, first(y0, y1))) -> c3(MARK(first(nil, first(y0, y1)))) A__FROM(first(0, from(y0))) -> c3(MARK(first(0, from(y0)))) A__FROM(first(nil, from(y0))) -> c3(MARK(first(nil, from(y0)))) A__FROM(first(y0, cons(y1, y2))) -> c3(MARK(first(y0, cons(y1, y2)))) A__FROM(first(0, cons(y0, y1))) -> c3(MARK(first(0, cons(y0, y1)))) A__FROM(first(nil, cons(y0, y1))) -> c3(MARK(first(nil, cons(y0, y1)))) A__FROM(first(y0, cons(0, y1))) -> c3(MARK(first(y0, cons(0, y1)))) A__FROM(first(y0, cons(nil, y1))) -> c3(MARK(first(y0, cons(nil, y1)))) MARK(from(s(z0))) -> c7(A__FROM(s(mark(z0))), MARK(s(z0))) MARK(from(cons(z0, z1))) -> c7(A__FROM(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(from(0), x1)) -> c5(A__FIRST(a__from(0), mark(x1))) MARK(first(from(nil), x1)) -> c5(A__FIRST(a__from(nil), mark(x1))) MARK(first(x0, from(0))) -> c6(A__FIRST(mark(x0), a__from(0))) MARK(first(x0, from(nil))) -> c6(A__FIRST(mark(x0), a__from(nil))) MARK(from(first(x0, x1))) -> c7(A__FROM(first(mark(x0), mark(x1))), MARK(first(x0, x1))) MARK(from(first(x0, first(z0, z1)))) -> c7(A__FROM(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) MARK(from(first(x0, from(z0)))) -> c7(A__FROM(a__first(mark(x0), a__from(mark(z0)))), MARK(first(x0, from(z0)))) MARK(from(first(x0, 0))) -> c7(A__FROM(a__first(mark(x0), 0)), MARK(first(x0, 0))) MARK(from(first(x0, nil))) -> c7(A__FROM(a__first(mark(x0), nil)), MARK(first(x0, nil))) MARK(from(first(x0, s(z0)))) -> c7(A__FROM(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) MARK(from(first(x0, cons(z0, z1)))) -> c7(A__FROM(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) MARK(from(first(first(z0, z1), x1))) -> c7(A__FROM(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) MARK(from(first(from(z0), x1))) -> c7(A__FROM(a__first(a__from(mark(z0)), mark(x1))), MARK(first(from(z0), x1))) MARK(from(first(0, x1))) -> c7(A__FROM(a__first(0, mark(x1))), MARK(first(0, x1))) MARK(from(first(nil, x1))) -> c7(A__FROM(a__first(nil, mark(x1))), MARK(first(nil, x1))) MARK(from(first(s(z0), x1))) -> c7(A__FROM(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) MARK(from(first(cons(z0, z1), x1))) -> c7(A__FROM(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) MARK(from(from(x0))) -> c7(A__FROM(cons(mark(mark(x0)), from(s(mark(x0))))), MARK(from(x0))) MARK(from(from(x0))) -> c7(A__FROM(from(mark(x0))), MARK(from(x0))) MARK(from(from(first(z0, z1)))) -> c7(A__FROM(a__from(a__first(mark(z0), mark(z1)))), MARK(from(first(z0, z1)))) MARK(from(from(from(z0)))) -> c7(A__FROM(a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(from(from(s(z0)))) -> c7(A__FROM(a__from(s(mark(z0)))), MARK(from(s(z0)))) MARK(from(from(cons(z0, z1)))) -> c7(A__FROM(a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(from(from(0))) -> c7(A__FROM(a__from(0))) MARK(from(from(nil))) -> c7(A__FROM(a__from(nil))) MARK(s(s(y0))) -> c10(MARK(s(y0))) MARK(s(cons(y0, y1))) -> c10(MARK(cons(y0, y1))) MARK(s(first(y0, 0))) -> c10(MARK(first(y0, 0))) MARK(s(first(y0, nil))) -> c10(MARK(first(y0, nil))) MARK(s(first(y0, s(y1)))) -> c10(MARK(first(y0, s(y1)))) MARK(s(first(cons(y0, y1), y2))) -> c10(MARK(first(cons(y0, y1), y2))) MARK(s(first(0, y0))) -> c10(MARK(first(0, y0))) MARK(s(first(nil, y0))) -> c10(MARK(first(nil, y0))) MARK(s(first(y0, first(y1, first(y2, y3))))) -> c10(MARK(first(y0, first(y1, first(y2, y3))))) MARK(s(first(y0, first(y1, from(y2))))) -> c10(MARK(first(y0, first(y1, from(y2))))) MARK(s(first(y0, first(y1, 0)))) -> c10(MARK(first(y0, first(y1, 0)))) MARK(s(first(y0, first(y1, nil)))) -> c10(MARK(first(y0, first(y1, nil)))) MARK(s(first(y0, first(y1, s(y2))))) -> c10(MARK(first(y0, first(y1, s(y2))))) MARK(s(first(y0, first(y1, cons(y2, y3))))) -> c10(MARK(first(y0, first(y1, cons(y2, y3))))) MARK(s(first(y0, first(first(y1, y2), y3)))) -> c10(MARK(first(y0, first(first(y1, y2), y3)))) MARK(s(first(y0, first(from(y1), y2)))) -> c10(MARK(first(y0, first(from(y1), y2)))) MARK(s(first(y0, first(0, y1)))) -> c10(MARK(first(y0, first(0, y1)))) MARK(s(first(y0, first(nil, y1)))) -> c10(MARK(first(y0, first(nil, y1)))) MARK(s(first(y0, first(s(y1), y2)))) -> c10(MARK(first(y0, first(s(y1), y2)))) MARK(s(first(y0, first(cons(y1, y2), y3)))) -> c10(MARK(first(y0, first(cons(y1, y2), y3)))) MARK(s(first(first(y0, y1), first(y2, y3)))) -> c10(MARK(first(first(y0, y1), first(y2, y3)))) MARK(s(first(from(y0), first(y1, y2)))) -> c10(MARK(first(from(y0), first(y1, y2)))) MARK(s(first(s(y0), first(y1, y2)))) -> c10(MARK(first(s(y0), first(y1, y2)))) MARK(s(first(y0, first(y1, y2)))) -> c10(MARK(first(y0, first(y1, y2)))) MARK(s(first(cons(y0, y1), first(y2, y3)))) -> c10(MARK(first(cons(y0, y1), first(y2, y3)))) MARK(s(first(y0, from(y1)))) -> c10(MARK(first(y0, from(y1)))) MARK(s(first(y0, from(first(y1, y2))))) -> c10(MARK(first(y0, from(first(y1, y2))))) MARK(s(first(y0, from(from(y1))))) -> c10(MARK(first(y0, from(from(y1))))) MARK(s(first(y0, from(0)))) -> c10(MARK(first(y0, from(0)))) MARK(s(first(y0, from(nil)))) -> c10(MARK(first(y0, from(nil)))) MARK(s(first(y0, from(s(y1))))) -> c10(MARK(first(y0, from(s(y1))))) MARK(s(first(y0, from(cons(y1, y2))))) -> c10(MARK(first(y0, from(cons(y1, y2))))) MARK(s(first(first(y0, y1), from(y2)))) -> c10(MARK(first(first(y0, y1), from(y2)))) MARK(s(first(from(y0), from(y1)))) -> c10(MARK(first(from(y0), from(y1)))) MARK(s(first(s(y0), from(y1)))) -> c10(MARK(first(s(y0), from(y1)))) MARK(s(first(cons(y0, y1), from(y2)))) -> c10(MARK(first(cons(y0, y1), from(y2)))) MARK(s(first(y0, cons(first(y1, y2), y3)))) -> c10(MARK(first(y0, cons(first(y1, y2), y3)))) MARK(s(first(y0, cons(from(y1), y2)))) -> c10(MARK(first(y0, cons(from(y1), y2)))) MARK(s(first(y0, cons(s(y1), y2)))) -> c10(MARK(first(y0, cons(s(y1), y2)))) MARK(s(first(y0, cons(cons(y1, y2), y3)))) -> c10(MARK(first(y0, cons(cons(y1, y2), y3)))) MARK(s(first(first(y0, y1), cons(y2, y3)))) -> c10(MARK(first(first(y0, y1), cons(y2, y3)))) MARK(s(first(from(y0), cons(y1, y2)))) -> c10(MARK(first(from(y0), cons(y1, y2)))) MARK(s(first(s(y0), cons(y1, y2)))) -> c10(MARK(first(s(y0), cons(y1, y2)))) MARK(s(first(cons(y0, y1), cons(y2, y3)))) -> c10(MARK(first(cons(y0, y1), cons(y2, y3)))) MARK(s(first(first(y0, first(y1, y2)), y3))) -> c10(MARK(first(first(y0, first(y1, y2)), y3))) MARK(s(first(first(y0, from(y1)), y2))) -> c10(MARK(first(first(y0, from(y1)), y2))) MARK(s(first(first(y0, 0), y1))) -> c10(MARK(first(first(y0, 0), y1))) MARK(s(first(first(y0, nil), y1))) -> c10(MARK(first(first(y0, nil), y1))) MARK(s(first(first(y0, s(y1)), y2))) -> c10(MARK(first(first(y0, s(y1)), y2))) MARK(s(first(first(y0, cons(y1, y2)), y3))) -> c10(MARK(first(first(y0, cons(y1, y2)), y3))) MARK(s(first(first(first(y0, y1), y2), y3))) -> c10(MARK(first(first(first(y0, y1), y2), y3))) MARK(s(first(first(from(y0), y1), y2))) -> c10(MARK(first(first(from(y0), y1), y2))) MARK(s(first(first(0, y0), y1))) -> c10(MARK(first(first(0, y0), y1))) MARK(s(first(first(nil, y0), y1))) -> c10(MARK(first(first(nil, y0), y1))) MARK(s(first(first(s(y0), y1), y2))) -> c10(MARK(first(first(s(y0), y1), y2))) MARK(s(first(first(cons(y0, y1), y2), y3))) -> c10(MARK(first(first(cons(y0, y1), y2), y3))) MARK(s(first(first(y0, y1), 0))) -> c10(MARK(first(first(y0, y1), 0))) MARK(s(first(first(y0, y1), nil))) -> c10(MARK(first(first(y0, y1), nil))) MARK(s(first(first(y0, y1), s(y2)))) -> c10(MARK(first(first(y0, y1), s(y2)))) MARK(s(first(first(y0, y1), y2))) -> c10(MARK(first(first(y0, y1), y2))) MARK(s(first(from(first(y0, y1)), y2))) -> c10(MARK(first(from(first(y0, y1)), y2))) MARK(s(first(from(from(y0)), y1))) -> c10(MARK(first(from(from(y0)), y1))) MARK(s(first(from(s(y0)), y1))) -> c10(MARK(first(from(s(y0)), y1))) MARK(s(first(from(cons(y0, y1)), y2))) -> c10(MARK(first(from(cons(y0, y1)), y2))) MARK(s(first(from(y0), y1))) -> c10(MARK(first(from(y0), y1))) MARK(s(first(from(y0), 0))) -> c10(MARK(first(from(y0), 0))) MARK(s(first(from(y0), nil))) -> c10(MARK(first(from(y0), nil))) MARK(s(first(from(y0), s(y1)))) -> c10(MARK(first(from(y0), s(y1)))) MARK(s(first(s(first(y0, y1)), y2))) -> c10(MARK(first(s(first(y0, y1)), y2))) MARK(s(first(s(from(y0)), y1))) -> c10(MARK(first(s(from(y0)), y1))) MARK(s(first(s(0), y0))) -> c10(MARK(first(s(0), y0))) MARK(s(first(s(nil), y0))) -> c10(MARK(first(s(nil), y0))) MARK(s(first(s(s(y0)), y1))) -> c10(MARK(first(s(s(y0)), y1))) MARK(s(first(s(cons(y0, y1)), y2))) -> c10(MARK(first(s(cons(y0, y1)), y2))) MARK(s(first(s(y0), y1))) -> c10(MARK(first(s(y0), y1))) MARK(s(first(s(y0), 0))) -> c10(MARK(first(s(y0), 0))) MARK(s(first(s(y0), nil))) -> c10(MARK(first(s(y0), nil))) MARK(s(first(s(y0), s(y1)))) -> c10(MARK(first(s(y0), s(y1)))) MARK(s(first(0, first(y0, y1)))) -> c10(MARK(first(0, first(y0, y1)))) MARK(s(first(nil, first(y0, y1)))) -> c10(MARK(first(nil, first(y0, y1)))) MARK(s(first(0, from(y0)))) -> c10(MARK(first(0, from(y0)))) MARK(s(first(nil, from(y0)))) -> c10(MARK(first(nil, from(y0)))) MARK(s(first(y0, cons(y1, y2)))) -> c10(MARK(first(y0, cons(y1, y2)))) MARK(s(first(0, cons(y0, y1)))) -> c10(MARK(first(0, cons(y0, y1)))) MARK(s(first(nil, cons(y0, y1)))) -> c10(MARK(first(nil, cons(y0, y1)))) MARK(s(first(from(0), y0))) -> c10(MARK(first(from(0), y0))) MARK(s(first(from(nil), y0))) -> c10(MARK(first(from(nil), y0))) MARK(s(first(y0, cons(0, y1)))) -> c10(MARK(first(y0, cons(0, y1)))) MARK(s(first(y0, cons(nil, y1)))) -> c10(MARK(first(y0, cons(nil, y1)))) MARK(s(from(s(y0)))) -> c10(MARK(from(s(y0)))) MARK(s(from(cons(y0, y1)))) -> c10(MARK(from(cons(y0, y1)))) MARK(s(from(first(y0, y1)))) -> c10(MARK(from(first(y0, y1)))) MARK(s(from(first(y0, first(y1, y2))))) -> c10(MARK(from(first(y0, first(y1, y2))))) MARK(s(from(first(y0, from(y1))))) -> c10(MARK(from(first(y0, from(y1))))) MARK(s(from(first(y0, 0)))) -> c10(MARK(from(first(y0, 0)))) MARK(s(from(first(y0, nil)))) -> c10(MARK(from(first(y0, nil)))) MARK(s(from(first(y0, s(y1))))) -> c10(MARK(from(first(y0, s(y1))))) MARK(s(from(first(y0, cons(y1, y2))))) -> c10(MARK(from(first(y0, cons(y1, y2))))) MARK(s(from(first(first(y0, y1), y2)))) -> c10(MARK(from(first(first(y0, y1), y2)))) MARK(s(from(first(from(y0), y1)))) -> c10(MARK(from(first(from(y0), y1)))) MARK(s(from(first(0, y0)))) -> c10(MARK(from(first(0, y0)))) MARK(s(from(first(nil, y0)))) -> c10(MARK(from(first(nil, y0)))) MARK(s(from(first(s(y0), y1)))) -> c10(MARK(from(first(s(y0), y1)))) MARK(s(from(first(cons(y0, y1), y2)))) -> c10(MARK(from(first(cons(y0, y1), y2)))) MARK(s(from(from(y0)))) -> c10(MARK(from(from(y0)))) MARK(s(from(from(first(y0, y1))))) -> c10(MARK(from(from(first(y0, y1))))) MARK(s(from(from(from(y0))))) -> c10(MARK(from(from(from(y0))))) MARK(s(from(from(s(y0))))) -> c10(MARK(from(from(s(y0))))) MARK(s(from(from(cons(y0, y1))))) -> c10(MARK(from(from(cons(y0, y1))))) MARK(s(from(from(0)))) -> c10(MARK(from(from(0)))) MARK(s(from(from(nil)))) -> c10(MARK(from(from(nil)))) MARK(first(s(0), x1)) -> c5(A__FIRST(s(0), mark(x1))) MARK(first(s(nil), x1)) -> c5(A__FIRST(s(nil), mark(x1))) MARK(cons(cons(y0, y1), z1)) -> c11(MARK(cons(y0, y1))) MARK(cons(first(y0, 0), z1)) -> c11(MARK(first(y0, 0))) MARK(cons(first(y0, nil), z1)) -> c11(MARK(first(y0, nil))) MARK(cons(first(y0, s(y1)), z1)) -> c11(MARK(first(y0, s(y1)))) MARK(cons(first(cons(y0, y1), y2), z1)) -> c11(MARK(first(cons(y0, y1), y2))) MARK(cons(first(0, y0), z1)) -> c11(MARK(first(0, y0))) MARK(cons(first(nil, y0), z1)) -> c11(MARK(first(nil, y0))) MARK(cons(first(y0, first(y1, first(y2, y3))), z1)) -> c11(MARK(first(y0, first(y1, first(y2, y3))))) MARK(cons(first(y0, first(y1, from(y2))), z1)) -> c11(MARK(first(y0, first(y1, from(y2))))) MARK(cons(first(y0, first(y1, 0)), z1)) -> c11(MARK(first(y0, first(y1, 0)))) MARK(cons(first(y0, first(y1, nil)), z1)) -> c11(MARK(first(y0, first(y1, nil)))) MARK(cons(first(y0, first(y1, s(y2))), z1)) -> c11(MARK(first(y0, first(y1, s(y2))))) MARK(cons(first(y0, first(y1, cons(y2, y3))), z1)) -> c11(MARK(first(y0, first(y1, cons(y2, y3))))) MARK(cons(first(y0, first(first(y1, y2), y3)), z1)) -> c11(MARK(first(y0, first(first(y1, y2), y3)))) MARK(cons(first(y0, first(from(y1), y2)), z1)) -> c11(MARK(first(y0, first(from(y1), y2)))) MARK(cons(first(y0, first(0, y1)), z1)) -> c11(MARK(first(y0, first(0, y1)))) MARK(cons(first(y0, first(nil, y1)), z1)) -> c11(MARK(first(y0, first(nil, y1)))) MARK(cons(first(y0, first(s(y1), y2)), z1)) -> c11(MARK(first(y0, first(s(y1), y2)))) MARK(cons(first(y0, first(cons(y1, y2), y3)), z1)) -> c11(MARK(first(y0, first(cons(y1, y2), y3)))) MARK(cons(first(first(y0, y1), first(y2, y3)), z1)) -> c11(MARK(first(first(y0, y1), first(y2, y3)))) MARK(cons(first(from(y0), first(y1, y2)), z1)) -> c11(MARK(first(from(y0), first(y1, y2)))) MARK(cons(first(s(y0), first(y1, y2)), z1)) -> c11(MARK(first(s(y0), first(y1, y2)))) MARK(cons(first(y0, first(y1, y2)), z1)) -> c11(MARK(first(y0, first(y1, y2)))) MARK(cons(first(cons(y0, y1), first(y2, y3)), z1)) -> c11(MARK(first(cons(y0, y1), first(y2, y3)))) MARK(cons(first(y0, from(y1)), z1)) -> c11(MARK(first(y0, from(y1)))) MARK(cons(first(y0, from(first(y1, y2))), z1)) -> c11(MARK(first(y0, from(first(y1, y2))))) MARK(cons(first(y0, from(from(y1))), z1)) -> c11(MARK(first(y0, from(from(y1))))) MARK(cons(first(y0, from(0)), z1)) -> c11(MARK(first(y0, from(0)))) MARK(cons(first(y0, from(nil)), z1)) -> c11(MARK(first(y0, from(nil)))) MARK(cons(first(y0, from(s(y1))), z1)) -> c11(MARK(first(y0, from(s(y1))))) MARK(cons(first(y0, from(cons(y1, y2))), z1)) -> c11(MARK(first(y0, from(cons(y1, y2))))) MARK(cons(first(first(y0, y1), from(y2)), z1)) -> c11(MARK(first(first(y0, y1), from(y2)))) MARK(cons(first(from(y0), from(y1)), z1)) -> c11(MARK(first(from(y0), from(y1)))) MARK(cons(first(s(y0), from(y1)), z1)) -> c11(MARK(first(s(y0), from(y1)))) MARK(cons(first(cons(y0, y1), from(y2)), z1)) -> c11(MARK(first(cons(y0, y1), from(y2)))) MARK(cons(first(y0, cons(first(y1, y2), y3)), z1)) -> c11(MARK(first(y0, cons(first(y1, y2), y3)))) MARK(cons(first(y0, cons(from(y1), y2)), z1)) -> c11(MARK(first(y0, cons(from(y1), y2)))) MARK(cons(first(y0, cons(s(y1), y2)), z1)) -> c11(MARK(first(y0, cons(s(y1), y2)))) MARK(cons(first(y0, cons(cons(y1, y2), y3)), z1)) -> c11(MARK(first(y0, cons(cons(y1, y2), y3)))) MARK(cons(first(first(y0, y1), cons(y2, y3)), z1)) -> c11(MARK(first(first(y0, y1), cons(y2, y3)))) MARK(cons(first(from(y0), cons(y1, y2)), z1)) -> c11(MARK(first(from(y0), cons(y1, y2)))) MARK(cons(first(s(y0), cons(y1, y2)), z1)) -> c11(MARK(first(s(y0), cons(y1, y2)))) MARK(cons(first(cons(y0, y1), cons(y2, y3)), z1)) -> c11(MARK(first(cons(y0, y1), cons(y2, y3)))) MARK(cons(first(first(y0, first(y1, y2)), y3), z1)) -> c11(MARK(first(first(y0, first(y1, y2)), y3))) MARK(cons(first(first(y0, from(y1)), y2), z1)) -> c11(MARK(first(first(y0, from(y1)), y2))) MARK(cons(first(first(y0, 0), y1), z1)) -> c11(MARK(first(first(y0, 0), y1))) MARK(cons(first(first(y0, nil), y1), z1)) -> c11(MARK(first(first(y0, nil), y1))) MARK(cons(first(first(y0, s(y1)), y2), z1)) -> c11(MARK(first(first(y0, s(y1)), y2))) MARK(cons(first(first(y0, cons(y1, y2)), y3), z1)) -> c11(MARK(first(first(y0, cons(y1, y2)), y3))) MARK(cons(first(first(first(y0, y1), y2), y3), z1)) -> c11(MARK(first(first(first(y0, y1), y2), y3))) MARK(cons(first(first(from(y0), y1), y2), z1)) -> c11(MARK(first(first(from(y0), y1), y2))) MARK(cons(first(first(0, y0), y1), z1)) -> c11(MARK(first(first(0, y0), y1))) MARK(cons(first(first(nil, y0), y1), z1)) -> c11(MARK(first(first(nil, y0), y1))) MARK(cons(first(first(s(y0), y1), y2), z1)) -> c11(MARK(first(first(s(y0), y1), y2))) MARK(cons(first(first(cons(y0, y1), y2), y3), z1)) -> c11(MARK(first(first(cons(y0, y1), y2), y3))) MARK(cons(first(first(y0, y1), 0), z1)) -> c11(MARK(first(first(y0, y1), 0))) MARK(cons(first(first(y0, y1), nil), z1)) -> c11(MARK(first(first(y0, y1), nil))) MARK(cons(first(first(y0, y1), s(y2)), z1)) -> c11(MARK(first(first(y0, y1), s(y2)))) MARK(cons(first(first(y0, y1), y2), z1)) -> c11(MARK(first(first(y0, y1), y2))) MARK(cons(first(from(first(y0, y1)), y2), z1)) -> c11(MARK(first(from(first(y0, y1)), y2))) MARK(cons(first(from(from(y0)), y1), z1)) -> c11(MARK(first(from(from(y0)), y1))) MARK(cons(first(from(s(y0)), y1), z1)) -> c11(MARK(first(from(s(y0)), y1))) MARK(cons(first(from(cons(y0, y1)), y2), z1)) -> c11(MARK(first(from(cons(y0, y1)), y2))) MARK(cons(first(from(y0), y1), z1)) -> c11(MARK(first(from(y0), y1))) MARK(cons(first(from(y0), 0), z1)) -> c11(MARK(first(from(y0), 0))) MARK(cons(first(from(y0), nil), z1)) -> c11(MARK(first(from(y0), nil))) MARK(cons(first(from(y0), s(y1)), z1)) -> c11(MARK(first(from(y0), s(y1)))) MARK(cons(first(s(first(y0, y1)), y2), z1)) -> c11(MARK(first(s(first(y0, y1)), y2))) MARK(cons(first(s(from(y0)), y1), z1)) -> c11(MARK(first(s(from(y0)), y1))) MARK(cons(first(s(s(y0)), y1), z1)) -> c11(MARK(first(s(s(y0)), y1))) MARK(cons(first(s(cons(y0, y1)), y2), z1)) -> c11(MARK(first(s(cons(y0, y1)), y2))) MARK(cons(first(s(y0), y1), z1)) -> c11(MARK(first(s(y0), y1))) MARK(cons(first(s(y0), 0), z1)) -> c11(MARK(first(s(y0), 0))) MARK(cons(first(s(y0), nil), z1)) -> c11(MARK(first(s(y0), nil))) MARK(cons(first(s(y0), s(y1)), z1)) -> c11(MARK(first(s(y0), s(y1)))) MARK(cons(first(0, first(y0, y1)), z1)) -> c11(MARK(first(0, first(y0, y1)))) MARK(cons(first(nil, first(y0, y1)), z1)) -> c11(MARK(first(nil, first(y0, y1)))) MARK(cons(first(0, from(y0)), z1)) -> c11(MARK(first(0, from(y0)))) MARK(cons(first(nil, from(y0)), z1)) -> c11(MARK(first(nil, from(y0)))) MARK(cons(first(y0, cons(y1, y2)), z1)) -> c11(MARK(first(y0, cons(y1, y2)))) MARK(cons(first(0, cons(y0, y1)), z1)) -> c11(MARK(first(0, cons(y0, y1)))) MARK(cons(first(nil, cons(y0, y1)), z1)) -> c11(MARK(first(nil, cons(y0, y1)))) MARK(cons(first(from(0), y0), z1)) -> c11(MARK(first(from(0), y0))) MARK(cons(first(from(nil), y0), z1)) -> c11(MARK(first(from(nil), y0))) MARK(cons(first(s(0), y0), z1)) -> c11(MARK(first(s(0), y0))) MARK(cons(first(s(nil), y0), z1)) -> c11(MARK(first(s(nil), y0))) MARK(cons(first(y0, cons(0, y1)), z1)) -> c11(MARK(first(y0, cons(0, y1)))) MARK(cons(first(y0, cons(nil, y1)), z1)) -> c11(MARK(first(y0, cons(nil, y1)))) MARK(cons(from(s(y0)), z1)) -> c11(MARK(from(s(y0)))) MARK(cons(from(cons(y0, y1)), z1)) -> c11(MARK(from(cons(y0, y1)))) MARK(cons(from(first(y0, y1)), z1)) -> c11(MARK(from(first(y0, y1)))) MARK(cons(from(first(y0, first(y1, y2))), z1)) -> c11(MARK(from(first(y0, first(y1, y2))))) MARK(cons(from(first(y0, from(y1))), z1)) -> c11(MARK(from(first(y0, from(y1))))) MARK(cons(from(first(y0, 0)), z1)) -> c11(MARK(from(first(y0, 0)))) MARK(cons(from(first(y0, nil)), z1)) -> c11(MARK(from(first(y0, nil)))) MARK(cons(from(first(y0, s(y1))), z1)) -> c11(MARK(from(first(y0, s(y1))))) MARK(cons(from(first(y0, cons(y1, y2))), z1)) -> c11(MARK(from(first(y0, cons(y1, y2))))) MARK(cons(from(first(first(y0, y1), y2)), z1)) -> c11(MARK(from(first(first(y0, y1), y2)))) MARK(cons(from(first(from(y0), y1)), z1)) -> c11(MARK(from(first(from(y0), y1)))) MARK(cons(from(first(0, y0)), z1)) -> c11(MARK(from(first(0, y0)))) MARK(cons(from(first(nil, y0)), z1)) -> c11(MARK(from(first(nil, y0)))) MARK(cons(from(first(s(y0), y1)), z1)) -> c11(MARK(from(first(s(y0), y1)))) MARK(cons(from(first(cons(y0, y1), y2)), z1)) -> c11(MARK(from(first(cons(y0, y1), y2)))) MARK(cons(from(from(y0)), z1)) -> c11(MARK(from(from(y0)))) MARK(cons(from(from(first(y0, y1))), z1)) -> c11(MARK(from(from(first(y0, y1))))) MARK(cons(from(from(from(y0))), z1)) -> c11(MARK(from(from(from(y0))))) MARK(cons(from(from(s(y0))), z1)) -> c11(MARK(from(from(s(y0))))) MARK(cons(from(from(cons(y0, y1))), z1)) -> c11(MARK(from(from(cons(y0, y1))))) MARK(cons(from(from(0)), z1)) -> c11(MARK(from(from(0)))) MARK(cons(from(from(nil)), z1)) -> c11(MARK(from(from(nil)))) MARK(cons(s(s(y0)), z1)) -> c11(MARK(s(s(y0)))) MARK(cons(s(cons(y0, y1)), z1)) -> c11(MARK(s(cons(y0, y1)))) MARK(cons(s(first(y0, 0)), z1)) -> c11(MARK(s(first(y0, 0)))) MARK(cons(s(first(y0, nil)), z1)) -> c11(MARK(s(first(y0, nil)))) MARK(cons(s(first(y0, s(y1))), z1)) -> c11(MARK(s(first(y0, s(y1))))) MARK(cons(s(first(cons(y0, y1), y2)), z1)) -> c11(MARK(s(first(cons(y0, y1), y2)))) MARK(cons(s(first(0, y0)), z1)) -> c11(MARK(s(first(0, y0)))) MARK(cons(s(first(nil, y0)), z1)) -> c11(MARK(s(first(nil, y0)))) MARK(cons(s(first(y0, first(y1, first(y2, y3)))), z1)) -> c11(MARK(s(first(y0, first(y1, first(y2, y3)))))) MARK(cons(s(first(y0, first(y1, from(y2)))), z1)) -> c11(MARK(s(first(y0, first(y1, from(y2)))))) MARK(cons(s(first(y0, first(y1, 0))), z1)) -> c11(MARK(s(first(y0, first(y1, 0))))) MARK(cons(s(first(y0, first(y1, nil))), z1)) -> c11(MARK(s(first(y0, first(y1, nil))))) MARK(cons(s(first(y0, first(y1, s(y2)))), z1)) -> c11(MARK(s(first(y0, first(y1, s(y2)))))) MARK(cons(s(first(y0, first(y1, cons(y2, y3)))), z1)) -> c11(MARK(s(first(y0, first(y1, cons(y2, y3)))))) MARK(cons(s(first(y0, first(first(y1, y2), y3))), z1)) -> c11(MARK(s(first(y0, first(first(y1, y2), y3))))) MARK(cons(s(first(y0, first(from(y1), y2))), z1)) -> c11(MARK(s(first(y0, first(from(y1), y2))))) MARK(cons(s(first(y0, first(0, y1))), z1)) -> c11(MARK(s(first(y0, first(0, y1))))) MARK(cons(s(first(y0, first(nil, y1))), z1)) -> c11(MARK(s(first(y0, first(nil, y1))))) MARK(cons(s(first(y0, first(s(y1), y2))), z1)) -> c11(MARK(s(first(y0, first(s(y1), y2))))) MARK(cons(s(first(y0, first(cons(y1, y2), y3))), z1)) -> c11(MARK(s(first(y0, first(cons(y1, y2), y3))))) MARK(cons(s(first(first(y0, y1), first(y2, y3))), z1)) -> c11(MARK(s(first(first(y0, y1), first(y2, y3))))) MARK(cons(s(first(from(y0), first(y1, y2))), z1)) -> c11(MARK(s(first(from(y0), first(y1, y2))))) MARK(cons(s(first(s(y0), first(y1, y2))), z1)) -> c11(MARK(s(first(s(y0), first(y1, y2))))) MARK(cons(s(first(y0, first(y1, y2))), z1)) -> c11(MARK(s(first(y0, first(y1, y2))))) MARK(cons(s(first(cons(y0, y1), first(y2, y3))), z1)) -> c11(MARK(s(first(cons(y0, y1), first(y2, y3))))) MARK(cons(s(first(y0, from(y1))), z1)) -> c11(MARK(s(first(y0, from(y1))))) MARK(cons(s(first(y0, from(first(y1, y2)))), z1)) -> c11(MARK(s(first(y0, from(first(y1, y2)))))) MARK(cons(s(first(y0, from(from(y1)))), z1)) -> c11(MARK(s(first(y0, from(from(y1)))))) MARK(cons(s(first(y0, from(0))), z1)) -> c11(MARK(s(first(y0, from(0))))) MARK(cons(s(first(y0, from(nil))), z1)) -> c11(MARK(s(first(y0, from(nil))))) MARK(cons(s(first(y0, from(s(y1)))), z1)) -> c11(MARK(s(first(y0, from(s(y1)))))) MARK(cons(s(first(y0, from(cons(y1, y2)))), z1)) -> c11(MARK(s(first(y0, from(cons(y1, y2)))))) MARK(cons(s(first(first(y0, y1), from(y2))), z1)) -> c11(MARK(s(first(first(y0, y1), from(y2))))) MARK(cons(s(first(from(y0), from(y1))), z1)) -> c11(MARK(s(first(from(y0), from(y1))))) MARK(cons(s(first(s(y0), from(y1))), z1)) -> c11(MARK(s(first(s(y0), from(y1))))) MARK(cons(s(first(cons(y0, y1), from(y2))), z1)) -> c11(MARK(s(first(cons(y0, y1), from(y2))))) MARK(cons(s(first(y0, cons(first(y1, y2), y3))), z1)) -> c11(MARK(s(first(y0, cons(first(y1, y2), y3))))) MARK(cons(s(first(y0, cons(from(y1), y2))), z1)) -> c11(MARK(s(first(y0, cons(from(y1), y2))))) MARK(cons(s(first(y0, cons(s(y1), y2))), z1)) -> c11(MARK(s(first(y0, cons(s(y1), y2))))) MARK(cons(s(first(y0, cons(cons(y1, y2), y3))), z1)) -> c11(MARK(s(first(y0, cons(cons(y1, y2), y3))))) MARK(cons(s(first(first(y0, y1), cons(y2, y3))), z1)) -> c11(MARK(s(first(first(y0, y1), cons(y2, y3))))) MARK(cons(s(first(from(y0), cons(y1, y2))), z1)) -> c11(MARK(s(first(from(y0), cons(y1, y2))))) MARK(cons(s(first(s(y0), cons(y1, y2))), z1)) -> c11(MARK(s(first(s(y0), cons(y1, y2))))) MARK(cons(s(first(cons(y0, y1), cons(y2, y3))), z1)) -> c11(MARK(s(first(cons(y0, y1), cons(y2, y3))))) MARK(cons(s(first(first(y0, first(y1, y2)), y3)), z1)) -> c11(MARK(s(first(first(y0, first(y1, y2)), y3)))) MARK(cons(s(first(first(y0, from(y1)), y2)), z1)) -> c11(MARK(s(first(first(y0, from(y1)), y2)))) MARK(cons(s(first(first(y0, 0), y1)), z1)) -> c11(MARK(s(first(first(y0, 0), y1)))) MARK(cons(s(first(first(y0, nil), y1)), z1)) -> c11(MARK(s(first(first(y0, nil), y1)))) MARK(cons(s(first(first(y0, s(y1)), y2)), z1)) -> c11(MARK(s(first(first(y0, s(y1)), y2)))) MARK(cons(s(first(first(y0, cons(y1, y2)), y3)), z1)) -> c11(MARK(s(first(first(y0, cons(y1, y2)), y3)))) MARK(cons(s(first(first(first(y0, y1), y2), y3)), z1)) -> c11(MARK(s(first(first(first(y0, y1), y2), y3)))) MARK(cons(s(first(first(from(y0), y1), y2)), z1)) -> c11(MARK(s(first(first(from(y0), y1), y2)))) MARK(cons(s(first(first(0, y0), y1)), z1)) -> c11(MARK(s(first(first(0, y0), y1)))) MARK(cons(s(first(first(nil, y0), y1)), z1)) -> c11(MARK(s(first(first(nil, y0), y1)))) MARK(cons(s(first(first(s(y0), y1), y2)), z1)) -> c11(MARK(s(first(first(s(y0), y1), y2)))) MARK(cons(s(first(first(cons(y0, y1), y2), y3)), z1)) -> c11(MARK(s(first(first(cons(y0, y1), y2), y3)))) MARK(cons(s(first(first(y0, y1), 0)), z1)) -> c11(MARK(s(first(first(y0, y1), 0)))) MARK(cons(s(first(first(y0, y1), nil)), z1)) -> c11(MARK(s(first(first(y0, y1), nil)))) MARK(cons(s(first(first(y0, y1), s(y2))), z1)) -> c11(MARK(s(first(first(y0, y1), s(y2))))) MARK(cons(s(first(first(y0, y1), y2)), z1)) -> c11(MARK(s(first(first(y0, y1), y2)))) MARK(cons(s(first(from(first(y0, y1)), y2)), z1)) -> c11(MARK(s(first(from(first(y0, y1)), y2)))) MARK(cons(s(first(from(from(y0)), y1)), z1)) -> c11(MARK(s(first(from(from(y0)), y1)))) MARK(cons(s(first(from(s(y0)), y1)), z1)) -> c11(MARK(s(first(from(s(y0)), y1)))) MARK(cons(s(first(from(cons(y0, y1)), y2)), z1)) -> c11(MARK(s(first(from(cons(y0, y1)), y2)))) MARK(cons(s(first(from(y0), y1)), z1)) -> c11(MARK(s(first(from(y0), y1)))) MARK(cons(s(first(from(y0), 0)), z1)) -> c11(MARK(s(first(from(y0), 0)))) MARK(cons(s(first(from(y0), nil)), z1)) -> c11(MARK(s(first(from(y0), nil)))) MARK(cons(s(first(from(y0), s(y1))), z1)) -> c11(MARK(s(first(from(y0), s(y1))))) MARK(cons(s(first(s(first(y0, y1)), y2)), z1)) -> c11(MARK(s(first(s(first(y0, y1)), y2)))) MARK(cons(s(first(s(from(y0)), y1)), z1)) -> c11(MARK(s(first(s(from(y0)), y1)))) MARK(cons(s(first(s(0), y0)), z1)) -> c11(MARK(s(first(s(0), y0)))) MARK(cons(s(first(s(nil), y0)), z1)) -> c11(MARK(s(first(s(nil), y0)))) MARK(cons(s(first(s(s(y0)), y1)), z1)) -> c11(MARK(s(first(s(s(y0)), y1)))) MARK(cons(s(first(s(cons(y0, y1)), y2)), z1)) -> c11(MARK(s(first(s(cons(y0, y1)), y2)))) MARK(cons(s(first(s(y0), y1)), z1)) -> c11(MARK(s(first(s(y0), y1)))) MARK(cons(s(first(s(y0), 0)), z1)) -> c11(MARK(s(first(s(y0), 0)))) MARK(cons(s(first(s(y0), nil)), z1)) -> c11(MARK(s(first(s(y0), nil)))) MARK(cons(s(first(s(y0), s(y1))), z1)) -> c11(MARK(s(first(s(y0), s(y1))))) MARK(cons(s(first(0, first(y0, y1))), z1)) -> c11(MARK(s(first(0, first(y0, y1))))) MARK(cons(s(first(nil, first(y0, y1))), z1)) -> c11(MARK(s(first(nil, first(y0, y1))))) MARK(cons(s(first(0, from(y0))), z1)) -> c11(MARK(s(first(0, from(y0))))) MARK(cons(s(first(nil, from(y0))), z1)) -> c11(MARK(s(first(nil, from(y0))))) MARK(cons(s(first(y0, cons(y1, y2))), z1)) -> c11(MARK(s(first(y0, cons(y1, y2))))) MARK(cons(s(first(0, cons(y0, y1))), z1)) -> c11(MARK(s(first(0, cons(y0, y1))))) MARK(cons(s(first(nil, cons(y0, y1))), z1)) -> c11(MARK(s(first(nil, cons(y0, y1))))) MARK(cons(s(first(from(0), y0)), z1)) -> c11(MARK(s(first(from(0), y0)))) MARK(cons(s(first(from(nil), y0)), z1)) -> c11(MARK(s(first(from(nil), y0)))) MARK(cons(s(first(y0, cons(0, y1))), z1)) -> c11(MARK(s(first(y0, cons(0, y1))))) MARK(cons(s(first(y0, cons(nil, y1))), z1)) -> c11(MARK(s(first(y0, cons(nil, y1))))) MARK(cons(s(from(s(y0))), z1)) -> c11(MARK(s(from(s(y0))))) MARK(cons(s(from(cons(y0, y1))), z1)) -> c11(MARK(s(from(cons(y0, y1))))) MARK(cons(s(from(first(y0, y1))), z1)) -> c11(MARK(s(from(first(y0, y1))))) MARK(cons(s(from(first(y0, first(y1, y2)))), z1)) -> c11(MARK(s(from(first(y0, first(y1, y2)))))) MARK(cons(s(from(first(y0, from(y1)))), z1)) -> c11(MARK(s(from(first(y0, from(y1)))))) MARK(cons(s(from(first(y0, 0))), z1)) -> c11(MARK(s(from(first(y0, 0))))) MARK(cons(s(from(first(y0, nil))), z1)) -> c11(MARK(s(from(first(y0, nil))))) MARK(cons(s(from(first(y0, s(y1)))), z1)) -> c11(MARK(s(from(first(y0, s(y1)))))) MARK(cons(s(from(first(y0, cons(y1, y2)))), z1)) -> c11(MARK(s(from(first(y0, cons(y1, y2)))))) MARK(cons(s(from(first(first(y0, y1), y2))), z1)) -> c11(MARK(s(from(first(first(y0, y1), y2))))) MARK(cons(s(from(first(from(y0), y1))), z1)) -> c11(MARK(s(from(first(from(y0), y1))))) MARK(cons(s(from(first(0, y0))), z1)) -> c11(MARK(s(from(first(0, y0))))) MARK(cons(s(from(first(nil, y0))), z1)) -> c11(MARK(s(from(first(nil, y0))))) MARK(cons(s(from(first(s(y0), y1))), z1)) -> c11(MARK(s(from(first(s(y0), y1))))) MARK(cons(s(from(first(cons(y0, y1), y2))), z1)) -> c11(MARK(s(from(first(cons(y0, y1), y2))))) MARK(cons(s(from(from(y0))), z1)) -> c11(MARK(s(from(from(y0))))) MARK(cons(s(from(from(first(y0, y1)))), z1)) -> c11(MARK(s(from(from(first(y0, y1)))))) MARK(cons(s(from(from(from(y0)))), z1)) -> c11(MARK(s(from(from(from(y0)))))) MARK(cons(s(from(from(s(y0)))), z1)) -> c11(MARK(s(from(from(s(y0)))))) MARK(cons(s(from(from(cons(y0, y1)))), z1)) -> c11(MARK(s(from(from(cons(y0, y1)))))) MARK(cons(s(from(from(0))), z1)) -> c11(MARK(s(from(from(0))))) MARK(cons(s(from(from(nil))), z1)) -> c11(MARK(s(from(from(nil))))) K tuples:none Defined Rule Symbols: a__first_2, a__from_1, mark_1 Defined Pair Symbols: MARK_1, A__FIRST_2, A__FROM_1 Compound Symbols: c5_1, c6_1, c5_2, c6_2, c1_1, c3_1, c7_2, c7_1, c10_1, c11_1 ---------------------------------------- (159) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing nodes: MARK(first(x0, cons(nil, x2))) -> c6(MARK(cons(nil, x2))) MARK(first(x0, cons(0, x2))) -> c6(MARK(cons(0, x2))) ---------------------------------------- (160) Obligation: Complexity Dependency Tuples Problem Rules: a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(0) -> 0 mark(nil) -> nil mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(x0, from(x1))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), from(x1))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(first(x0, cons(from(z0), x2))) -> c5(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(s(z0), x2))) -> c5(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(first(first(z0, z1), cons(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(first(z0, z1))) MARK(first(from(z0), cons(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(first(s(z0), cons(x1, x2))) -> c5(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(s(z0))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(first(x0, first(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(first(x0, first(z0, z1)))) MARK(first(first(x0, from(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(first(x0, from(z0)))) MARK(first(first(x0, 0), x2)) -> c5(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(first(x0, 0))) MARK(first(first(x0, nil), x2)) -> c5(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(first(x0, nil))) MARK(first(first(x0, s(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(first(x0, s(z0)))) MARK(first(first(x0, cons(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(first(x0, cons(z0, z1)))) MARK(first(first(first(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(first(first(z0, z1), x1))) MARK(first(first(from(z0), x1), x2)) -> c5(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(first(from(z0), x1))) MARK(first(first(0, x1), x2)) -> c5(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(first(0, x1))) MARK(first(first(nil, x1), x2)) -> c5(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(first(nil, x1))) MARK(first(first(s(z0), x1), x2)) -> c5(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(first(s(z0), x1))) MARK(first(first(cons(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(first(cons(z0, z1), x1))) MARK(first(first(x0, x1), 0)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), nil)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), s(z0))) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), x2)) -> c5(MARK(first(x0, x1))) MARK(first(from(first(z0, z1)), x1)) -> c5(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(from(first(z0, z1)))) MARK(first(from(from(z0)), x1)) -> c5(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(first(from(s(z0)), x1)) -> c5(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(from(s(z0)))) MARK(first(from(cons(z0, z1)), x1)) -> c5(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(first(from(x0), x1)) -> c5(MARK(from(x0))) MARK(first(from(x0), 0)) -> c5(MARK(from(x0))) MARK(first(from(x0), nil)) -> c5(MARK(from(x0))) MARK(first(from(x0), s(z0))) -> c5(MARK(from(x0))) MARK(first(s(first(z0, z1)), x1)) -> c5(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(s(first(z0, z1)))) MARK(first(s(from(z0)), x1)) -> c5(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(s(from(z0)))) MARK(first(s(s(z0)), x1)) -> c5(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(s(s(z0)))) MARK(first(s(cons(z0, z1)), x1)) -> c5(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(s(cons(z0, z1)))) MARK(first(s(x0), x1)) -> c5(MARK(s(x0))) MARK(first(s(x0), 0)) -> c5(MARK(s(x0))) MARK(first(s(x0), nil)) -> c5(MARK(s(x0))) MARK(first(s(x0), s(z0))) -> c5(MARK(s(x0))) MARK(first(x0, first(x1, first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(first(x1, first(z0, z1)))) MARK(first(x0, first(x1, from(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(first(x1, from(z0)))) MARK(first(x0, first(x1, 0))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(first(x1, 0))) MARK(first(x0, first(x1, nil))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(first(x1, nil))) MARK(first(x0, first(x1, s(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(first(x1, s(z0)))) MARK(first(x0, first(x1, cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(first(x1, cons(z0, z1)))) MARK(first(x0, first(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(first(first(z0, z1), x2))) MARK(first(x0, first(from(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(first(from(z0), x2))) MARK(first(x0, first(0, x2))) -> c6(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(first(0, x2))) MARK(first(x0, first(nil, x2))) -> c6(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(first(nil, x2))) MARK(first(x0, first(s(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(first(s(z0), x2))) MARK(first(x0, first(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(first(cons(z0, z1), x2))) MARK(first(first(z0, z1), first(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(from(z0), first(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(s(z0), first(x1, x2))) -> c6(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(x0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(nil, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(cons(z0, z1), first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(x0, from(x1))) -> c6(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(first(x0, from(first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(from(first(z0, z1)))) MARK(first(x0, from(from(z0)))) -> c6(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(first(x0, from(s(z0)))) -> c6(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(from(s(z0)))) MARK(first(x0, from(cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(first(first(z0, z1), from(x1))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(first(from(z0), from(x1))) -> c6(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(s(z0), from(x1))) -> c6(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(x0, from(x1))) -> c6(MARK(from(x1))) MARK(first(0, from(x1))) -> c6(MARK(from(x1))) MARK(first(nil, from(x1))) -> c6(MARK(from(x1))) MARK(first(cons(z0, z1), from(x1))) -> c6(MARK(from(x1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(cons(first(z0, z1), x2))) MARK(first(x0, cons(from(z0), x2))) -> c6(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(first(x0, cons(s(z0), x2))) -> c6(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(cons(s(z0), x2))) MARK(first(x0, cons(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(first(first(z0, z1), cons(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(from(z0), cons(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(s(z0), cons(x1, x2))) -> c6(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(x0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(nil, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(first(x0, first(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(first(first(x0, from(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, 0), x2)) -> c6(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(x2)) MARK(first(first(x0, nil), x2)) -> c6(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(x2)) MARK(first(first(x0, s(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, cons(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(first(first(first(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(from(z0), x1), x2)) -> c6(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(0, x1), x2)) -> c6(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(nil, x1), x2)) -> c6(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(s(z0), x1), x2)) -> c6(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(cons(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(x0, x1), s(z0))) -> c6(MARK(s(z0))) MARK(first(first(x0, x1), x2)) -> c6(MARK(x2)) MARK(first(from(first(z0, z1)), x1)) -> c6(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(first(from(from(z0)), x1)) -> c6(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(first(from(0), x1)) -> c6(A__FIRST(a__from(0), mark(x1)), MARK(x1)) MARK(first(from(nil), x1)) -> c6(A__FIRST(a__from(nil), mark(x1)), MARK(x1)) MARK(first(from(s(z0)), x1)) -> c6(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(x1)) MARK(first(from(cons(z0, z1)), x1)) -> c6(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(first(from(x0), s(z0))) -> c6(MARK(s(z0))) MARK(first(from(x0), x1)) -> c6(MARK(x1)) MARK(first(s(first(z0, z1)), x1)) -> c6(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(first(s(from(z0)), x1)) -> c6(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(first(s(0), x1)) -> c6(A__FIRST(s(0), mark(x1)), MARK(x1)) MARK(first(s(nil), x1)) -> c6(A__FIRST(s(nil), mark(x1)), MARK(x1)) MARK(first(s(s(z0)), x1)) -> c6(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(x1)) MARK(first(s(cons(z0, z1)), x1)) -> c6(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(first(s(x0), s(z0))) -> c6(MARK(s(z0))) A__FIRST(s(z0), cons(from(y0), z2)) -> c1(MARK(from(y0))) A__FIRST(s(z0), cons(s(y0), z2)) -> c1(MARK(s(y0))) A__FIRST(s(z0), cons(cons(y0, y1), z2)) -> c1(MARK(cons(y0, y1))) A__FIRST(s(z0), cons(first(y0, 0), z2)) -> c1(MARK(first(y0, 0))) A__FIRST(s(z0), cons(first(y0, nil), z2)) -> c1(MARK(first(y0, nil))) A__FIRST(s(z0), cons(first(y0, s(y1)), z2)) -> c1(MARK(first(y0, s(y1)))) A__FIRST(s(z0), cons(first(cons(y0, y1), y2), z2)) -> c1(MARK(first(cons(y0, y1), y2))) A__FIRST(s(z0), cons(first(0, y0), z2)) -> c1(MARK(first(0, y0))) A__FIRST(s(z0), cons(first(nil, y0), z2)) -> c1(MARK(first(nil, y0))) A__FIRST(s(z0), cons(first(y0, first(y1, first(y2, y3))), z2)) -> c1(MARK(first(y0, first(y1, first(y2, y3))))) A__FIRST(s(z0), cons(first(y0, first(y1, from(y2))), z2)) -> c1(MARK(first(y0, first(y1, from(y2))))) A__FIRST(s(z0), cons(first(y0, first(y1, 0)), z2)) -> c1(MARK(first(y0, first(y1, 0)))) A__FIRST(s(z0), cons(first(y0, first(y1, nil)), z2)) -> c1(MARK(first(y0, first(y1, nil)))) A__FIRST(s(z0), cons(first(y0, first(y1, s(y2))), z2)) -> c1(MARK(first(y0, first(y1, s(y2))))) A__FIRST(s(z0), cons(first(y0, first(y1, cons(y2, y3))), z2)) -> c1(MARK(first(y0, first(y1, cons(y2, y3))))) A__FIRST(s(z0), cons(first(y0, first(first(y1, y2), y3)), z2)) -> c1(MARK(first(y0, first(first(y1, y2), y3)))) A__FIRST(s(z0), cons(first(y0, first(from(y1), y2)), z2)) -> c1(MARK(first(y0, first(from(y1), y2)))) A__FIRST(s(z0), cons(first(y0, first(0, y1)), z2)) -> c1(MARK(first(y0, first(0, y1)))) A__FIRST(s(z0), cons(first(y0, first(nil, y1)), z2)) -> c1(MARK(first(y0, first(nil, y1)))) A__FIRST(s(z0), cons(first(y0, first(s(y1), y2)), z2)) -> c1(MARK(first(y0, first(s(y1), y2)))) A__FIRST(s(z0), cons(first(y0, first(cons(y1, y2), y3)), z2)) -> c1(MARK(first(y0, first(cons(y1, y2), y3)))) A__FIRST(s(z0), cons(first(first(y0, y1), first(y2, y3)), z2)) -> c1(MARK(first(first(y0, y1), first(y2, y3)))) A__FIRST(s(z0), cons(first(from(y0), first(y1, y2)), z2)) -> c1(MARK(first(from(y0), first(y1, y2)))) A__FIRST(s(z0), cons(first(s(y0), first(y1, y2)), z2)) -> c1(MARK(first(s(y0), first(y1, y2)))) A__FIRST(s(z0), cons(first(y0, first(y1, y2)), z2)) -> c1(MARK(first(y0, first(y1, y2)))) A__FIRST(s(z0), cons(first(cons(y0, y1), first(y2, y3)), z2)) -> c1(MARK(first(cons(y0, y1), first(y2, y3)))) A__FIRST(s(z0), cons(first(y0, from(y1)), z2)) -> c1(MARK(first(y0, from(y1)))) A__FIRST(s(z0), cons(first(y0, from(first(y1, y2))), z2)) -> c1(MARK(first(y0, from(first(y1, y2))))) A__FIRST(s(z0), cons(first(y0, from(from(y1))), z2)) -> c1(MARK(first(y0, from(from(y1))))) A__FIRST(s(z0), cons(first(y0, from(0)), z2)) -> c1(MARK(first(y0, from(0)))) A__FIRST(s(z0), cons(first(y0, from(nil)), z2)) -> c1(MARK(first(y0, from(nil)))) A__FIRST(s(z0), cons(first(y0, from(s(y1))), z2)) -> c1(MARK(first(y0, from(s(y1))))) A__FIRST(s(z0), cons(first(y0, from(cons(y1, y2))), z2)) -> c1(MARK(first(y0, from(cons(y1, y2))))) A__FIRST(s(z0), cons(first(first(y0, y1), from(y2)), z2)) -> c1(MARK(first(first(y0, y1), from(y2)))) A__FIRST(s(z0), cons(first(from(y0), from(y1)), z2)) -> c1(MARK(first(from(y0), from(y1)))) A__FIRST(s(z0), cons(first(s(y0), from(y1)), z2)) -> c1(MARK(first(s(y0), from(y1)))) A__FIRST(s(z0), cons(first(cons(y0, y1), from(y2)), z2)) -> c1(MARK(first(cons(y0, y1), from(y2)))) A__FIRST(s(z0), cons(first(y0, cons(first(y1, y2), y3)), z2)) -> c1(MARK(first(y0, cons(first(y1, y2), y3)))) A__FIRST(s(z0), cons(first(y0, cons(from(y1), y2)), z2)) -> c1(MARK(first(y0, cons(from(y1), y2)))) A__FIRST(s(z0), cons(first(y0, cons(0, y1)), z2)) -> c1(MARK(first(y0, cons(0, y1)))) A__FIRST(s(z0), cons(first(y0, cons(nil, y1)), z2)) -> c1(MARK(first(y0, cons(nil, y1)))) A__FIRST(s(z0), cons(first(y0, cons(s(y1), y2)), z2)) -> c1(MARK(first(y0, cons(s(y1), y2)))) A__FIRST(s(z0), cons(first(y0, cons(cons(y1, y2), y3)), z2)) -> c1(MARK(first(y0, cons(cons(y1, y2), y3)))) A__FIRST(s(z0), cons(first(first(y0, y1), cons(y2, y3)), z2)) -> c1(MARK(first(first(y0, y1), cons(y2, y3)))) A__FIRST(s(z0), cons(first(from(y0), cons(y1, y2)), z2)) -> c1(MARK(first(from(y0), cons(y1, y2)))) A__FIRST(s(z0), cons(first(s(y0), cons(y1, y2)), z2)) -> c1(MARK(first(s(y0), cons(y1, y2)))) A__FIRST(s(z0), cons(first(cons(y0, y1), cons(y2, y3)), z2)) -> c1(MARK(first(cons(y0, y1), cons(y2, y3)))) A__FIRST(s(z0), cons(first(first(y0, first(y1, y2)), y3), z2)) -> c1(MARK(first(first(y0, first(y1, y2)), y3))) A__FIRST(s(z0), cons(first(first(y0, from(y1)), y2), z2)) -> c1(MARK(first(first(y0, from(y1)), y2))) A__FIRST(s(z0), cons(first(first(y0, 0), y1), z2)) -> c1(MARK(first(first(y0, 0), y1))) A__FIRST(s(z0), cons(first(first(y0, nil), y1), z2)) -> c1(MARK(first(first(y0, nil), y1))) A__FIRST(s(z0), cons(first(first(y0, s(y1)), y2), z2)) -> c1(MARK(first(first(y0, s(y1)), y2))) A__FIRST(s(z0), cons(first(first(y0, cons(y1, y2)), y3), z2)) -> c1(MARK(first(first(y0, cons(y1, y2)), y3))) A__FIRST(s(z0), cons(first(first(first(y0, y1), y2), y3), z2)) -> c1(MARK(first(first(first(y0, y1), y2), y3))) A__FIRST(s(z0), cons(first(first(from(y0), y1), y2), z2)) -> c1(MARK(first(first(from(y0), y1), y2))) A__FIRST(s(z0), cons(first(first(0, y0), y1), z2)) -> c1(MARK(first(first(0, y0), y1))) A__FIRST(s(z0), cons(first(first(nil, y0), y1), z2)) -> c1(MARK(first(first(nil, y0), y1))) A__FIRST(s(z0), cons(first(first(s(y0), y1), y2), z2)) -> c1(MARK(first(first(s(y0), y1), y2))) A__FIRST(s(z0), cons(first(first(cons(y0, y1), y2), y3), z2)) -> c1(MARK(first(first(cons(y0, y1), y2), y3))) A__FIRST(s(z0), cons(first(first(y0, y1), 0), z2)) -> c1(MARK(first(first(y0, y1), 0))) A__FIRST(s(z0), cons(first(first(y0, y1), nil), z2)) -> c1(MARK(first(first(y0, y1), nil))) A__FIRST(s(z0), cons(first(first(y0, y1), s(y2)), z2)) -> c1(MARK(first(first(y0, y1), s(y2)))) A__FIRST(s(z0), cons(first(first(y0, y1), y2), z2)) -> c1(MARK(first(first(y0, y1), y2))) A__FIRST(s(z0), cons(first(from(first(y0, y1)), y2), z2)) -> c1(MARK(first(from(first(y0, y1)), y2))) A__FIRST(s(z0), cons(first(from(from(y0)), y1), z2)) -> c1(MARK(first(from(from(y0)), y1))) A__FIRST(s(z0), cons(first(from(0), y0), z2)) -> c1(MARK(first(from(0), y0))) A__FIRST(s(z0), cons(first(from(nil), y0), z2)) -> c1(MARK(first(from(nil), y0))) A__FIRST(s(z0), cons(first(from(s(y0)), y1), z2)) -> c1(MARK(first(from(s(y0)), y1))) A__FIRST(s(z0), cons(first(from(cons(y0, y1)), y2), z2)) -> c1(MARK(first(from(cons(y0, y1)), y2))) A__FIRST(s(z0), cons(first(from(y0), y1), z2)) -> c1(MARK(first(from(y0), y1))) A__FIRST(s(z0), cons(first(from(y0), 0), z2)) -> c1(MARK(first(from(y0), 0))) A__FIRST(s(z0), cons(first(from(y0), nil), z2)) -> c1(MARK(first(from(y0), nil))) A__FIRST(s(z0), cons(first(from(y0), s(y1)), z2)) -> c1(MARK(first(from(y0), s(y1)))) A__FIRST(s(z0), cons(first(s(first(y0, y1)), y2), z2)) -> c1(MARK(first(s(first(y0, y1)), y2))) A__FIRST(s(z0), cons(first(s(from(y0)), y1), z2)) -> c1(MARK(first(s(from(y0)), y1))) A__FIRST(s(z0), cons(first(s(0), y0), z2)) -> c1(MARK(first(s(0), y0))) A__FIRST(s(z0), cons(first(s(nil), y0), z2)) -> c1(MARK(first(s(nil), y0))) A__FIRST(s(z0), cons(first(s(s(y0)), y1), z2)) -> c1(MARK(first(s(s(y0)), y1))) A__FIRST(s(z0), cons(first(s(cons(y0, y1)), y2), z2)) -> c1(MARK(first(s(cons(y0, y1)), y2))) A__FIRST(s(z0), cons(first(s(y0), y1), z2)) -> c1(MARK(first(s(y0), y1))) A__FIRST(s(z0), cons(first(s(y0), 0), z2)) -> c1(MARK(first(s(y0), 0))) A__FIRST(s(z0), cons(first(s(y0), nil), z2)) -> c1(MARK(first(s(y0), nil))) A__FIRST(s(z0), cons(first(s(y0), s(y1)), z2)) -> c1(MARK(first(s(y0), s(y1)))) A__FIRST(s(z0), cons(first(0, first(y0, y1)), z2)) -> c1(MARK(first(0, first(y0, y1)))) A__FIRST(s(z0), cons(first(nil, first(y0, y1)), z2)) -> c1(MARK(first(nil, first(y0, y1)))) A__FIRST(s(z0), cons(first(0, from(y0)), z2)) -> c1(MARK(first(0, from(y0)))) A__FIRST(s(z0), cons(first(nil, from(y0)), z2)) -> c1(MARK(first(nil, from(y0)))) A__FIRST(s(z0), cons(first(y0, cons(y1, y2)), z2)) -> c1(MARK(first(y0, cons(y1, y2)))) A__FIRST(s(z0), cons(first(0, cons(y0, y1)), z2)) -> c1(MARK(first(0, cons(y0, y1)))) A__FIRST(s(z0), cons(first(nil, cons(y0, y1)), z2)) -> c1(MARK(first(nil, cons(y0, y1)))) MARK(first(x0, cons(0, x2))) -> c5(MARK(x0)) MARK(first(x0, cons(nil, x2))) -> c5(MARK(x0)) A__FROM(from(y0)) -> c3(MARK(from(y0))) A__FROM(s(y0)) -> c3(MARK(s(y0))) A__FROM(cons(y0, y1)) -> c3(MARK(cons(y0, y1))) A__FROM(first(y0, 0)) -> c3(MARK(first(y0, 0))) A__FROM(first(y0, nil)) -> c3(MARK(first(y0, nil))) A__FROM(first(y0, s(y1))) -> c3(MARK(first(y0, s(y1)))) A__FROM(first(cons(y0, y1), y2)) -> c3(MARK(first(cons(y0, y1), y2))) A__FROM(first(0, y0)) -> c3(MARK(first(0, y0))) A__FROM(first(nil, y0)) -> c3(MARK(first(nil, y0))) A__FROM(first(y0, first(y1, first(y2, y3)))) -> c3(MARK(first(y0, first(y1, first(y2, y3))))) A__FROM(first(y0, first(y1, from(y2)))) -> c3(MARK(first(y0, first(y1, from(y2))))) A__FROM(first(y0, first(y1, 0))) -> c3(MARK(first(y0, first(y1, 0)))) A__FROM(first(y0, first(y1, nil))) -> c3(MARK(first(y0, first(y1, nil)))) A__FROM(first(y0, first(y1, s(y2)))) -> c3(MARK(first(y0, first(y1, s(y2))))) A__FROM(first(y0, first(y1, cons(y2, y3)))) -> c3(MARK(first(y0, first(y1, cons(y2, y3))))) A__FROM(first(y0, first(first(y1, y2), y3))) -> c3(MARK(first(y0, first(first(y1, y2), y3)))) A__FROM(first(y0, first(from(y1), y2))) -> c3(MARK(first(y0, first(from(y1), y2)))) A__FROM(first(y0, first(0, y1))) -> c3(MARK(first(y0, first(0, y1)))) A__FROM(first(y0, first(nil, y1))) -> c3(MARK(first(y0, first(nil, y1)))) A__FROM(first(y0, first(s(y1), y2))) -> c3(MARK(first(y0, first(s(y1), y2)))) A__FROM(first(y0, first(cons(y1, y2), y3))) -> c3(MARK(first(y0, first(cons(y1, y2), y3)))) A__FROM(first(first(y0, y1), first(y2, y3))) -> c3(MARK(first(first(y0, y1), first(y2, y3)))) A__FROM(first(from(y0), first(y1, y2))) -> c3(MARK(first(from(y0), first(y1, y2)))) A__FROM(first(s(y0), first(y1, y2))) -> c3(MARK(first(s(y0), first(y1, y2)))) A__FROM(first(y0, first(y1, y2))) -> c3(MARK(first(y0, first(y1, y2)))) A__FROM(first(cons(y0, y1), first(y2, y3))) -> c3(MARK(first(cons(y0, y1), first(y2, y3)))) A__FROM(first(y0, from(y1))) -> c3(MARK(first(y0, from(y1)))) A__FROM(first(y0, from(first(y1, y2)))) -> c3(MARK(first(y0, from(first(y1, y2))))) A__FROM(first(y0, from(from(y1)))) -> c3(MARK(first(y0, from(from(y1))))) A__FROM(first(y0, from(0))) -> c3(MARK(first(y0, from(0)))) A__FROM(first(y0, from(nil))) -> c3(MARK(first(y0, from(nil)))) A__FROM(first(y0, from(s(y1)))) -> c3(MARK(first(y0, from(s(y1))))) A__FROM(first(y0, from(cons(y1, y2)))) -> c3(MARK(first(y0, from(cons(y1, y2))))) A__FROM(first(first(y0, y1), from(y2))) -> c3(MARK(first(first(y0, y1), from(y2)))) A__FROM(first(from(y0), from(y1))) -> c3(MARK(first(from(y0), from(y1)))) A__FROM(first(s(y0), from(y1))) -> c3(MARK(first(s(y0), from(y1)))) A__FROM(first(cons(y0, y1), from(y2))) -> c3(MARK(first(cons(y0, y1), from(y2)))) A__FROM(first(y0, cons(first(y1, y2), y3))) -> c3(MARK(first(y0, cons(first(y1, y2), y3)))) A__FROM(first(y0, cons(from(y1), y2))) -> c3(MARK(first(y0, cons(from(y1), y2)))) A__FROM(first(y0, cons(s(y1), y2))) -> c3(MARK(first(y0, cons(s(y1), y2)))) A__FROM(first(y0, cons(cons(y1, y2), y3))) -> c3(MARK(first(y0, cons(cons(y1, y2), y3)))) A__FROM(first(first(y0, y1), cons(y2, y3))) -> c3(MARK(first(first(y0, y1), cons(y2, y3)))) A__FROM(first(from(y0), cons(y1, y2))) -> c3(MARK(first(from(y0), cons(y1, y2)))) A__FROM(first(s(y0), cons(y1, y2))) -> c3(MARK(first(s(y0), cons(y1, y2)))) A__FROM(first(cons(y0, y1), cons(y2, y3))) -> c3(MARK(first(cons(y0, y1), cons(y2, y3)))) A__FROM(first(first(y0, first(y1, y2)), y3)) -> c3(MARK(first(first(y0, first(y1, y2)), y3))) A__FROM(first(first(y0, from(y1)), y2)) -> c3(MARK(first(first(y0, from(y1)), y2))) A__FROM(first(first(y0, 0), y1)) -> c3(MARK(first(first(y0, 0), y1))) A__FROM(first(first(y0, nil), y1)) -> c3(MARK(first(first(y0, nil), y1))) A__FROM(first(first(y0, s(y1)), y2)) -> c3(MARK(first(first(y0, s(y1)), y2))) A__FROM(first(first(y0, cons(y1, y2)), y3)) -> c3(MARK(first(first(y0, cons(y1, y2)), y3))) A__FROM(first(first(first(y0, y1), y2), y3)) -> c3(MARK(first(first(first(y0, y1), y2), y3))) A__FROM(first(first(from(y0), y1), y2)) -> c3(MARK(first(first(from(y0), y1), y2))) A__FROM(first(first(0, y0), y1)) -> c3(MARK(first(first(0, y0), y1))) A__FROM(first(first(nil, y0), y1)) -> c3(MARK(first(first(nil, y0), y1))) A__FROM(first(first(s(y0), y1), y2)) -> c3(MARK(first(first(s(y0), y1), y2))) A__FROM(first(first(cons(y0, y1), y2), y3)) -> c3(MARK(first(first(cons(y0, y1), y2), y3))) A__FROM(first(first(y0, y1), 0)) -> c3(MARK(first(first(y0, y1), 0))) A__FROM(first(first(y0, y1), nil)) -> c3(MARK(first(first(y0, y1), nil))) A__FROM(first(first(y0, y1), s(y2))) -> c3(MARK(first(first(y0, y1), s(y2)))) A__FROM(first(first(y0, y1), y2)) -> c3(MARK(first(first(y0, y1), y2))) A__FROM(first(from(first(y0, y1)), y2)) -> c3(MARK(first(from(first(y0, y1)), y2))) A__FROM(first(from(from(y0)), y1)) -> c3(MARK(first(from(from(y0)), y1))) A__FROM(first(from(0), y0)) -> c3(MARK(first(from(0), y0))) A__FROM(first(from(nil), y0)) -> c3(MARK(first(from(nil), y0))) A__FROM(first(from(s(y0)), y1)) -> c3(MARK(first(from(s(y0)), y1))) A__FROM(first(from(cons(y0, y1)), y2)) -> c3(MARK(first(from(cons(y0, y1)), y2))) A__FROM(first(from(y0), y1)) -> c3(MARK(first(from(y0), y1))) A__FROM(first(from(y0), 0)) -> c3(MARK(first(from(y0), 0))) A__FROM(first(from(y0), nil)) -> c3(MARK(first(from(y0), nil))) A__FROM(first(from(y0), s(y1))) -> c3(MARK(first(from(y0), s(y1)))) A__FROM(first(s(first(y0, y1)), y2)) -> c3(MARK(first(s(first(y0, y1)), y2))) A__FROM(first(s(from(y0)), y1)) -> c3(MARK(first(s(from(y0)), y1))) A__FROM(first(s(0), y0)) -> c3(MARK(first(s(0), y0))) A__FROM(first(s(nil), y0)) -> c3(MARK(first(s(nil), y0))) A__FROM(first(s(s(y0)), y1)) -> c3(MARK(first(s(s(y0)), y1))) A__FROM(first(s(cons(y0, y1)), y2)) -> c3(MARK(first(s(cons(y0, y1)), y2))) A__FROM(first(s(y0), y1)) -> c3(MARK(first(s(y0), y1))) A__FROM(first(s(y0), 0)) -> c3(MARK(first(s(y0), 0))) A__FROM(first(s(y0), nil)) -> c3(MARK(first(s(y0), nil))) A__FROM(first(s(y0), s(y1))) -> c3(MARK(first(s(y0), s(y1)))) A__FROM(first(0, first(y0, y1))) -> c3(MARK(first(0, first(y0, y1)))) A__FROM(first(nil, first(y0, y1))) -> c3(MARK(first(nil, first(y0, y1)))) A__FROM(first(0, from(y0))) -> c3(MARK(first(0, from(y0)))) A__FROM(first(nil, from(y0))) -> c3(MARK(first(nil, from(y0)))) A__FROM(first(y0, cons(y1, y2))) -> c3(MARK(first(y0, cons(y1, y2)))) A__FROM(first(0, cons(y0, y1))) -> c3(MARK(first(0, cons(y0, y1)))) A__FROM(first(nil, cons(y0, y1))) -> c3(MARK(first(nil, cons(y0, y1)))) A__FROM(first(y0, cons(0, y1))) -> c3(MARK(first(y0, cons(0, y1)))) A__FROM(first(y0, cons(nil, y1))) -> c3(MARK(first(y0, cons(nil, y1)))) MARK(from(s(z0))) -> c7(A__FROM(s(mark(z0))), MARK(s(z0))) MARK(from(cons(z0, z1))) -> c7(A__FROM(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(from(0), x1)) -> c5(A__FIRST(a__from(0), mark(x1))) MARK(first(from(nil), x1)) -> c5(A__FIRST(a__from(nil), mark(x1))) MARK(first(x0, from(0))) -> c6(A__FIRST(mark(x0), a__from(0))) MARK(first(x0, from(nil))) -> c6(A__FIRST(mark(x0), a__from(nil))) MARK(from(first(x0, x1))) -> c7(A__FROM(first(mark(x0), mark(x1))), MARK(first(x0, x1))) MARK(from(first(x0, first(z0, z1)))) -> c7(A__FROM(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) MARK(from(first(x0, from(z0)))) -> c7(A__FROM(a__first(mark(x0), a__from(mark(z0)))), MARK(first(x0, from(z0)))) MARK(from(first(x0, 0))) -> c7(A__FROM(a__first(mark(x0), 0)), MARK(first(x0, 0))) MARK(from(first(x0, nil))) -> c7(A__FROM(a__first(mark(x0), nil)), MARK(first(x0, nil))) MARK(from(first(x0, s(z0)))) -> c7(A__FROM(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) MARK(from(first(x0, cons(z0, z1)))) -> c7(A__FROM(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) MARK(from(first(first(z0, z1), x1))) -> c7(A__FROM(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) MARK(from(first(from(z0), x1))) -> c7(A__FROM(a__first(a__from(mark(z0)), mark(x1))), MARK(first(from(z0), x1))) MARK(from(first(0, x1))) -> c7(A__FROM(a__first(0, mark(x1))), MARK(first(0, x1))) MARK(from(first(nil, x1))) -> c7(A__FROM(a__first(nil, mark(x1))), MARK(first(nil, x1))) MARK(from(first(s(z0), x1))) -> c7(A__FROM(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) MARK(from(first(cons(z0, z1), x1))) -> c7(A__FROM(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) MARK(from(from(x0))) -> c7(A__FROM(cons(mark(mark(x0)), from(s(mark(x0))))), MARK(from(x0))) MARK(from(from(x0))) -> c7(A__FROM(from(mark(x0))), MARK(from(x0))) MARK(from(from(first(z0, z1)))) -> c7(A__FROM(a__from(a__first(mark(z0), mark(z1)))), MARK(from(first(z0, z1)))) MARK(from(from(from(z0)))) -> c7(A__FROM(a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(from(from(s(z0)))) -> c7(A__FROM(a__from(s(mark(z0)))), MARK(from(s(z0)))) MARK(from(from(cons(z0, z1)))) -> c7(A__FROM(a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(from(from(0))) -> c7(A__FROM(a__from(0))) MARK(from(from(nil))) -> c7(A__FROM(a__from(nil))) MARK(s(s(y0))) -> c10(MARK(s(y0))) MARK(s(cons(y0, y1))) -> c10(MARK(cons(y0, y1))) MARK(s(first(y0, 0))) -> c10(MARK(first(y0, 0))) MARK(s(first(y0, nil))) -> c10(MARK(first(y0, nil))) MARK(s(first(y0, s(y1)))) -> c10(MARK(first(y0, s(y1)))) MARK(s(first(cons(y0, y1), y2))) -> c10(MARK(first(cons(y0, y1), y2))) MARK(s(first(0, y0))) -> c10(MARK(first(0, y0))) MARK(s(first(nil, y0))) -> c10(MARK(first(nil, y0))) MARK(s(first(y0, first(y1, first(y2, y3))))) -> c10(MARK(first(y0, first(y1, first(y2, y3))))) MARK(s(first(y0, first(y1, from(y2))))) -> c10(MARK(first(y0, first(y1, from(y2))))) MARK(s(first(y0, first(y1, 0)))) -> c10(MARK(first(y0, first(y1, 0)))) MARK(s(first(y0, first(y1, nil)))) -> c10(MARK(first(y0, first(y1, nil)))) MARK(s(first(y0, first(y1, s(y2))))) -> c10(MARK(first(y0, first(y1, s(y2))))) MARK(s(first(y0, first(y1, cons(y2, y3))))) -> c10(MARK(first(y0, first(y1, cons(y2, y3))))) MARK(s(first(y0, first(first(y1, y2), y3)))) -> c10(MARK(first(y0, first(first(y1, y2), y3)))) MARK(s(first(y0, first(from(y1), y2)))) -> c10(MARK(first(y0, first(from(y1), y2)))) MARK(s(first(y0, first(0, y1)))) -> c10(MARK(first(y0, first(0, y1)))) MARK(s(first(y0, first(nil, y1)))) -> c10(MARK(first(y0, first(nil, y1)))) MARK(s(first(y0, first(s(y1), y2)))) -> c10(MARK(first(y0, first(s(y1), y2)))) MARK(s(first(y0, first(cons(y1, y2), y3)))) -> c10(MARK(first(y0, first(cons(y1, y2), y3)))) MARK(s(first(first(y0, y1), first(y2, y3)))) -> c10(MARK(first(first(y0, y1), first(y2, y3)))) MARK(s(first(from(y0), first(y1, y2)))) -> c10(MARK(first(from(y0), first(y1, y2)))) MARK(s(first(s(y0), first(y1, y2)))) -> c10(MARK(first(s(y0), first(y1, y2)))) MARK(s(first(y0, first(y1, y2)))) -> c10(MARK(first(y0, first(y1, y2)))) MARK(s(first(cons(y0, y1), first(y2, y3)))) -> c10(MARK(first(cons(y0, y1), first(y2, y3)))) MARK(s(first(y0, from(y1)))) -> c10(MARK(first(y0, from(y1)))) MARK(s(first(y0, from(first(y1, y2))))) -> c10(MARK(first(y0, from(first(y1, y2))))) MARK(s(first(y0, from(from(y1))))) -> c10(MARK(first(y0, from(from(y1))))) MARK(s(first(y0, from(0)))) -> c10(MARK(first(y0, from(0)))) MARK(s(first(y0, from(nil)))) -> c10(MARK(first(y0, from(nil)))) MARK(s(first(y0, from(s(y1))))) -> c10(MARK(first(y0, from(s(y1))))) MARK(s(first(y0, from(cons(y1, y2))))) -> c10(MARK(first(y0, from(cons(y1, y2))))) MARK(s(first(first(y0, y1), from(y2)))) -> c10(MARK(first(first(y0, y1), from(y2)))) MARK(s(first(from(y0), from(y1)))) -> c10(MARK(first(from(y0), from(y1)))) MARK(s(first(s(y0), from(y1)))) -> c10(MARK(first(s(y0), from(y1)))) MARK(s(first(cons(y0, y1), from(y2)))) -> c10(MARK(first(cons(y0, y1), from(y2)))) MARK(s(first(y0, cons(first(y1, y2), y3)))) -> c10(MARK(first(y0, cons(first(y1, y2), y3)))) MARK(s(first(y0, cons(from(y1), y2)))) -> c10(MARK(first(y0, cons(from(y1), y2)))) MARK(s(first(y0, cons(s(y1), y2)))) -> c10(MARK(first(y0, cons(s(y1), y2)))) MARK(s(first(y0, cons(cons(y1, y2), y3)))) -> c10(MARK(first(y0, cons(cons(y1, y2), y3)))) MARK(s(first(first(y0, y1), cons(y2, y3)))) -> c10(MARK(first(first(y0, y1), cons(y2, y3)))) MARK(s(first(from(y0), cons(y1, y2)))) -> c10(MARK(first(from(y0), cons(y1, y2)))) MARK(s(first(s(y0), cons(y1, y2)))) -> c10(MARK(first(s(y0), cons(y1, y2)))) MARK(s(first(cons(y0, y1), cons(y2, y3)))) -> c10(MARK(first(cons(y0, y1), cons(y2, y3)))) MARK(s(first(first(y0, first(y1, y2)), y3))) -> c10(MARK(first(first(y0, first(y1, y2)), y3))) MARK(s(first(first(y0, from(y1)), y2))) -> c10(MARK(first(first(y0, from(y1)), y2))) MARK(s(first(first(y0, 0), y1))) -> c10(MARK(first(first(y0, 0), y1))) MARK(s(first(first(y0, nil), y1))) -> c10(MARK(first(first(y0, nil), y1))) MARK(s(first(first(y0, s(y1)), y2))) -> c10(MARK(first(first(y0, s(y1)), y2))) MARK(s(first(first(y0, cons(y1, y2)), y3))) -> c10(MARK(first(first(y0, cons(y1, y2)), y3))) MARK(s(first(first(first(y0, y1), y2), y3))) -> c10(MARK(first(first(first(y0, y1), y2), y3))) MARK(s(first(first(from(y0), y1), y2))) -> c10(MARK(first(first(from(y0), y1), y2))) MARK(s(first(first(0, y0), y1))) -> c10(MARK(first(first(0, y0), y1))) MARK(s(first(first(nil, y0), y1))) -> c10(MARK(first(first(nil, y0), y1))) MARK(s(first(first(s(y0), y1), y2))) -> c10(MARK(first(first(s(y0), y1), y2))) MARK(s(first(first(cons(y0, y1), y2), y3))) -> c10(MARK(first(first(cons(y0, y1), y2), y3))) MARK(s(first(first(y0, y1), 0))) -> c10(MARK(first(first(y0, y1), 0))) MARK(s(first(first(y0, y1), nil))) -> c10(MARK(first(first(y0, y1), nil))) MARK(s(first(first(y0, y1), s(y2)))) -> c10(MARK(first(first(y0, y1), s(y2)))) MARK(s(first(first(y0, y1), y2))) -> c10(MARK(first(first(y0, y1), y2))) MARK(s(first(from(first(y0, y1)), y2))) -> c10(MARK(first(from(first(y0, y1)), y2))) MARK(s(first(from(from(y0)), y1))) -> c10(MARK(first(from(from(y0)), y1))) MARK(s(first(from(s(y0)), y1))) -> c10(MARK(first(from(s(y0)), y1))) MARK(s(first(from(cons(y0, y1)), y2))) -> c10(MARK(first(from(cons(y0, y1)), y2))) MARK(s(first(from(y0), y1))) -> c10(MARK(first(from(y0), y1))) MARK(s(first(from(y0), 0))) -> c10(MARK(first(from(y0), 0))) MARK(s(first(from(y0), nil))) -> c10(MARK(first(from(y0), nil))) MARK(s(first(from(y0), s(y1)))) -> c10(MARK(first(from(y0), s(y1)))) MARK(s(first(s(first(y0, y1)), y2))) -> c10(MARK(first(s(first(y0, y1)), y2))) MARK(s(first(s(from(y0)), y1))) -> c10(MARK(first(s(from(y0)), y1))) MARK(s(first(s(0), y0))) -> c10(MARK(first(s(0), y0))) MARK(s(first(s(nil), y0))) -> c10(MARK(first(s(nil), y0))) MARK(s(first(s(s(y0)), y1))) -> c10(MARK(first(s(s(y0)), y1))) MARK(s(first(s(cons(y0, y1)), y2))) -> c10(MARK(first(s(cons(y0, y1)), y2))) MARK(s(first(s(y0), y1))) -> c10(MARK(first(s(y0), y1))) MARK(s(first(s(y0), 0))) -> c10(MARK(first(s(y0), 0))) MARK(s(first(s(y0), nil))) -> c10(MARK(first(s(y0), nil))) MARK(s(first(s(y0), s(y1)))) -> c10(MARK(first(s(y0), s(y1)))) MARK(s(first(0, first(y0, y1)))) -> c10(MARK(first(0, first(y0, y1)))) MARK(s(first(nil, first(y0, y1)))) -> c10(MARK(first(nil, first(y0, y1)))) MARK(s(first(0, from(y0)))) -> c10(MARK(first(0, from(y0)))) MARK(s(first(nil, from(y0)))) -> c10(MARK(first(nil, from(y0)))) MARK(s(first(y0, cons(y1, y2)))) -> c10(MARK(first(y0, cons(y1, y2)))) MARK(s(first(0, cons(y0, y1)))) -> c10(MARK(first(0, cons(y0, y1)))) MARK(s(first(nil, cons(y0, y1)))) -> c10(MARK(first(nil, cons(y0, y1)))) MARK(s(first(from(0), y0))) -> c10(MARK(first(from(0), y0))) MARK(s(first(from(nil), y0))) -> c10(MARK(first(from(nil), y0))) MARK(s(first(y0, cons(0, y1)))) -> c10(MARK(first(y0, cons(0, y1)))) MARK(s(first(y0, cons(nil, y1)))) -> c10(MARK(first(y0, cons(nil, y1)))) MARK(s(from(s(y0)))) -> c10(MARK(from(s(y0)))) MARK(s(from(cons(y0, y1)))) -> c10(MARK(from(cons(y0, y1)))) MARK(s(from(first(y0, y1)))) -> c10(MARK(from(first(y0, y1)))) MARK(s(from(first(y0, first(y1, y2))))) -> c10(MARK(from(first(y0, first(y1, y2))))) MARK(s(from(first(y0, from(y1))))) -> c10(MARK(from(first(y0, from(y1))))) MARK(s(from(first(y0, 0)))) -> c10(MARK(from(first(y0, 0)))) MARK(s(from(first(y0, nil)))) -> c10(MARK(from(first(y0, nil)))) MARK(s(from(first(y0, s(y1))))) -> c10(MARK(from(first(y0, s(y1))))) MARK(s(from(first(y0, cons(y1, y2))))) -> c10(MARK(from(first(y0, cons(y1, y2))))) MARK(s(from(first(first(y0, y1), y2)))) -> c10(MARK(from(first(first(y0, y1), y2)))) MARK(s(from(first(from(y0), y1)))) -> c10(MARK(from(first(from(y0), y1)))) MARK(s(from(first(0, y0)))) -> c10(MARK(from(first(0, y0)))) MARK(s(from(first(nil, y0)))) -> c10(MARK(from(first(nil, y0)))) MARK(s(from(first(s(y0), y1)))) -> c10(MARK(from(first(s(y0), y1)))) MARK(s(from(first(cons(y0, y1), y2)))) -> c10(MARK(from(first(cons(y0, y1), y2)))) MARK(s(from(from(y0)))) -> c10(MARK(from(from(y0)))) MARK(s(from(from(first(y0, y1))))) -> c10(MARK(from(from(first(y0, y1))))) MARK(s(from(from(from(y0))))) -> c10(MARK(from(from(from(y0))))) MARK(s(from(from(s(y0))))) -> c10(MARK(from(from(s(y0))))) MARK(s(from(from(cons(y0, y1))))) -> c10(MARK(from(from(cons(y0, y1))))) MARK(s(from(from(0)))) -> c10(MARK(from(from(0)))) MARK(s(from(from(nil)))) -> c10(MARK(from(from(nil)))) MARK(first(s(0), x1)) -> c5(A__FIRST(s(0), mark(x1))) MARK(first(s(nil), x1)) -> c5(A__FIRST(s(nil), mark(x1))) MARK(cons(cons(y0, y1), z1)) -> c11(MARK(cons(y0, y1))) MARK(cons(first(y0, 0), z1)) -> c11(MARK(first(y0, 0))) MARK(cons(first(y0, nil), z1)) -> c11(MARK(first(y0, nil))) MARK(cons(first(y0, s(y1)), z1)) -> c11(MARK(first(y0, s(y1)))) MARK(cons(first(cons(y0, y1), y2), z1)) -> c11(MARK(first(cons(y0, y1), y2))) MARK(cons(first(0, y0), z1)) -> c11(MARK(first(0, y0))) MARK(cons(first(nil, y0), z1)) -> c11(MARK(first(nil, y0))) MARK(cons(first(y0, first(y1, first(y2, y3))), z1)) -> c11(MARK(first(y0, first(y1, first(y2, y3))))) MARK(cons(first(y0, first(y1, from(y2))), z1)) -> c11(MARK(first(y0, first(y1, from(y2))))) MARK(cons(first(y0, first(y1, 0)), z1)) -> c11(MARK(first(y0, first(y1, 0)))) MARK(cons(first(y0, first(y1, nil)), z1)) -> c11(MARK(first(y0, first(y1, nil)))) MARK(cons(first(y0, first(y1, s(y2))), z1)) -> c11(MARK(first(y0, first(y1, s(y2))))) MARK(cons(first(y0, first(y1, cons(y2, y3))), z1)) -> c11(MARK(first(y0, first(y1, cons(y2, y3))))) MARK(cons(first(y0, first(first(y1, y2), y3)), z1)) -> c11(MARK(first(y0, first(first(y1, y2), y3)))) MARK(cons(first(y0, first(from(y1), y2)), z1)) -> c11(MARK(first(y0, first(from(y1), y2)))) MARK(cons(first(y0, first(0, y1)), z1)) -> c11(MARK(first(y0, first(0, y1)))) MARK(cons(first(y0, first(nil, y1)), z1)) -> c11(MARK(first(y0, first(nil, y1)))) MARK(cons(first(y0, first(s(y1), y2)), z1)) -> c11(MARK(first(y0, first(s(y1), y2)))) MARK(cons(first(y0, first(cons(y1, y2), y3)), z1)) -> c11(MARK(first(y0, first(cons(y1, y2), y3)))) MARK(cons(first(first(y0, y1), first(y2, y3)), z1)) -> c11(MARK(first(first(y0, y1), first(y2, y3)))) MARK(cons(first(from(y0), first(y1, y2)), z1)) -> c11(MARK(first(from(y0), first(y1, y2)))) MARK(cons(first(s(y0), first(y1, y2)), z1)) -> c11(MARK(first(s(y0), first(y1, y2)))) MARK(cons(first(y0, first(y1, y2)), z1)) -> c11(MARK(first(y0, first(y1, y2)))) MARK(cons(first(cons(y0, y1), first(y2, y3)), z1)) -> c11(MARK(first(cons(y0, y1), first(y2, y3)))) MARK(cons(first(y0, from(y1)), z1)) -> c11(MARK(first(y0, from(y1)))) MARK(cons(first(y0, from(first(y1, y2))), z1)) -> c11(MARK(first(y0, from(first(y1, y2))))) MARK(cons(first(y0, from(from(y1))), z1)) -> c11(MARK(first(y0, from(from(y1))))) MARK(cons(first(y0, from(0)), z1)) -> c11(MARK(first(y0, from(0)))) MARK(cons(first(y0, from(nil)), z1)) -> c11(MARK(first(y0, from(nil)))) MARK(cons(first(y0, from(s(y1))), z1)) -> c11(MARK(first(y0, from(s(y1))))) MARK(cons(first(y0, from(cons(y1, y2))), z1)) -> c11(MARK(first(y0, from(cons(y1, y2))))) MARK(cons(first(first(y0, y1), from(y2)), z1)) -> c11(MARK(first(first(y0, y1), from(y2)))) MARK(cons(first(from(y0), from(y1)), z1)) -> c11(MARK(first(from(y0), from(y1)))) MARK(cons(first(s(y0), from(y1)), z1)) -> c11(MARK(first(s(y0), from(y1)))) MARK(cons(first(cons(y0, y1), from(y2)), z1)) -> c11(MARK(first(cons(y0, y1), from(y2)))) MARK(cons(first(y0, cons(first(y1, y2), y3)), z1)) -> c11(MARK(first(y0, cons(first(y1, y2), y3)))) MARK(cons(first(y0, cons(from(y1), y2)), z1)) -> c11(MARK(first(y0, cons(from(y1), y2)))) MARK(cons(first(y0, cons(s(y1), y2)), z1)) -> c11(MARK(first(y0, cons(s(y1), y2)))) MARK(cons(first(y0, cons(cons(y1, y2), y3)), z1)) -> c11(MARK(first(y0, cons(cons(y1, y2), y3)))) MARK(cons(first(first(y0, y1), cons(y2, y3)), z1)) -> c11(MARK(first(first(y0, y1), cons(y2, y3)))) MARK(cons(first(from(y0), cons(y1, y2)), z1)) -> c11(MARK(first(from(y0), cons(y1, y2)))) MARK(cons(first(s(y0), cons(y1, y2)), z1)) -> c11(MARK(first(s(y0), cons(y1, y2)))) MARK(cons(first(cons(y0, y1), cons(y2, y3)), z1)) -> c11(MARK(first(cons(y0, y1), cons(y2, y3)))) MARK(cons(first(first(y0, first(y1, y2)), y3), z1)) -> c11(MARK(first(first(y0, first(y1, y2)), y3))) MARK(cons(first(first(y0, from(y1)), y2), z1)) -> c11(MARK(first(first(y0, from(y1)), y2))) MARK(cons(first(first(y0, 0), y1), z1)) -> c11(MARK(first(first(y0, 0), y1))) MARK(cons(first(first(y0, nil), y1), z1)) -> c11(MARK(first(first(y0, nil), y1))) MARK(cons(first(first(y0, s(y1)), y2), z1)) -> c11(MARK(first(first(y0, s(y1)), y2))) MARK(cons(first(first(y0, cons(y1, y2)), y3), z1)) -> c11(MARK(first(first(y0, cons(y1, y2)), y3))) MARK(cons(first(first(first(y0, y1), y2), y3), z1)) -> c11(MARK(first(first(first(y0, y1), y2), y3))) MARK(cons(first(first(from(y0), y1), y2), z1)) -> c11(MARK(first(first(from(y0), y1), y2))) MARK(cons(first(first(0, y0), y1), z1)) -> c11(MARK(first(first(0, y0), y1))) MARK(cons(first(first(nil, y0), y1), z1)) -> c11(MARK(first(first(nil, y0), y1))) MARK(cons(first(first(s(y0), y1), y2), z1)) -> c11(MARK(first(first(s(y0), y1), y2))) MARK(cons(first(first(cons(y0, y1), y2), y3), z1)) -> c11(MARK(first(first(cons(y0, y1), y2), y3))) MARK(cons(first(first(y0, y1), 0), z1)) -> c11(MARK(first(first(y0, y1), 0))) MARK(cons(first(first(y0, y1), nil), z1)) -> c11(MARK(first(first(y0, y1), nil))) MARK(cons(first(first(y0, y1), s(y2)), z1)) -> c11(MARK(first(first(y0, y1), s(y2)))) MARK(cons(first(first(y0, y1), y2), z1)) -> c11(MARK(first(first(y0, y1), y2))) MARK(cons(first(from(first(y0, y1)), y2), z1)) -> c11(MARK(first(from(first(y0, y1)), y2))) MARK(cons(first(from(from(y0)), y1), z1)) -> c11(MARK(first(from(from(y0)), y1))) MARK(cons(first(from(s(y0)), y1), z1)) -> c11(MARK(first(from(s(y0)), y1))) MARK(cons(first(from(cons(y0, y1)), y2), z1)) -> c11(MARK(first(from(cons(y0, y1)), y2))) MARK(cons(first(from(y0), y1), z1)) -> c11(MARK(first(from(y0), y1))) MARK(cons(first(from(y0), 0), z1)) -> c11(MARK(first(from(y0), 0))) MARK(cons(first(from(y0), nil), z1)) -> c11(MARK(first(from(y0), nil))) MARK(cons(first(from(y0), s(y1)), z1)) -> c11(MARK(first(from(y0), s(y1)))) MARK(cons(first(s(first(y0, y1)), y2), z1)) -> c11(MARK(first(s(first(y0, y1)), y2))) MARK(cons(first(s(from(y0)), y1), z1)) -> c11(MARK(first(s(from(y0)), y1))) MARK(cons(first(s(s(y0)), y1), z1)) -> c11(MARK(first(s(s(y0)), y1))) MARK(cons(first(s(cons(y0, y1)), y2), z1)) -> c11(MARK(first(s(cons(y0, y1)), y2))) MARK(cons(first(s(y0), y1), z1)) -> c11(MARK(first(s(y0), y1))) MARK(cons(first(s(y0), 0), z1)) -> c11(MARK(first(s(y0), 0))) MARK(cons(first(s(y0), nil), z1)) -> c11(MARK(first(s(y0), nil))) MARK(cons(first(s(y0), s(y1)), z1)) -> c11(MARK(first(s(y0), s(y1)))) MARK(cons(first(0, first(y0, y1)), z1)) -> c11(MARK(first(0, first(y0, y1)))) MARK(cons(first(nil, first(y0, y1)), z1)) -> c11(MARK(first(nil, first(y0, y1)))) MARK(cons(first(0, from(y0)), z1)) -> c11(MARK(first(0, from(y0)))) MARK(cons(first(nil, from(y0)), z1)) -> c11(MARK(first(nil, from(y0)))) MARK(cons(first(y0, cons(y1, y2)), z1)) -> c11(MARK(first(y0, cons(y1, y2)))) MARK(cons(first(0, cons(y0, y1)), z1)) -> c11(MARK(first(0, cons(y0, y1)))) MARK(cons(first(nil, cons(y0, y1)), z1)) -> c11(MARK(first(nil, cons(y0, y1)))) MARK(cons(first(from(0), y0), z1)) -> c11(MARK(first(from(0), y0))) MARK(cons(first(from(nil), y0), z1)) -> c11(MARK(first(from(nil), y0))) MARK(cons(first(s(0), y0), z1)) -> c11(MARK(first(s(0), y0))) MARK(cons(first(s(nil), y0), z1)) -> c11(MARK(first(s(nil), y0))) MARK(cons(first(y0, cons(0, y1)), z1)) -> c11(MARK(first(y0, cons(0, y1)))) MARK(cons(first(y0, cons(nil, y1)), z1)) -> c11(MARK(first(y0, cons(nil, y1)))) MARK(cons(from(s(y0)), z1)) -> c11(MARK(from(s(y0)))) MARK(cons(from(cons(y0, y1)), z1)) -> c11(MARK(from(cons(y0, y1)))) MARK(cons(from(first(y0, y1)), z1)) -> c11(MARK(from(first(y0, y1)))) MARK(cons(from(first(y0, first(y1, y2))), z1)) -> c11(MARK(from(first(y0, first(y1, y2))))) MARK(cons(from(first(y0, from(y1))), z1)) -> c11(MARK(from(first(y0, from(y1))))) MARK(cons(from(first(y0, 0)), z1)) -> c11(MARK(from(first(y0, 0)))) MARK(cons(from(first(y0, nil)), z1)) -> c11(MARK(from(first(y0, nil)))) MARK(cons(from(first(y0, s(y1))), z1)) -> c11(MARK(from(first(y0, s(y1))))) MARK(cons(from(first(y0, cons(y1, y2))), z1)) -> c11(MARK(from(first(y0, cons(y1, y2))))) MARK(cons(from(first(first(y0, y1), y2)), z1)) -> c11(MARK(from(first(first(y0, y1), y2)))) MARK(cons(from(first(from(y0), y1)), z1)) -> c11(MARK(from(first(from(y0), y1)))) MARK(cons(from(first(0, y0)), z1)) -> c11(MARK(from(first(0, y0)))) MARK(cons(from(first(nil, y0)), z1)) -> c11(MARK(from(first(nil, y0)))) MARK(cons(from(first(s(y0), y1)), z1)) -> c11(MARK(from(first(s(y0), y1)))) MARK(cons(from(first(cons(y0, y1), y2)), z1)) -> c11(MARK(from(first(cons(y0, y1), y2)))) MARK(cons(from(from(y0)), z1)) -> c11(MARK(from(from(y0)))) MARK(cons(from(from(first(y0, y1))), z1)) -> c11(MARK(from(from(first(y0, y1))))) MARK(cons(from(from(from(y0))), z1)) -> c11(MARK(from(from(from(y0))))) MARK(cons(from(from(s(y0))), z1)) -> c11(MARK(from(from(s(y0))))) MARK(cons(from(from(cons(y0, y1))), z1)) -> c11(MARK(from(from(cons(y0, y1))))) MARK(cons(from(from(0)), z1)) -> c11(MARK(from(from(0)))) MARK(cons(from(from(nil)), z1)) -> c11(MARK(from(from(nil)))) MARK(cons(s(s(y0)), z1)) -> c11(MARK(s(s(y0)))) MARK(cons(s(cons(y0, y1)), z1)) -> c11(MARK(s(cons(y0, y1)))) MARK(cons(s(first(y0, 0)), z1)) -> c11(MARK(s(first(y0, 0)))) MARK(cons(s(first(y0, nil)), z1)) -> c11(MARK(s(first(y0, nil)))) MARK(cons(s(first(y0, s(y1))), z1)) -> c11(MARK(s(first(y0, s(y1))))) MARK(cons(s(first(cons(y0, y1), y2)), z1)) -> c11(MARK(s(first(cons(y0, y1), y2)))) MARK(cons(s(first(0, y0)), z1)) -> c11(MARK(s(first(0, y0)))) MARK(cons(s(first(nil, y0)), z1)) -> c11(MARK(s(first(nil, y0)))) MARK(cons(s(first(y0, first(y1, first(y2, y3)))), z1)) -> c11(MARK(s(first(y0, first(y1, first(y2, y3)))))) MARK(cons(s(first(y0, first(y1, from(y2)))), z1)) -> c11(MARK(s(first(y0, first(y1, from(y2)))))) MARK(cons(s(first(y0, first(y1, 0))), z1)) -> c11(MARK(s(first(y0, first(y1, 0))))) MARK(cons(s(first(y0, first(y1, nil))), z1)) -> c11(MARK(s(first(y0, first(y1, nil))))) MARK(cons(s(first(y0, first(y1, s(y2)))), z1)) -> c11(MARK(s(first(y0, first(y1, s(y2)))))) MARK(cons(s(first(y0, first(y1, cons(y2, y3)))), z1)) -> c11(MARK(s(first(y0, first(y1, cons(y2, y3)))))) MARK(cons(s(first(y0, first(first(y1, y2), y3))), z1)) -> c11(MARK(s(first(y0, first(first(y1, y2), y3))))) MARK(cons(s(first(y0, first(from(y1), y2))), z1)) -> c11(MARK(s(first(y0, first(from(y1), y2))))) MARK(cons(s(first(y0, first(0, y1))), z1)) -> c11(MARK(s(first(y0, first(0, y1))))) MARK(cons(s(first(y0, first(nil, y1))), z1)) -> c11(MARK(s(first(y0, first(nil, y1))))) MARK(cons(s(first(y0, first(s(y1), y2))), z1)) -> c11(MARK(s(first(y0, first(s(y1), y2))))) MARK(cons(s(first(y0, first(cons(y1, y2), y3))), z1)) -> c11(MARK(s(first(y0, first(cons(y1, y2), y3))))) MARK(cons(s(first(first(y0, y1), first(y2, y3))), z1)) -> c11(MARK(s(first(first(y0, y1), first(y2, y3))))) MARK(cons(s(first(from(y0), first(y1, y2))), z1)) -> c11(MARK(s(first(from(y0), first(y1, y2))))) MARK(cons(s(first(s(y0), first(y1, y2))), z1)) -> c11(MARK(s(first(s(y0), first(y1, y2))))) MARK(cons(s(first(y0, first(y1, y2))), z1)) -> c11(MARK(s(first(y0, first(y1, y2))))) MARK(cons(s(first(cons(y0, y1), first(y2, y3))), z1)) -> c11(MARK(s(first(cons(y0, y1), first(y2, y3))))) MARK(cons(s(first(y0, from(y1))), z1)) -> c11(MARK(s(first(y0, from(y1))))) MARK(cons(s(first(y0, from(first(y1, y2)))), z1)) -> c11(MARK(s(first(y0, from(first(y1, y2)))))) MARK(cons(s(first(y0, from(from(y1)))), z1)) -> c11(MARK(s(first(y0, from(from(y1)))))) MARK(cons(s(first(y0, from(0))), z1)) -> c11(MARK(s(first(y0, from(0))))) MARK(cons(s(first(y0, from(nil))), z1)) -> c11(MARK(s(first(y0, from(nil))))) MARK(cons(s(first(y0, from(s(y1)))), z1)) -> c11(MARK(s(first(y0, from(s(y1)))))) MARK(cons(s(first(y0, from(cons(y1, y2)))), z1)) -> c11(MARK(s(first(y0, from(cons(y1, y2)))))) MARK(cons(s(first(first(y0, y1), from(y2))), z1)) -> c11(MARK(s(first(first(y0, y1), from(y2))))) MARK(cons(s(first(from(y0), from(y1))), z1)) -> c11(MARK(s(first(from(y0), from(y1))))) MARK(cons(s(first(s(y0), from(y1))), z1)) -> c11(MARK(s(first(s(y0), from(y1))))) MARK(cons(s(first(cons(y0, y1), from(y2))), z1)) -> c11(MARK(s(first(cons(y0, y1), from(y2))))) MARK(cons(s(first(y0, cons(first(y1, y2), y3))), z1)) -> c11(MARK(s(first(y0, cons(first(y1, y2), y3))))) MARK(cons(s(first(y0, cons(from(y1), y2))), z1)) -> c11(MARK(s(first(y0, cons(from(y1), y2))))) MARK(cons(s(first(y0, cons(s(y1), y2))), z1)) -> c11(MARK(s(first(y0, cons(s(y1), y2))))) MARK(cons(s(first(y0, cons(cons(y1, y2), y3))), z1)) -> c11(MARK(s(first(y0, cons(cons(y1, y2), y3))))) MARK(cons(s(first(first(y0, y1), cons(y2, y3))), z1)) -> c11(MARK(s(first(first(y0, y1), cons(y2, y3))))) MARK(cons(s(first(from(y0), cons(y1, y2))), z1)) -> c11(MARK(s(first(from(y0), cons(y1, y2))))) MARK(cons(s(first(s(y0), cons(y1, y2))), z1)) -> c11(MARK(s(first(s(y0), cons(y1, y2))))) MARK(cons(s(first(cons(y0, y1), cons(y2, y3))), z1)) -> c11(MARK(s(first(cons(y0, y1), cons(y2, y3))))) MARK(cons(s(first(first(y0, first(y1, y2)), y3)), z1)) -> c11(MARK(s(first(first(y0, first(y1, y2)), y3)))) MARK(cons(s(first(first(y0, from(y1)), y2)), z1)) -> c11(MARK(s(first(first(y0, from(y1)), y2)))) MARK(cons(s(first(first(y0, 0), y1)), z1)) -> c11(MARK(s(first(first(y0, 0), y1)))) MARK(cons(s(first(first(y0, nil), y1)), z1)) -> c11(MARK(s(first(first(y0, nil), y1)))) MARK(cons(s(first(first(y0, s(y1)), y2)), z1)) -> c11(MARK(s(first(first(y0, s(y1)), y2)))) MARK(cons(s(first(first(y0, cons(y1, y2)), y3)), z1)) -> c11(MARK(s(first(first(y0, cons(y1, y2)), y3)))) MARK(cons(s(first(first(first(y0, y1), y2), y3)), z1)) -> c11(MARK(s(first(first(first(y0, y1), y2), y3)))) MARK(cons(s(first(first(from(y0), y1), y2)), z1)) -> c11(MARK(s(first(first(from(y0), y1), y2)))) MARK(cons(s(first(first(0, y0), y1)), z1)) -> c11(MARK(s(first(first(0, y0), y1)))) MARK(cons(s(first(first(nil, y0), y1)), z1)) -> c11(MARK(s(first(first(nil, y0), y1)))) MARK(cons(s(first(first(s(y0), y1), y2)), z1)) -> c11(MARK(s(first(first(s(y0), y1), y2)))) MARK(cons(s(first(first(cons(y0, y1), y2), y3)), z1)) -> c11(MARK(s(first(first(cons(y0, y1), y2), y3)))) MARK(cons(s(first(first(y0, y1), 0)), z1)) -> c11(MARK(s(first(first(y0, y1), 0)))) MARK(cons(s(first(first(y0, y1), nil)), z1)) -> c11(MARK(s(first(first(y0, y1), nil)))) MARK(cons(s(first(first(y0, y1), s(y2))), z1)) -> c11(MARK(s(first(first(y0, y1), s(y2))))) MARK(cons(s(first(first(y0, y1), y2)), z1)) -> c11(MARK(s(first(first(y0, y1), y2)))) MARK(cons(s(first(from(first(y0, y1)), y2)), z1)) -> c11(MARK(s(first(from(first(y0, y1)), y2)))) MARK(cons(s(first(from(from(y0)), y1)), z1)) -> c11(MARK(s(first(from(from(y0)), y1)))) MARK(cons(s(first(from(s(y0)), y1)), z1)) -> c11(MARK(s(first(from(s(y0)), y1)))) MARK(cons(s(first(from(cons(y0, y1)), y2)), z1)) -> c11(MARK(s(first(from(cons(y0, y1)), y2)))) MARK(cons(s(first(from(y0), y1)), z1)) -> c11(MARK(s(first(from(y0), y1)))) MARK(cons(s(first(from(y0), 0)), z1)) -> c11(MARK(s(first(from(y0), 0)))) MARK(cons(s(first(from(y0), nil)), z1)) -> c11(MARK(s(first(from(y0), nil)))) MARK(cons(s(first(from(y0), s(y1))), z1)) -> c11(MARK(s(first(from(y0), s(y1))))) MARK(cons(s(first(s(first(y0, y1)), y2)), z1)) -> c11(MARK(s(first(s(first(y0, y1)), y2)))) MARK(cons(s(first(s(from(y0)), y1)), z1)) -> c11(MARK(s(first(s(from(y0)), y1)))) MARK(cons(s(first(s(0), y0)), z1)) -> c11(MARK(s(first(s(0), y0)))) MARK(cons(s(first(s(nil), y0)), z1)) -> c11(MARK(s(first(s(nil), y0)))) MARK(cons(s(first(s(s(y0)), y1)), z1)) -> c11(MARK(s(first(s(s(y0)), y1)))) MARK(cons(s(first(s(cons(y0, y1)), y2)), z1)) -> c11(MARK(s(first(s(cons(y0, y1)), y2)))) MARK(cons(s(first(s(y0), y1)), z1)) -> c11(MARK(s(first(s(y0), y1)))) MARK(cons(s(first(s(y0), 0)), z1)) -> c11(MARK(s(first(s(y0), 0)))) MARK(cons(s(first(s(y0), nil)), z1)) -> c11(MARK(s(first(s(y0), nil)))) MARK(cons(s(first(s(y0), s(y1))), z1)) -> c11(MARK(s(first(s(y0), s(y1))))) MARK(cons(s(first(0, first(y0, y1))), z1)) -> c11(MARK(s(first(0, first(y0, y1))))) MARK(cons(s(first(nil, first(y0, y1))), z1)) -> c11(MARK(s(first(nil, first(y0, y1))))) MARK(cons(s(first(0, from(y0))), z1)) -> c11(MARK(s(first(0, from(y0))))) MARK(cons(s(first(nil, from(y0))), z1)) -> c11(MARK(s(first(nil, from(y0))))) MARK(cons(s(first(y0, cons(y1, y2))), z1)) -> c11(MARK(s(first(y0, cons(y1, y2))))) MARK(cons(s(first(0, cons(y0, y1))), z1)) -> c11(MARK(s(first(0, cons(y0, y1))))) MARK(cons(s(first(nil, cons(y0, y1))), z1)) -> c11(MARK(s(first(nil, cons(y0, y1))))) MARK(cons(s(first(from(0), y0)), z1)) -> c11(MARK(s(first(from(0), y0)))) MARK(cons(s(first(from(nil), y0)), z1)) -> c11(MARK(s(first(from(nil), y0)))) MARK(cons(s(first(y0, cons(0, y1))), z1)) -> c11(MARK(s(first(y0, cons(0, y1))))) MARK(cons(s(first(y0, cons(nil, y1))), z1)) -> c11(MARK(s(first(y0, cons(nil, y1))))) MARK(cons(s(from(s(y0))), z1)) -> c11(MARK(s(from(s(y0))))) MARK(cons(s(from(cons(y0, y1))), z1)) -> c11(MARK(s(from(cons(y0, y1))))) MARK(cons(s(from(first(y0, y1))), z1)) -> c11(MARK(s(from(first(y0, y1))))) MARK(cons(s(from(first(y0, first(y1, y2)))), z1)) -> c11(MARK(s(from(first(y0, first(y1, y2)))))) MARK(cons(s(from(first(y0, from(y1)))), z1)) -> c11(MARK(s(from(first(y0, from(y1)))))) MARK(cons(s(from(first(y0, 0))), z1)) -> c11(MARK(s(from(first(y0, 0))))) MARK(cons(s(from(first(y0, nil))), z1)) -> c11(MARK(s(from(first(y0, nil))))) MARK(cons(s(from(first(y0, s(y1)))), z1)) -> c11(MARK(s(from(first(y0, s(y1)))))) MARK(cons(s(from(first(y0, cons(y1, y2)))), z1)) -> c11(MARK(s(from(first(y0, cons(y1, y2)))))) MARK(cons(s(from(first(first(y0, y1), y2))), z1)) -> c11(MARK(s(from(first(first(y0, y1), y2))))) MARK(cons(s(from(first(from(y0), y1))), z1)) -> c11(MARK(s(from(first(from(y0), y1))))) MARK(cons(s(from(first(0, y0))), z1)) -> c11(MARK(s(from(first(0, y0))))) MARK(cons(s(from(first(nil, y0))), z1)) -> c11(MARK(s(from(first(nil, y0))))) MARK(cons(s(from(first(s(y0), y1))), z1)) -> c11(MARK(s(from(first(s(y0), y1))))) MARK(cons(s(from(first(cons(y0, y1), y2))), z1)) -> c11(MARK(s(from(first(cons(y0, y1), y2))))) MARK(cons(s(from(from(y0))), z1)) -> c11(MARK(s(from(from(y0))))) MARK(cons(s(from(from(first(y0, y1)))), z1)) -> c11(MARK(s(from(from(first(y0, y1)))))) MARK(cons(s(from(from(from(y0)))), z1)) -> c11(MARK(s(from(from(from(y0)))))) MARK(cons(s(from(from(s(y0)))), z1)) -> c11(MARK(s(from(from(s(y0)))))) MARK(cons(s(from(from(cons(y0, y1)))), z1)) -> c11(MARK(s(from(from(cons(y0, y1)))))) MARK(cons(s(from(from(0))), z1)) -> c11(MARK(s(from(from(0))))) MARK(cons(s(from(from(nil))), z1)) -> c11(MARK(s(from(from(nil))))) S tuples: MARK(first(x0, 0)) -> c5(MARK(x0)) MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(x0, from(x1))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), from(x1))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(first(x0, cons(from(z0), x2))) -> c5(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(s(z0), x2))) -> c5(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(first(first(z0, z1), cons(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(first(z0, z1))) MARK(first(from(z0), cons(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(first(s(z0), cons(x1, x2))) -> c5(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(s(z0))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(first(x0, first(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(first(x0, first(z0, z1)))) MARK(first(first(x0, from(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(first(x0, from(z0)))) MARK(first(first(x0, 0), x2)) -> c5(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(first(x0, 0))) MARK(first(first(x0, nil), x2)) -> c5(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(first(x0, nil))) MARK(first(first(x0, s(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(first(x0, s(z0)))) MARK(first(first(x0, cons(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(first(x0, cons(z0, z1)))) MARK(first(first(first(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(first(first(z0, z1), x1))) MARK(first(first(from(z0), x1), x2)) -> c5(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(first(from(z0), x1))) MARK(first(first(0, x1), x2)) -> c5(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(first(0, x1))) MARK(first(first(nil, x1), x2)) -> c5(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(first(nil, x1))) MARK(first(first(s(z0), x1), x2)) -> c5(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(first(s(z0), x1))) MARK(first(first(cons(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(first(cons(z0, z1), x1))) MARK(first(first(x0, x1), 0)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), nil)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), s(z0))) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), x2)) -> c5(MARK(first(x0, x1))) MARK(first(from(first(z0, z1)), x1)) -> c5(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(from(first(z0, z1)))) MARK(first(from(from(z0)), x1)) -> c5(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(first(from(s(z0)), x1)) -> c5(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(from(s(z0)))) MARK(first(from(cons(z0, z1)), x1)) -> c5(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(first(from(x0), x1)) -> c5(MARK(from(x0))) MARK(first(from(x0), 0)) -> c5(MARK(from(x0))) MARK(first(from(x0), nil)) -> c5(MARK(from(x0))) MARK(first(from(x0), s(z0))) -> c5(MARK(from(x0))) MARK(first(s(first(z0, z1)), x1)) -> c5(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(s(first(z0, z1)))) MARK(first(s(from(z0)), x1)) -> c5(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(s(from(z0)))) MARK(first(s(s(z0)), x1)) -> c5(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(s(s(z0)))) MARK(first(s(cons(z0, z1)), x1)) -> c5(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(s(cons(z0, z1)))) MARK(first(s(x0), x1)) -> c5(MARK(s(x0))) MARK(first(s(x0), 0)) -> c5(MARK(s(x0))) MARK(first(s(x0), nil)) -> c5(MARK(s(x0))) MARK(first(s(x0), s(z0))) -> c5(MARK(s(x0))) MARK(first(x0, first(x1, first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(first(x1, first(z0, z1)))) MARK(first(x0, first(x1, from(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(first(x1, from(z0)))) MARK(first(x0, first(x1, 0))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(first(x1, 0))) MARK(first(x0, first(x1, nil))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(first(x1, nil))) MARK(first(x0, first(x1, s(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(first(x1, s(z0)))) MARK(first(x0, first(x1, cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(first(x1, cons(z0, z1)))) MARK(first(x0, first(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(first(first(z0, z1), x2))) MARK(first(x0, first(from(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(first(from(z0), x2))) MARK(first(x0, first(0, x2))) -> c6(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(first(0, x2))) MARK(first(x0, first(nil, x2))) -> c6(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(first(nil, x2))) MARK(first(x0, first(s(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(first(s(z0), x2))) MARK(first(x0, first(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(first(cons(z0, z1), x2))) MARK(first(first(z0, z1), first(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(from(z0), first(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(s(z0), first(x1, x2))) -> c6(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(x0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(nil, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(cons(z0, z1), first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(x0, from(x1))) -> c6(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(first(x0, from(first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(from(first(z0, z1)))) MARK(first(x0, from(from(z0)))) -> c6(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(first(x0, from(s(z0)))) -> c6(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(from(s(z0)))) MARK(first(x0, from(cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(first(first(z0, z1), from(x1))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(first(from(z0), from(x1))) -> c6(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(s(z0), from(x1))) -> c6(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(x0, from(x1))) -> c6(MARK(from(x1))) MARK(first(0, from(x1))) -> c6(MARK(from(x1))) MARK(first(nil, from(x1))) -> c6(MARK(from(x1))) MARK(first(cons(z0, z1), from(x1))) -> c6(MARK(from(x1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(cons(first(z0, z1), x2))) MARK(first(x0, cons(from(z0), x2))) -> c6(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(first(x0, cons(s(z0), x2))) -> c6(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(cons(s(z0), x2))) MARK(first(x0, cons(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(first(first(z0, z1), cons(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(from(z0), cons(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(s(z0), cons(x1, x2))) -> c6(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(x0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(nil, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(first(x0, first(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(first(first(x0, from(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, 0), x2)) -> c6(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(x2)) MARK(first(first(x0, nil), x2)) -> c6(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(x2)) MARK(first(first(x0, s(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, cons(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(first(first(first(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(from(z0), x1), x2)) -> c6(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(0, x1), x2)) -> c6(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(nil, x1), x2)) -> c6(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(s(z0), x1), x2)) -> c6(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(cons(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(x0, x1), s(z0))) -> c6(MARK(s(z0))) MARK(first(first(x0, x1), x2)) -> c6(MARK(x2)) MARK(first(from(first(z0, z1)), x1)) -> c6(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(first(from(from(z0)), x1)) -> c6(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(first(from(0), x1)) -> c6(A__FIRST(a__from(0), mark(x1)), MARK(x1)) MARK(first(from(nil), x1)) -> c6(A__FIRST(a__from(nil), mark(x1)), MARK(x1)) MARK(first(from(s(z0)), x1)) -> c6(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(x1)) MARK(first(from(cons(z0, z1)), x1)) -> c6(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(first(from(x0), s(z0))) -> c6(MARK(s(z0))) MARK(first(from(x0), x1)) -> c6(MARK(x1)) MARK(first(s(first(z0, z1)), x1)) -> c6(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(first(s(from(z0)), x1)) -> c6(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(first(s(0), x1)) -> c6(A__FIRST(s(0), mark(x1)), MARK(x1)) MARK(first(s(nil), x1)) -> c6(A__FIRST(s(nil), mark(x1)), MARK(x1)) MARK(first(s(s(z0)), x1)) -> c6(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(x1)) MARK(first(s(cons(z0, z1)), x1)) -> c6(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(first(s(x0), s(z0))) -> c6(MARK(s(z0))) A__FIRST(s(z0), cons(from(y0), z2)) -> c1(MARK(from(y0))) A__FIRST(s(z0), cons(s(y0), z2)) -> c1(MARK(s(y0))) A__FIRST(s(z0), cons(cons(y0, y1), z2)) -> c1(MARK(cons(y0, y1))) A__FIRST(s(z0), cons(first(y0, 0), z2)) -> c1(MARK(first(y0, 0))) A__FIRST(s(z0), cons(first(y0, nil), z2)) -> c1(MARK(first(y0, nil))) A__FIRST(s(z0), cons(first(y0, s(y1)), z2)) -> c1(MARK(first(y0, s(y1)))) A__FIRST(s(z0), cons(first(cons(y0, y1), y2), z2)) -> c1(MARK(first(cons(y0, y1), y2))) A__FIRST(s(z0), cons(first(0, y0), z2)) -> c1(MARK(first(0, y0))) A__FIRST(s(z0), cons(first(nil, y0), z2)) -> c1(MARK(first(nil, y0))) A__FIRST(s(z0), cons(first(y0, first(y1, first(y2, y3))), z2)) -> c1(MARK(first(y0, first(y1, first(y2, y3))))) A__FIRST(s(z0), cons(first(y0, first(y1, from(y2))), z2)) -> c1(MARK(first(y0, first(y1, from(y2))))) A__FIRST(s(z0), cons(first(y0, first(y1, 0)), z2)) -> c1(MARK(first(y0, first(y1, 0)))) A__FIRST(s(z0), cons(first(y0, first(y1, nil)), z2)) -> c1(MARK(first(y0, first(y1, nil)))) A__FIRST(s(z0), cons(first(y0, first(y1, s(y2))), z2)) -> c1(MARK(first(y0, first(y1, s(y2))))) A__FIRST(s(z0), cons(first(y0, first(y1, cons(y2, y3))), z2)) -> c1(MARK(first(y0, first(y1, cons(y2, y3))))) A__FIRST(s(z0), cons(first(y0, first(first(y1, y2), y3)), z2)) -> c1(MARK(first(y0, first(first(y1, y2), y3)))) A__FIRST(s(z0), cons(first(y0, first(from(y1), y2)), z2)) -> c1(MARK(first(y0, first(from(y1), y2)))) A__FIRST(s(z0), cons(first(y0, first(0, y1)), z2)) -> c1(MARK(first(y0, first(0, y1)))) A__FIRST(s(z0), cons(first(y0, first(nil, y1)), z2)) -> c1(MARK(first(y0, first(nil, y1)))) A__FIRST(s(z0), cons(first(y0, first(s(y1), y2)), z2)) -> c1(MARK(first(y0, first(s(y1), y2)))) A__FIRST(s(z0), cons(first(y0, first(cons(y1, y2), y3)), z2)) -> c1(MARK(first(y0, first(cons(y1, y2), y3)))) A__FIRST(s(z0), cons(first(first(y0, y1), first(y2, y3)), z2)) -> c1(MARK(first(first(y0, y1), first(y2, y3)))) A__FIRST(s(z0), cons(first(from(y0), first(y1, y2)), z2)) -> c1(MARK(first(from(y0), first(y1, y2)))) A__FIRST(s(z0), cons(first(s(y0), first(y1, y2)), z2)) -> c1(MARK(first(s(y0), first(y1, y2)))) A__FIRST(s(z0), cons(first(y0, first(y1, y2)), z2)) -> c1(MARK(first(y0, first(y1, y2)))) A__FIRST(s(z0), cons(first(cons(y0, y1), first(y2, y3)), z2)) -> c1(MARK(first(cons(y0, y1), first(y2, y3)))) A__FIRST(s(z0), cons(first(y0, from(y1)), z2)) -> c1(MARK(first(y0, from(y1)))) A__FIRST(s(z0), cons(first(y0, from(first(y1, y2))), z2)) -> c1(MARK(first(y0, from(first(y1, y2))))) A__FIRST(s(z0), cons(first(y0, from(from(y1))), z2)) -> c1(MARK(first(y0, from(from(y1))))) A__FIRST(s(z0), cons(first(y0, from(0)), z2)) -> c1(MARK(first(y0, from(0)))) A__FIRST(s(z0), cons(first(y0, from(nil)), z2)) -> c1(MARK(first(y0, from(nil)))) A__FIRST(s(z0), cons(first(y0, from(s(y1))), z2)) -> c1(MARK(first(y0, from(s(y1))))) A__FIRST(s(z0), cons(first(y0, from(cons(y1, y2))), z2)) -> c1(MARK(first(y0, from(cons(y1, y2))))) A__FIRST(s(z0), cons(first(first(y0, y1), from(y2)), z2)) -> c1(MARK(first(first(y0, y1), from(y2)))) A__FIRST(s(z0), cons(first(from(y0), from(y1)), z2)) -> c1(MARK(first(from(y0), from(y1)))) A__FIRST(s(z0), cons(first(s(y0), from(y1)), z2)) -> c1(MARK(first(s(y0), from(y1)))) A__FIRST(s(z0), cons(first(cons(y0, y1), from(y2)), z2)) -> c1(MARK(first(cons(y0, y1), from(y2)))) A__FIRST(s(z0), cons(first(y0, cons(first(y1, y2), y3)), z2)) -> c1(MARK(first(y0, cons(first(y1, y2), y3)))) A__FIRST(s(z0), cons(first(y0, cons(from(y1), y2)), z2)) -> c1(MARK(first(y0, cons(from(y1), y2)))) A__FIRST(s(z0), cons(first(y0, cons(0, y1)), z2)) -> c1(MARK(first(y0, cons(0, y1)))) A__FIRST(s(z0), cons(first(y0, cons(nil, y1)), z2)) -> c1(MARK(first(y0, cons(nil, y1)))) A__FIRST(s(z0), cons(first(y0, cons(s(y1), y2)), z2)) -> c1(MARK(first(y0, cons(s(y1), y2)))) A__FIRST(s(z0), cons(first(y0, cons(cons(y1, y2), y3)), z2)) -> c1(MARK(first(y0, cons(cons(y1, y2), y3)))) A__FIRST(s(z0), cons(first(first(y0, y1), cons(y2, y3)), z2)) -> c1(MARK(first(first(y0, y1), cons(y2, y3)))) A__FIRST(s(z0), cons(first(from(y0), cons(y1, y2)), z2)) -> c1(MARK(first(from(y0), cons(y1, y2)))) A__FIRST(s(z0), cons(first(s(y0), cons(y1, y2)), z2)) -> c1(MARK(first(s(y0), cons(y1, y2)))) A__FIRST(s(z0), cons(first(cons(y0, y1), cons(y2, y3)), z2)) -> c1(MARK(first(cons(y0, y1), cons(y2, y3)))) A__FIRST(s(z0), cons(first(first(y0, first(y1, y2)), y3), z2)) -> c1(MARK(first(first(y0, first(y1, y2)), y3))) A__FIRST(s(z0), cons(first(first(y0, from(y1)), y2), z2)) -> c1(MARK(first(first(y0, from(y1)), y2))) A__FIRST(s(z0), cons(first(first(y0, 0), y1), z2)) -> c1(MARK(first(first(y0, 0), y1))) A__FIRST(s(z0), cons(first(first(y0, nil), y1), z2)) -> c1(MARK(first(first(y0, nil), y1))) A__FIRST(s(z0), cons(first(first(y0, s(y1)), y2), z2)) -> c1(MARK(first(first(y0, s(y1)), y2))) A__FIRST(s(z0), cons(first(first(y0, cons(y1, y2)), y3), z2)) -> c1(MARK(first(first(y0, cons(y1, y2)), y3))) A__FIRST(s(z0), cons(first(first(first(y0, y1), y2), y3), z2)) -> c1(MARK(first(first(first(y0, y1), y2), y3))) A__FIRST(s(z0), cons(first(first(from(y0), y1), y2), z2)) -> c1(MARK(first(first(from(y0), y1), y2))) A__FIRST(s(z0), cons(first(first(0, y0), y1), z2)) -> c1(MARK(first(first(0, y0), y1))) A__FIRST(s(z0), cons(first(first(nil, y0), y1), z2)) -> c1(MARK(first(first(nil, y0), y1))) A__FIRST(s(z0), cons(first(first(s(y0), y1), y2), z2)) -> c1(MARK(first(first(s(y0), y1), y2))) A__FIRST(s(z0), cons(first(first(cons(y0, y1), y2), y3), z2)) -> c1(MARK(first(first(cons(y0, y1), y2), y3))) A__FIRST(s(z0), cons(first(first(y0, y1), 0), z2)) -> c1(MARK(first(first(y0, y1), 0))) A__FIRST(s(z0), cons(first(first(y0, y1), nil), z2)) -> c1(MARK(first(first(y0, y1), nil))) A__FIRST(s(z0), cons(first(first(y0, y1), s(y2)), z2)) -> c1(MARK(first(first(y0, y1), s(y2)))) A__FIRST(s(z0), cons(first(first(y0, y1), y2), z2)) -> c1(MARK(first(first(y0, y1), y2))) A__FIRST(s(z0), cons(first(from(first(y0, y1)), y2), z2)) -> c1(MARK(first(from(first(y0, y1)), y2))) A__FIRST(s(z0), cons(first(from(from(y0)), y1), z2)) -> c1(MARK(first(from(from(y0)), y1))) A__FIRST(s(z0), cons(first(from(0), y0), z2)) -> c1(MARK(first(from(0), y0))) A__FIRST(s(z0), cons(first(from(nil), y0), z2)) -> c1(MARK(first(from(nil), y0))) A__FIRST(s(z0), cons(first(from(s(y0)), y1), z2)) -> c1(MARK(first(from(s(y0)), y1))) A__FIRST(s(z0), cons(first(from(cons(y0, y1)), y2), z2)) -> c1(MARK(first(from(cons(y0, y1)), y2))) A__FIRST(s(z0), cons(first(from(y0), y1), z2)) -> c1(MARK(first(from(y0), y1))) A__FIRST(s(z0), cons(first(from(y0), 0), z2)) -> c1(MARK(first(from(y0), 0))) A__FIRST(s(z0), cons(first(from(y0), nil), z2)) -> c1(MARK(first(from(y0), nil))) A__FIRST(s(z0), cons(first(from(y0), s(y1)), z2)) -> c1(MARK(first(from(y0), s(y1)))) A__FIRST(s(z0), cons(first(s(first(y0, y1)), y2), z2)) -> c1(MARK(first(s(first(y0, y1)), y2))) A__FIRST(s(z0), cons(first(s(from(y0)), y1), z2)) -> c1(MARK(first(s(from(y0)), y1))) A__FIRST(s(z0), cons(first(s(0), y0), z2)) -> c1(MARK(first(s(0), y0))) A__FIRST(s(z0), cons(first(s(nil), y0), z2)) -> c1(MARK(first(s(nil), y0))) A__FIRST(s(z0), cons(first(s(s(y0)), y1), z2)) -> c1(MARK(first(s(s(y0)), y1))) A__FIRST(s(z0), cons(first(s(cons(y0, y1)), y2), z2)) -> c1(MARK(first(s(cons(y0, y1)), y2))) A__FIRST(s(z0), cons(first(s(y0), y1), z2)) -> c1(MARK(first(s(y0), y1))) A__FIRST(s(z0), cons(first(s(y0), 0), z2)) -> c1(MARK(first(s(y0), 0))) A__FIRST(s(z0), cons(first(s(y0), nil), z2)) -> c1(MARK(first(s(y0), nil))) A__FIRST(s(z0), cons(first(s(y0), s(y1)), z2)) -> c1(MARK(first(s(y0), s(y1)))) A__FIRST(s(z0), cons(first(0, first(y0, y1)), z2)) -> c1(MARK(first(0, first(y0, y1)))) A__FIRST(s(z0), cons(first(nil, first(y0, y1)), z2)) -> c1(MARK(first(nil, first(y0, y1)))) A__FIRST(s(z0), cons(first(0, from(y0)), z2)) -> c1(MARK(first(0, from(y0)))) A__FIRST(s(z0), cons(first(nil, from(y0)), z2)) -> c1(MARK(first(nil, from(y0)))) A__FIRST(s(z0), cons(first(y0, cons(y1, y2)), z2)) -> c1(MARK(first(y0, cons(y1, y2)))) A__FIRST(s(z0), cons(first(0, cons(y0, y1)), z2)) -> c1(MARK(first(0, cons(y0, y1)))) A__FIRST(s(z0), cons(first(nil, cons(y0, y1)), z2)) -> c1(MARK(first(nil, cons(y0, y1)))) MARK(first(x0, cons(0, x2))) -> c5(MARK(x0)) MARK(first(x0, cons(nil, x2))) -> c5(MARK(x0)) A__FROM(from(y0)) -> c3(MARK(from(y0))) A__FROM(s(y0)) -> c3(MARK(s(y0))) A__FROM(cons(y0, y1)) -> c3(MARK(cons(y0, y1))) A__FROM(first(y0, 0)) -> c3(MARK(first(y0, 0))) A__FROM(first(y0, nil)) -> c3(MARK(first(y0, nil))) A__FROM(first(y0, s(y1))) -> c3(MARK(first(y0, s(y1)))) A__FROM(first(cons(y0, y1), y2)) -> c3(MARK(first(cons(y0, y1), y2))) A__FROM(first(0, y0)) -> c3(MARK(first(0, y0))) A__FROM(first(nil, y0)) -> c3(MARK(first(nil, y0))) A__FROM(first(y0, first(y1, first(y2, y3)))) -> c3(MARK(first(y0, first(y1, first(y2, y3))))) A__FROM(first(y0, first(y1, from(y2)))) -> c3(MARK(first(y0, first(y1, from(y2))))) A__FROM(first(y0, first(y1, 0))) -> c3(MARK(first(y0, first(y1, 0)))) A__FROM(first(y0, first(y1, nil))) -> c3(MARK(first(y0, first(y1, nil)))) A__FROM(first(y0, first(y1, s(y2)))) -> c3(MARK(first(y0, first(y1, s(y2))))) A__FROM(first(y0, first(y1, cons(y2, y3)))) -> c3(MARK(first(y0, first(y1, cons(y2, y3))))) A__FROM(first(y0, first(first(y1, y2), y3))) -> c3(MARK(first(y0, first(first(y1, y2), y3)))) A__FROM(first(y0, first(from(y1), y2))) -> c3(MARK(first(y0, first(from(y1), y2)))) A__FROM(first(y0, first(0, y1))) -> c3(MARK(first(y0, first(0, y1)))) A__FROM(first(y0, first(nil, y1))) -> c3(MARK(first(y0, first(nil, y1)))) A__FROM(first(y0, first(s(y1), y2))) -> c3(MARK(first(y0, first(s(y1), y2)))) A__FROM(first(y0, first(cons(y1, y2), y3))) -> c3(MARK(first(y0, first(cons(y1, y2), y3)))) A__FROM(first(first(y0, y1), first(y2, y3))) -> c3(MARK(first(first(y0, y1), first(y2, y3)))) A__FROM(first(from(y0), first(y1, y2))) -> c3(MARK(first(from(y0), first(y1, y2)))) A__FROM(first(s(y0), first(y1, y2))) -> c3(MARK(first(s(y0), first(y1, y2)))) A__FROM(first(y0, first(y1, y2))) -> c3(MARK(first(y0, first(y1, y2)))) A__FROM(first(cons(y0, y1), first(y2, y3))) -> c3(MARK(first(cons(y0, y1), first(y2, y3)))) A__FROM(first(y0, from(y1))) -> c3(MARK(first(y0, from(y1)))) A__FROM(first(y0, from(first(y1, y2)))) -> c3(MARK(first(y0, from(first(y1, y2))))) A__FROM(first(y0, from(from(y1)))) -> c3(MARK(first(y0, from(from(y1))))) A__FROM(first(y0, from(0))) -> c3(MARK(first(y0, from(0)))) A__FROM(first(y0, from(nil))) -> c3(MARK(first(y0, from(nil)))) A__FROM(first(y0, from(s(y1)))) -> c3(MARK(first(y0, from(s(y1))))) A__FROM(first(y0, from(cons(y1, y2)))) -> c3(MARK(first(y0, from(cons(y1, y2))))) A__FROM(first(first(y0, y1), from(y2))) -> c3(MARK(first(first(y0, y1), from(y2)))) A__FROM(first(from(y0), from(y1))) -> c3(MARK(first(from(y0), from(y1)))) A__FROM(first(s(y0), from(y1))) -> c3(MARK(first(s(y0), from(y1)))) A__FROM(first(cons(y0, y1), from(y2))) -> c3(MARK(first(cons(y0, y1), from(y2)))) A__FROM(first(y0, cons(first(y1, y2), y3))) -> c3(MARK(first(y0, cons(first(y1, y2), y3)))) A__FROM(first(y0, cons(from(y1), y2))) -> c3(MARK(first(y0, cons(from(y1), y2)))) A__FROM(first(y0, cons(s(y1), y2))) -> c3(MARK(first(y0, cons(s(y1), y2)))) A__FROM(first(y0, cons(cons(y1, y2), y3))) -> c3(MARK(first(y0, cons(cons(y1, y2), y3)))) A__FROM(first(first(y0, y1), cons(y2, y3))) -> c3(MARK(first(first(y0, y1), cons(y2, y3)))) A__FROM(first(from(y0), cons(y1, y2))) -> c3(MARK(first(from(y0), cons(y1, y2)))) A__FROM(first(s(y0), cons(y1, y2))) -> c3(MARK(first(s(y0), cons(y1, y2)))) A__FROM(first(cons(y0, y1), cons(y2, y3))) -> c3(MARK(first(cons(y0, y1), cons(y2, y3)))) A__FROM(first(first(y0, first(y1, y2)), y3)) -> c3(MARK(first(first(y0, first(y1, y2)), y3))) A__FROM(first(first(y0, from(y1)), y2)) -> c3(MARK(first(first(y0, from(y1)), y2))) A__FROM(first(first(y0, 0), y1)) -> c3(MARK(first(first(y0, 0), y1))) A__FROM(first(first(y0, nil), y1)) -> c3(MARK(first(first(y0, nil), y1))) A__FROM(first(first(y0, s(y1)), y2)) -> c3(MARK(first(first(y0, s(y1)), y2))) A__FROM(first(first(y0, cons(y1, y2)), y3)) -> c3(MARK(first(first(y0, cons(y1, y2)), y3))) A__FROM(first(first(first(y0, y1), y2), y3)) -> c3(MARK(first(first(first(y0, y1), y2), y3))) A__FROM(first(first(from(y0), y1), y2)) -> c3(MARK(first(first(from(y0), y1), y2))) A__FROM(first(first(0, y0), y1)) -> c3(MARK(first(first(0, y0), y1))) A__FROM(first(first(nil, y0), y1)) -> c3(MARK(first(first(nil, y0), y1))) A__FROM(first(first(s(y0), y1), y2)) -> c3(MARK(first(first(s(y0), y1), y2))) A__FROM(first(first(cons(y0, y1), y2), y3)) -> c3(MARK(first(first(cons(y0, y1), y2), y3))) A__FROM(first(first(y0, y1), 0)) -> c3(MARK(first(first(y0, y1), 0))) A__FROM(first(first(y0, y1), nil)) -> c3(MARK(first(first(y0, y1), nil))) A__FROM(first(first(y0, y1), s(y2))) -> c3(MARK(first(first(y0, y1), s(y2)))) A__FROM(first(first(y0, y1), y2)) -> c3(MARK(first(first(y0, y1), y2))) A__FROM(first(from(first(y0, y1)), y2)) -> c3(MARK(first(from(first(y0, y1)), y2))) A__FROM(first(from(from(y0)), y1)) -> c3(MARK(first(from(from(y0)), y1))) A__FROM(first(from(0), y0)) -> c3(MARK(first(from(0), y0))) A__FROM(first(from(nil), y0)) -> c3(MARK(first(from(nil), y0))) A__FROM(first(from(s(y0)), y1)) -> c3(MARK(first(from(s(y0)), y1))) A__FROM(first(from(cons(y0, y1)), y2)) -> c3(MARK(first(from(cons(y0, y1)), y2))) A__FROM(first(from(y0), y1)) -> c3(MARK(first(from(y0), y1))) A__FROM(first(from(y0), 0)) -> c3(MARK(first(from(y0), 0))) A__FROM(first(from(y0), nil)) -> c3(MARK(first(from(y0), nil))) A__FROM(first(from(y0), s(y1))) -> c3(MARK(first(from(y0), s(y1)))) A__FROM(first(s(first(y0, y1)), y2)) -> c3(MARK(first(s(first(y0, y1)), y2))) A__FROM(first(s(from(y0)), y1)) -> c3(MARK(first(s(from(y0)), y1))) A__FROM(first(s(0), y0)) -> c3(MARK(first(s(0), y0))) A__FROM(first(s(nil), y0)) -> c3(MARK(first(s(nil), y0))) A__FROM(first(s(s(y0)), y1)) -> c3(MARK(first(s(s(y0)), y1))) A__FROM(first(s(cons(y0, y1)), y2)) -> c3(MARK(first(s(cons(y0, y1)), y2))) A__FROM(first(s(y0), y1)) -> c3(MARK(first(s(y0), y1))) A__FROM(first(s(y0), 0)) -> c3(MARK(first(s(y0), 0))) A__FROM(first(s(y0), nil)) -> c3(MARK(first(s(y0), nil))) A__FROM(first(s(y0), s(y1))) -> c3(MARK(first(s(y0), s(y1)))) A__FROM(first(0, first(y0, y1))) -> c3(MARK(first(0, first(y0, y1)))) A__FROM(first(nil, first(y0, y1))) -> c3(MARK(first(nil, first(y0, y1)))) A__FROM(first(0, from(y0))) -> c3(MARK(first(0, from(y0)))) A__FROM(first(nil, from(y0))) -> c3(MARK(first(nil, from(y0)))) A__FROM(first(y0, cons(y1, y2))) -> c3(MARK(first(y0, cons(y1, y2)))) A__FROM(first(0, cons(y0, y1))) -> c3(MARK(first(0, cons(y0, y1)))) A__FROM(first(nil, cons(y0, y1))) -> c3(MARK(first(nil, cons(y0, y1)))) A__FROM(first(y0, cons(0, y1))) -> c3(MARK(first(y0, cons(0, y1)))) A__FROM(first(y0, cons(nil, y1))) -> c3(MARK(first(y0, cons(nil, y1)))) MARK(from(s(z0))) -> c7(A__FROM(s(mark(z0))), MARK(s(z0))) MARK(from(cons(z0, z1))) -> c7(A__FROM(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(from(0), x1)) -> c5(A__FIRST(a__from(0), mark(x1))) MARK(first(from(nil), x1)) -> c5(A__FIRST(a__from(nil), mark(x1))) MARK(first(x0, from(0))) -> c6(A__FIRST(mark(x0), a__from(0))) MARK(first(x0, from(nil))) -> c6(A__FIRST(mark(x0), a__from(nil))) MARK(from(first(x0, x1))) -> c7(A__FROM(first(mark(x0), mark(x1))), MARK(first(x0, x1))) MARK(from(first(x0, first(z0, z1)))) -> c7(A__FROM(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) MARK(from(first(x0, from(z0)))) -> c7(A__FROM(a__first(mark(x0), a__from(mark(z0)))), MARK(first(x0, from(z0)))) MARK(from(first(x0, 0))) -> c7(A__FROM(a__first(mark(x0), 0)), MARK(first(x0, 0))) MARK(from(first(x0, nil))) -> c7(A__FROM(a__first(mark(x0), nil)), MARK(first(x0, nil))) MARK(from(first(x0, s(z0)))) -> c7(A__FROM(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) MARK(from(first(x0, cons(z0, z1)))) -> c7(A__FROM(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) MARK(from(first(first(z0, z1), x1))) -> c7(A__FROM(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) MARK(from(first(from(z0), x1))) -> c7(A__FROM(a__first(a__from(mark(z0)), mark(x1))), MARK(first(from(z0), x1))) MARK(from(first(0, x1))) -> c7(A__FROM(a__first(0, mark(x1))), MARK(first(0, x1))) MARK(from(first(nil, x1))) -> c7(A__FROM(a__first(nil, mark(x1))), MARK(first(nil, x1))) MARK(from(first(s(z0), x1))) -> c7(A__FROM(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) MARK(from(first(cons(z0, z1), x1))) -> c7(A__FROM(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) MARK(from(from(x0))) -> c7(A__FROM(cons(mark(mark(x0)), from(s(mark(x0))))), MARK(from(x0))) MARK(from(from(x0))) -> c7(A__FROM(from(mark(x0))), MARK(from(x0))) MARK(from(from(first(z0, z1)))) -> c7(A__FROM(a__from(a__first(mark(z0), mark(z1)))), MARK(from(first(z0, z1)))) MARK(from(from(from(z0)))) -> c7(A__FROM(a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(from(from(s(z0)))) -> c7(A__FROM(a__from(s(mark(z0)))), MARK(from(s(z0)))) MARK(from(from(cons(z0, z1)))) -> c7(A__FROM(a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(from(from(0))) -> c7(A__FROM(a__from(0))) MARK(from(from(nil))) -> c7(A__FROM(a__from(nil))) MARK(s(s(y0))) -> c10(MARK(s(y0))) MARK(s(cons(y0, y1))) -> c10(MARK(cons(y0, y1))) MARK(s(first(y0, 0))) -> c10(MARK(first(y0, 0))) MARK(s(first(y0, nil))) -> c10(MARK(first(y0, nil))) MARK(s(first(y0, s(y1)))) -> c10(MARK(first(y0, s(y1)))) MARK(s(first(cons(y0, y1), y2))) -> c10(MARK(first(cons(y0, y1), y2))) MARK(s(first(0, y0))) -> c10(MARK(first(0, y0))) MARK(s(first(nil, y0))) -> c10(MARK(first(nil, y0))) MARK(s(first(y0, first(y1, first(y2, y3))))) -> c10(MARK(first(y0, first(y1, first(y2, y3))))) MARK(s(first(y0, first(y1, from(y2))))) -> c10(MARK(first(y0, first(y1, from(y2))))) MARK(s(first(y0, first(y1, 0)))) -> c10(MARK(first(y0, first(y1, 0)))) MARK(s(first(y0, first(y1, nil)))) -> c10(MARK(first(y0, first(y1, nil)))) MARK(s(first(y0, first(y1, s(y2))))) -> c10(MARK(first(y0, first(y1, s(y2))))) MARK(s(first(y0, first(y1, cons(y2, y3))))) -> c10(MARK(first(y0, first(y1, cons(y2, y3))))) MARK(s(first(y0, first(first(y1, y2), y3)))) -> c10(MARK(first(y0, first(first(y1, y2), y3)))) MARK(s(first(y0, first(from(y1), y2)))) -> c10(MARK(first(y0, first(from(y1), y2)))) MARK(s(first(y0, first(0, y1)))) -> c10(MARK(first(y0, first(0, y1)))) MARK(s(first(y0, first(nil, y1)))) -> c10(MARK(first(y0, first(nil, y1)))) MARK(s(first(y0, first(s(y1), y2)))) -> c10(MARK(first(y0, first(s(y1), y2)))) MARK(s(first(y0, first(cons(y1, y2), y3)))) -> c10(MARK(first(y0, first(cons(y1, y2), y3)))) MARK(s(first(first(y0, y1), first(y2, y3)))) -> c10(MARK(first(first(y0, y1), first(y2, y3)))) MARK(s(first(from(y0), first(y1, y2)))) -> c10(MARK(first(from(y0), first(y1, y2)))) MARK(s(first(s(y0), first(y1, y2)))) -> c10(MARK(first(s(y0), first(y1, y2)))) MARK(s(first(y0, first(y1, y2)))) -> c10(MARK(first(y0, first(y1, y2)))) MARK(s(first(cons(y0, y1), first(y2, y3)))) -> c10(MARK(first(cons(y0, y1), first(y2, y3)))) MARK(s(first(y0, from(y1)))) -> c10(MARK(first(y0, from(y1)))) MARK(s(first(y0, from(first(y1, y2))))) -> c10(MARK(first(y0, from(first(y1, y2))))) MARK(s(first(y0, from(from(y1))))) -> c10(MARK(first(y0, from(from(y1))))) MARK(s(first(y0, from(0)))) -> c10(MARK(first(y0, from(0)))) MARK(s(first(y0, from(nil)))) -> c10(MARK(first(y0, from(nil)))) MARK(s(first(y0, from(s(y1))))) -> c10(MARK(first(y0, from(s(y1))))) MARK(s(first(y0, from(cons(y1, y2))))) -> c10(MARK(first(y0, from(cons(y1, y2))))) MARK(s(first(first(y0, y1), from(y2)))) -> c10(MARK(first(first(y0, y1), from(y2)))) MARK(s(first(from(y0), from(y1)))) -> c10(MARK(first(from(y0), from(y1)))) MARK(s(first(s(y0), from(y1)))) -> c10(MARK(first(s(y0), from(y1)))) MARK(s(first(cons(y0, y1), from(y2)))) -> c10(MARK(first(cons(y0, y1), from(y2)))) MARK(s(first(y0, cons(first(y1, y2), y3)))) -> c10(MARK(first(y0, cons(first(y1, y2), y3)))) MARK(s(first(y0, cons(from(y1), y2)))) -> c10(MARK(first(y0, cons(from(y1), y2)))) MARK(s(first(y0, cons(s(y1), y2)))) -> c10(MARK(first(y0, cons(s(y1), y2)))) MARK(s(first(y0, cons(cons(y1, y2), y3)))) -> c10(MARK(first(y0, cons(cons(y1, y2), y3)))) MARK(s(first(first(y0, y1), cons(y2, y3)))) -> c10(MARK(first(first(y0, y1), cons(y2, y3)))) MARK(s(first(from(y0), cons(y1, y2)))) -> c10(MARK(first(from(y0), cons(y1, y2)))) MARK(s(first(s(y0), cons(y1, y2)))) -> c10(MARK(first(s(y0), cons(y1, y2)))) MARK(s(first(cons(y0, y1), cons(y2, y3)))) -> c10(MARK(first(cons(y0, y1), cons(y2, y3)))) MARK(s(first(first(y0, first(y1, y2)), y3))) -> c10(MARK(first(first(y0, first(y1, y2)), y3))) MARK(s(first(first(y0, from(y1)), y2))) -> c10(MARK(first(first(y0, from(y1)), y2))) MARK(s(first(first(y0, 0), y1))) -> c10(MARK(first(first(y0, 0), y1))) MARK(s(first(first(y0, nil), y1))) -> c10(MARK(first(first(y0, nil), y1))) MARK(s(first(first(y0, s(y1)), y2))) -> c10(MARK(first(first(y0, s(y1)), y2))) MARK(s(first(first(y0, cons(y1, y2)), y3))) -> c10(MARK(first(first(y0, cons(y1, y2)), y3))) MARK(s(first(first(first(y0, y1), y2), y3))) -> c10(MARK(first(first(first(y0, y1), y2), y3))) MARK(s(first(first(from(y0), y1), y2))) -> c10(MARK(first(first(from(y0), y1), y2))) MARK(s(first(first(0, y0), y1))) -> c10(MARK(first(first(0, y0), y1))) MARK(s(first(first(nil, y0), y1))) -> c10(MARK(first(first(nil, y0), y1))) MARK(s(first(first(s(y0), y1), y2))) -> c10(MARK(first(first(s(y0), y1), y2))) MARK(s(first(first(cons(y0, y1), y2), y3))) -> c10(MARK(first(first(cons(y0, y1), y2), y3))) MARK(s(first(first(y0, y1), 0))) -> c10(MARK(first(first(y0, y1), 0))) MARK(s(first(first(y0, y1), nil))) -> c10(MARK(first(first(y0, y1), nil))) MARK(s(first(first(y0, y1), s(y2)))) -> c10(MARK(first(first(y0, y1), s(y2)))) MARK(s(first(first(y0, y1), y2))) -> c10(MARK(first(first(y0, y1), y2))) MARK(s(first(from(first(y0, y1)), y2))) -> c10(MARK(first(from(first(y0, y1)), y2))) MARK(s(first(from(from(y0)), y1))) -> c10(MARK(first(from(from(y0)), y1))) MARK(s(first(from(s(y0)), y1))) -> c10(MARK(first(from(s(y0)), y1))) MARK(s(first(from(cons(y0, y1)), y2))) -> c10(MARK(first(from(cons(y0, y1)), y2))) MARK(s(first(from(y0), y1))) -> c10(MARK(first(from(y0), y1))) MARK(s(first(from(y0), 0))) -> c10(MARK(first(from(y0), 0))) MARK(s(first(from(y0), nil))) -> c10(MARK(first(from(y0), nil))) MARK(s(first(from(y0), s(y1)))) -> c10(MARK(first(from(y0), s(y1)))) MARK(s(first(s(first(y0, y1)), y2))) -> c10(MARK(first(s(first(y0, y1)), y2))) MARK(s(first(s(from(y0)), y1))) -> c10(MARK(first(s(from(y0)), y1))) MARK(s(first(s(0), y0))) -> c10(MARK(first(s(0), y0))) MARK(s(first(s(nil), y0))) -> c10(MARK(first(s(nil), y0))) MARK(s(first(s(s(y0)), y1))) -> c10(MARK(first(s(s(y0)), y1))) MARK(s(first(s(cons(y0, y1)), y2))) -> c10(MARK(first(s(cons(y0, y1)), y2))) MARK(s(first(s(y0), y1))) -> c10(MARK(first(s(y0), y1))) MARK(s(first(s(y0), 0))) -> c10(MARK(first(s(y0), 0))) MARK(s(first(s(y0), nil))) -> c10(MARK(first(s(y0), nil))) MARK(s(first(s(y0), s(y1)))) -> c10(MARK(first(s(y0), s(y1)))) MARK(s(first(0, first(y0, y1)))) -> c10(MARK(first(0, first(y0, y1)))) MARK(s(first(nil, first(y0, y1)))) -> c10(MARK(first(nil, first(y0, y1)))) MARK(s(first(0, from(y0)))) -> c10(MARK(first(0, from(y0)))) MARK(s(first(nil, from(y0)))) -> c10(MARK(first(nil, from(y0)))) MARK(s(first(y0, cons(y1, y2)))) -> c10(MARK(first(y0, cons(y1, y2)))) MARK(s(first(0, cons(y0, y1)))) -> c10(MARK(first(0, cons(y0, y1)))) MARK(s(first(nil, cons(y0, y1)))) -> c10(MARK(first(nil, cons(y0, y1)))) MARK(s(first(from(0), y0))) -> c10(MARK(first(from(0), y0))) MARK(s(first(from(nil), y0))) -> c10(MARK(first(from(nil), y0))) MARK(s(first(y0, cons(0, y1)))) -> c10(MARK(first(y0, cons(0, y1)))) MARK(s(first(y0, cons(nil, y1)))) -> c10(MARK(first(y0, cons(nil, y1)))) MARK(s(from(s(y0)))) -> c10(MARK(from(s(y0)))) MARK(s(from(cons(y0, y1)))) -> c10(MARK(from(cons(y0, y1)))) MARK(s(from(first(y0, y1)))) -> c10(MARK(from(first(y0, y1)))) MARK(s(from(first(y0, first(y1, y2))))) -> c10(MARK(from(first(y0, first(y1, y2))))) MARK(s(from(first(y0, from(y1))))) -> c10(MARK(from(first(y0, from(y1))))) MARK(s(from(first(y0, 0)))) -> c10(MARK(from(first(y0, 0)))) MARK(s(from(first(y0, nil)))) -> c10(MARK(from(first(y0, nil)))) MARK(s(from(first(y0, s(y1))))) -> c10(MARK(from(first(y0, s(y1))))) MARK(s(from(first(y0, cons(y1, y2))))) -> c10(MARK(from(first(y0, cons(y1, y2))))) MARK(s(from(first(first(y0, y1), y2)))) -> c10(MARK(from(first(first(y0, y1), y2)))) MARK(s(from(first(from(y0), y1)))) -> c10(MARK(from(first(from(y0), y1)))) MARK(s(from(first(0, y0)))) -> c10(MARK(from(first(0, y0)))) MARK(s(from(first(nil, y0)))) -> c10(MARK(from(first(nil, y0)))) MARK(s(from(first(s(y0), y1)))) -> c10(MARK(from(first(s(y0), y1)))) MARK(s(from(first(cons(y0, y1), y2)))) -> c10(MARK(from(first(cons(y0, y1), y2)))) MARK(s(from(from(y0)))) -> c10(MARK(from(from(y0)))) MARK(s(from(from(first(y0, y1))))) -> c10(MARK(from(from(first(y0, y1))))) MARK(s(from(from(from(y0))))) -> c10(MARK(from(from(from(y0))))) MARK(s(from(from(s(y0))))) -> c10(MARK(from(from(s(y0))))) MARK(s(from(from(cons(y0, y1))))) -> c10(MARK(from(from(cons(y0, y1))))) MARK(s(from(from(0)))) -> c10(MARK(from(from(0)))) MARK(s(from(from(nil)))) -> c10(MARK(from(from(nil)))) MARK(first(s(0), x1)) -> c5(A__FIRST(s(0), mark(x1))) MARK(first(s(nil), x1)) -> c5(A__FIRST(s(nil), mark(x1))) MARK(cons(cons(y0, y1), z1)) -> c11(MARK(cons(y0, y1))) MARK(cons(first(y0, 0), z1)) -> c11(MARK(first(y0, 0))) MARK(cons(first(y0, nil), z1)) -> c11(MARK(first(y0, nil))) MARK(cons(first(y0, s(y1)), z1)) -> c11(MARK(first(y0, s(y1)))) MARK(cons(first(cons(y0, y1), y2), z1)) -> c11(MARK(first(cons(y0, y1), y2))) MARK(cons(first(0, y0), z1)) -> c11(MARK(first(0, y0))) MARK(cons(first(nil, y0), z1)) -> c11(MARK(first(nil, y0))) MARK(cons(first(y0, first(y1, first(y2, y3))), z1)) -> c11(MARK(first(y0, first(y1, first(y2, y3))))) MARK(cons(first(y0, first(y1, from(y2))), z1)) -> c11(MARK(first(y0, first(y1, from(y2))))) MARK(cons(first(y0, first(y1, 0)), z1)) -> c11(MARK(first(y0, first(y1, 0)))) MARK(cons(first(y0, first(y1, nil)), z1)) -> c11(MARK(first(y0, first(y1, nil)))) MARK(cons(first(y0, first(y1, s(y2))), z1)) -> c11(MARK(first(y0, first(y1, s(y2))))) MARK(cons(first(y0, first(y1, cons(y2, y3))), z1)) -> c11(MARK(first(y0, first(y1, cons(y2, y3))))) MARK(cons(first(y0, first(first(y1, y2), y3)), z1)) -> c11(MARK(first(y0, first(first(y1, y2), y3)))) MARK(cons(first(y0, first(from(y1), y2)), z1)) -> c11(MARK(first(y0, first(from(y1), y2)))) MARK(cons(first(y0, first(0, y1)), z1)) -> c11(MARK(first(y0, first(0, y1)))) MARK(cons(first(y0, first(nil, y1)), z1)) -> c11(MARK(first(y0, first(nil, y1)))) MARK(cons(first(y0, first(s(y1), y2)), z1)) -> c11(MARK(first(y0, first(s(y1), y2)))) MARK(cons(first(y0, first(cons(y1, y2), y3)), z1)) -> c11(MARK(first(y0, first(cons(y1, y2), y3)))) MARK(cons(first(first(y0, y1), first(y2, y3)), z1)) -> c11(MARK(first(first(y0, y1), first(y2, y3)))) MARK(cons(first(from(y0), first(y1, y2)), z1)) -> c11(MARK(first(from(y0), first(y1, y2)))) MARK(cons(first(s(y0), first(y1, y2)), z1)) -> c11(MARK(first(s(y0), first(y1, y2)))) MARK(cons(first(y0, first(y1, y2)), z1)) -> c11(MARK(first(y0, first(y1, y2)))) MARK(cons(first(cons(y0, y1), first(y2, y3)), z1)) -> c11(MARK(first(cons(y0, y1), first(y2, y3)))) MARK(cons(first(y0, from(y1)), z1)) -> c11(MARK(first(y0, from(y1)))) MARK(cons(first(y0, from(first(y1, y2))), z1)) -> c11(MARK(first(y0, from(first(y1, y2))))) MARK(cons(first(y0, from(from(y1))), z1)) -> c11(MARK(first(y0, from(from(y1))))) MARK(cons(first(y0, from(0)), z1)) -> c11(MARK(first(y0, from(0)))) MARK(cons(first(y0, from(nil)), z1)) -> c11(MARK(first(y0, from(nil)))) MARK(cons(first(y0, from(s(y1))), z1)) -> c11(MARK(first(y0, from(s(y1))))) MARK(cons(first(y0, from(cons(y1, y2))), z1)) -> c11(MARK(first(y0, from(cons(y1, y2))))) MARK(cons(first(first(y0, y1), from(y2)), z1)) -> c11(MARK(first(first(y0, y1), from(y2)))) MARK(cons(first(from(y0), from(y1)), z1)) -> c11(MARK(first(from(y0), from(y1)))) MARK(cons(first(s(y0), from(y1)), z1)) -> c11(MARK(first(s(y0), from(y1)))) MARK(cons(first(cons(y0, y1), from(y2)), z1)) -> c11(MARK(first(cons(y0, y1), from(y2)))) MARK(cons(first(y0, cons(first(y1, y2), y3)), z1)) -> c11(MARK(first(y0, cons(first(y1, y2), y3)))) MARK(cons(first(y0, cons(from(y1), y2)), z1)) -> c11(MARK(first(y0, cons(from(y1), y2)))) MARK(cons(first(y0, cons(s(y1), y2)), z1)) -> c11(MARK(first(y0, cons(s(y1), y2)))) MARK(cons(first(y0, cons(cons(y1, y2), y3)), z1)) -> c11(MARK(first(y0, cons(cons(y1, y2), y3)))) MARK(cons(first(first(y0, y1), cons(y2, y3)), z1)) -> c11(MARK(first(first(y0, y1), cons(y2, y3)))) MARK(cons(first(from(y0), cons(y1, y2)), z1)) -> c11(MARK(first(from(y0), cons(y1, y2)))) MARK(cons(first(s(y0), cons(y1, y2)), z1)) -> c11(MARK(first(s(y0), cons(y1, y2)))) MARK(cons(first(cons(y0, y1), cons(y2, y3)), z1)) -> c11(MARK(first(cons(y0, y1), cons(y2, y3)))) MARK(cons(first(first(y0, first(y1, y2)), y3), z1)) -> c11(MARK(first(first(y0, first(y1, y2)), y3))) MARK(cons(first(first(y0, from(y1)), y2), z1)) -> c11(MARK(first(first(y0, from(y1)), y2))) MARK(cons(first(first(y0, 0), y1), z1)) -> c11(MARK(first(first(y0, 0), y1))) MARK(cons(first(first(y0, nil), y1), z1)) -> c11(MARK(first(first(y0, nil), y1))) MARK(cons(first(first(y0, s(y1)), y2), z1)) -> c11(MARK(first(first(y0, s(y1)), y2))) MARK(cons(first(first(y0, cons(y1, y2)), y3), z1)) -> c11(MARK(first(first(y0, cons(y1, y2)), y3))) MARK(cons(first(first(first(y0, y1), y2), y3), z1)) -> c11(MARK(first(first(first(y0, y1), y2), y3))) MARK(cons(first(first(from(y0), y1), y2), z1)) -> c11(MARK(first(first(from(y0), y1), y2))) MARK(cons(first(first(0, y0), y1), z1)) -> c11(MARK(first(first(0, y0), y1))) MARK(cons(first(first(nil, y0), y1), z1)) -> c11(MARK(first(first(nil, y0), y1))) MARK(cons(first(first(s(y0), y1), y2), z1)) -> c11(MARK(first(first(s(y0), y1), y2))) MARK(cons(first(first(cons(y0, y1), y2), y3), z1)) -> c11(MARK(first(first(cons(y0, y1), y2), y3))) MARK(cons(first(first(y0, y1), 0), z1)) -> c11(MARK(first(first(y0, y1), 0))) MARK(cons(first(first(y0, y1), nil), z1)) -> c11(MARK(first(first(y0, y1), nil))) MARK(cons(first(first(y0, y1), s(y2)), z1)) -> c11(MARK(first(first(y0, y1), s(y2)))) MARK(cons(first(first(y0, y1), y2), z1)) -> c11(MARK(first(first(y0, y1), y2))) MARK(cons(first(from(first(y0, y1)), y2), z1)) -> c11(MARK(first(from(first(y0, y1)), y2))) MARK(cons(first(from(from(y0)), y1), z1)) -> c11(MARK(first(from(from(y0)), y1))) MARK(cons(first(from(s(y0)), y1), z1)) -> c11(MARK(first(from(s(y0)), y1))) MARK(cons(first(from(cons(y0, y1)), y2), z1)) -> c11(MARK(first(from(cons(y0, y1)), y2))) MARK(cons(first(from(y0), y1), z1)) -> c11(MARK(first(from(y0), y1))) MARK(cons(first(from(y0), 0), z1)) -> c11(MARK(first(from(y0), 0))) MARK(cons(first(from(y0), nil), z1)) -> c11(MARK(first(from(y0), nil))) MARK(cons(first(from(y0), s(y1)), z1)) -> c11(MARK(first(from(y0), s(y1)))) MARK(cons(first(s(first(y0, y1)), y2), z1)) -> c11(MARK(first(s(first(y0, y1)), y2))) MARK(cons(first(s(from(y0)), y1), z1)) -> c11(MARK(first(s(from(y0)), y1))) MARK(cons(first(s(s(y0)), y1), z1)) -> c11(MARK(first(s(s(y0)), y1))) MARK(cons(first(s(cons(y0, y1)), y2), z1)) -> c11(MARK(first(s(cons(y0, y1)), y2))) MARK(cons(first(s(y0), y1), z1)) -> c11(MARK(first(s(y0), y1))) MARK(cons(first(s(y0), 0), z1)) -> c11(MARK(first(s(y0), 0))) MARK(cons(first(s(y0), nil), z1)) -> c11(MARK(first(s(y0), nil))) MARK(cons(first(s(y0), s(y1)), z1)) -> c11(MARK(first(s(y0), s(y1)))) MARK(cons(first(0, first(y0, y1)), z1)) -> c11(MARK(first(0, first(y0, y1)))) MARK(cons(first(nil, first(y0, y1)), z1)) -> c11(MARK(first(nil, first(y0, y1)))) MARK(cons(first(0, from(y0)), z1)) -> c11(MARK(first(0, from(y0)))) MARK(cons(first(nil, from(y0)), z1)) -> c11(MARK(first(nil, from(y0)))) MARK(cons(first(y0, cons(y1, y2)), z1)) -> c11(MARK(first(y0, cons(y1, y2)))) MARK(cons(first(0, cons(y0, y1)), z1)) -> c11(MARK(first(0, cons(y0, y1)))) MARK(cons(first(nil, cons(y0, y1)), z1)) -> c11(MARK(first(nil, cons(y0, y1)))) MARK(cons(first(from(0), y0), z1)) -> c11(MARK(first(from(0), y0))) MARK(cons(first(from(nil), y0), z1)) -> c11(MARK(first(from(nil), y0))) MARK(cons(first(s(0), y0), z1)) -> c11(MARK(first(s(0), y0))) MARK(cons(first(s(nil), y0), z1)) -> c11(MARK(first(s(nil), y0))) MARK(cons(first(y0, cons(0, y1)), z1)) -> c11(MARK(first(y0, cons(0, y1)))) MARK(cons(first(y0, cons(nil, y1)), z1)) -> c11(MARK(first(y0, cons(nil, y1)))) MARK(cons(from(s(y0)), z1)) -> c11(MARK(from(s(y0)))) MARK(cons(from(cons(y0, y1)), z1)) -> c11(MARK(from(cons(y0, y1)))) MARK(cons(from(first(y0, y1)), z1)) -> c11(MARK(from(first(y0, y1)))) MARK(cons(from(first(y0, first(y1, y2))), z1)) -> c11(MARK(from(first(y0, first(y1, y2))))) MARK(cons(from(first(y0, from(y1))), z1)) -> c11(MARK(from(first(y0, from(y1))))) MARK(cons(from(first(y0, 0)), z1)) -> c11(MARK(from(first(y0, 0)))) MARK(cons(from(first(y0, nil)), z1)) -> c11(MARK(from(first(y0, nil)))) MARK(cons(from(first(y0, s(y1))), z1)) -> c11(MARK(from(first(y0, s(y1))))) MARK(cons(from(first(y0, cons(y1, y2))), z1)) -> c11(MARK(from(first(y0, cons(y1, y2))))) MARK(cons(from(first(first(y0, y1), y2)), z1)) -> c11(MARK(from(first(first(y0, y1), y2)))) MARK(cons(from(first(from(y0), y1)), z1)) -> c11(MARK(from(first(from(y0), y1)))) MARK(cons(from(first(0, y0)), z1)) -> c11(MARK(from(first(0, y0)))) MARK(cons(from(first(nil, y0)), z1)) -> c11(MARK(from(first(nil, y0)))) MARK(cons(from(first(s(y0), y1)), z1)) -> c11(MARK(from(first(s(y0), y1)))) MARK(cons(from(first(cons(y0, y1), y2)), z1)) -> c11(MARK(from(first(cons(y0, y1), y2)))) MARK(cons(from(from(y0)), z1)) -> c11(MARK(from(from(y0)))) MARK(cons(from(from(first(y0, y1))), z1)) -> c11(MARK(from(from(first(y0, y1))))) MARK(cons(from(from(from(y0))), z1)) -> c11(MARK(from(from(from(y0))))) MARK(cons(from(from(s(y0))), z1)) -> c11(MARK(from(from(s(y0))))) MARK(cons(from(from(cons(y0, y1))), z1)) -> c11(MARK(from(from(cons(y0, y1))))) MARK(cons(from(from(0)), z1)) -> c11(MARK(from(from(0)))) MARK(cons(from(from(nil)), z1)) -> c11(MARK(from(from(nil)))) MARK(cons(s(s(y0)), z1)) -> c11(MARK(s(s(y0)))) MARK(cons(s(cons(y0, y1)), z1)) -> c11(MARK(s(cons(y0, y1)))) MARK(cons(s(first(y0, 0)), z1)) -> c11(MARK(s(first(y0, 0)))) MARK(cons(s(first(y0, nil)), z1)) -> c11(MARK(s(first(y0, nil)))) MARK(cons(s(first(y0, s(y1))), z1)) -> c11(MARK(s(first(y0, s(y1))))) MARK(cons(s(first(cons(y0, y1), y2)), z1)) -> c11(MARK(s(first(cons(y0, y1), y2)))) MARK(cons(s(first(0, y0)), z1)) -> c11(MARK(s(first(0, y0)))) MARK(cons(s(first(nil, y0)), z1)) -> c11(MARK(s(first(nil, y0)))) MARK(cons(s(first(y0, first(y1, first(y2, y3)))), z1)) -> c11(MARK(s(first(y0, first(y1, first(y2, y3)))))) MARK(cons(s(first(y0, first(y1, from(y2)))), z1)) -> c11(MARK(s(first(y0, first(y1, from(y2)))))) MARK(cons(s(first(y0, first(y1, 0))), z1)) -> c11(MARK(s(first(y0, first(y1, 0))))) MARK(cons(s(first(y0, first(y1, nil))), z1)) -> c11(MARK(s(first(y0, first(y1, nil))))) MARK(cons(s(first(y0, first(y1, s(y2)))), z1)) -> c11(MARK(s(first(y0, first(y1, s(y2)))))) MARK(cons(s(first(y0, first(y1, cons(y2, y3)))), z1)) -> c11(MARK(s(first(y0, first(y1, cons(y2, y3)))))) MARK(cons(s(first(y0, first(first(y1, y2), y3))), z1)) -> c11(MARK(s(first(y0, first(first(y1, y2), y3))))) MARK(cons(s(first(y0, first(from(y1), y2))), z1)) -> c11(MARK(s(first(y0, first(from(y1), y2))))) MARK(cons(s(first(y0, first(0, y1))), z1)) -> c11(MARK(s(first(y0, first(0, y1))))) MARK(cons(s(first(y0, first(nil, y1))), z1)) -> c11(MARK(s(first(y0, first(nil, y1))))) MARK(cons(s(first(y0, first(s(y1), y2))), z1)) -> c11(MARK(s(first(y0, first(s(y1), y2))))) MARK(cons(s(first(y0, first(cons(y1, y2), y3))), z1)) -> c11(MARK(s(first(y0, first(cons(y1, y2), y3))))) MARK(cons(s(first(first(y0, y1), first(y2, y3))), z1)) -> c11(MARK(s(first(first(y0, y1), first(y2, y3))))) MARK(cons(s(first(from(y0), first(y1, y2))), z1)) -> c11(MARK(s(first(from(y0), first(y1, y2))))) MARK(cons(s(first(s(y0), first(y1, y2))), z1)) -> c11(MARK(s(first(s(y0), first(y1, y2))))) MARK(cons(s(first(y0, first(y1, y2))), z1)) -> c11(MARK(s(first(y0, first(y1, y2))))) MARK(cons(s(first(cons(y0, y1), first(y2, y3))), z1)) -> c11(MARK(s(first(cons(y0, y1), first(y2, y3))))) MARK(cons(s(first(y0, from(y1))), z1)) -> c11(MARK(s(first(y0, from(y1))))) MARK(cons(s(first(y0, from(first(y1, y2)))), z1)) -> c11(MARK(s(first(y0, from(first(y1, y2)))))) MARK(cons(s(first(y0, from(from(y1)))), z1)) -> c11(MARK(s(first(y0, from(from(y1)))))) MARK(cons(s(first(y0, from(0))), z1)) -> c11(MARK(s(first(y0, from(0))))) MARK(cons(s(first(y0, from(nil))), z1)) -> c11(MARK(s(first(y0, from(nil))))) MARK(cons(s(first(y0, from(s(y1)))), z1)) -> c11(MARK(s(first(y0, from(s(y1)))))) MARK(cons(s(first(y0, from(cons(y1, y2)))), z1)) -> c11(MARK(s(first(y0, from(cons(y1, y2)))))) MARK(cons(s(first(first(y0, y1), from(y2))), z1)) -> c11(MARK(s(first(first(y0, y1), from(y2))))) MARK(cons(s(first(from(y0), from(y1))), z1)) -> c11(MARK(s(first(from(y0), from(y1))))) MARK(cons(s(first(s(y0), from(y1))), z1)) -> c11(MARK(s(first(s(y0), from(y1))))) MARK(cons(s(first(cons(y0, y1), from(y2))), z1)) -> c11(MARK(s(first(cons(y0, y1), from(y2))))) MARK(cons(s(first(y0, cons(first(y1, y2), y3))), z1)) -> c11(MARK(s(first(y0, cons(first(y1, y2), y3))))) MARK(cons(s(first(y0, cons(from(y1), y2))), z1)) -> c11(MARK(s(first(y0, cons(from(y1), y2))))) MARK(cons(s(first(y0, cons(s(y1), y2))), z1)) -> c11(MARK(s(first(y0, cons(s(y1), y2))))) MARK(cons(s(first(y0, cons(cons(y1, y2), y3))), z1)) -> c11(MARK(s(first(y0, cons(cons(y1, y2), y3))))) MARK(cons(s(first(first(y0, y1), cons(y2, y3))), z1)) -> c11(MARK(s(first(first(y0, y1), cons(y2, y3))))) MARK(cons(s(first(from(y0), cons(y1, y2))), z1)) -> c11(MARK(s(first(from(y0), cons(y1, y2))))) MARK(cons(s(first(s(y0), cons(y1, y2))), z1)) -> c11(MARK(s(first(s(y0), cons(y1, y2))))) MARK(cons(s(first(cons(y0, y1), cons(y2, y3))), z1)) -> c11(MARK(s(first(cons(y0, y1), cons(y2, y3))))) MARK(cons(s(first(first(y0, first(y1, y2)), y3)), z1)) -> c11(MARK(s(first(first(y0, first(y1, y2)), y3)))) MARK(cons(s(first(first(y0, from(y1)), y2)), z1)) -> c11(MARK(s(first(first(y0, from(y1)), y2)))) MARK(cons(s(first(first(y0, 0), y1)), z1)) -> c11(MARK(s(first(first(y0, 0), y1)))) MARK(cons(s(first(first(y0, nil), y1)), z1)) -> c11(MARK(s(first(first(y0, nil), y1)))) MARK(cons(s(first(first(y0, s(y1)), y2)), z1)) -> c11(MARK(s(first(first(y0, s(y1)), y2)))) MARK(cons(s(first(first(y0, cons(y1, y2)), y3)), z1)) -> c11(MARK(s(first(first(y0, cons(y1, y2)), y3)))) MARK(cons(s(first(first(first(y0, y1), y2), y3)), z1)) -> c11(MARK(s(first(first(first(y0, y1), y2), y3)))) MARK(cons(s(first(first(from(y0), y1), y2)), z1)) -> c11(MARK(s(first(first(from(y0), y1), y2)))) MARK(cons(s(first(first(0, y0), y1)), z1)) -> c11(MARK(s(first(first(0, y0), y1)))) MARK(cons(s(first(first(nil, y0), y1)), z1)) -> c11(MARK(s(first(first(nil, y0), y1)))) MARK(cons(s(first(first(s(y0), y1), y2)), z1)) -> c11(MARK(s(first(first(s(y0), y1), y2)))) MARK(cons(s(first(first(cons(y0, y1), y2), y3)), z1)) -> c11(MARK(s(first(first(cons(y0, y1), y2), y3)))) MARK(cons(s(first(first(y0, y1), 0)), z1)) -> c11(MARK(s(first(first(y0, y1), 0)))) MARK(cons(s(first(first(y0, y1), nil)), z1)) -> c11(MARK(s(first(first(y0, y1), nil)))) MARK(cons(s(first(first(y0, y1), s(y2))), z1)) -> c11(MARK(s(first(first(y0, y1), s(y2))))) MARK(cons(s(first(first(y0, y1), y2)), z1)) -> c11(MARK(s(first(first(y0, y1), y2)))) MARK(cons(s(first(from(first(y0, y1)), y2)), z1)) -> c11(MARK(s(first(from(first(y0, y1)), y2)))) MARK(cons(s(first(from(from(y0)), y1)), z1)) -> c11(MARK(s(first(from(from(y0)), y1)))) MARK(cons(s(first(from(s(y0)), y1)), z1)) -> c11(MARK(s(first(from(s(y0)), y1)))) MARK(cons(s(first(from(cons(y0, y1)), y2)), z1)) -> c11(MARK(s(first(from(cons(y0, y1)), y2)))) MARK(cons(s(first(from(y0), y1)), z1)) -> c11(MARK(s(first(from(y0), y1)))) MARK(cons(s(first(from(y0), 0)), z1)) -> c11(MARK(s(first(from(y0), 0)))) MARK(cons(s(first(from(y0), nil)), z1)) -> c11(MARK(s(first(from(y0), nil)))) MARK(cons(s(first(from(y0), s(y1))), z1)) -> c11(MARK(s(first(from(y0), s(y1))))) MARK(cons(s(first(s(first(y0, y1)), y2)), z1)) -> c11(MARK(s(first(s(first(y0, y1)), y2)))) MARK(cons(s(first(s(from(y0)), y1)), z1)) -> c11(MARK(s(first(s(from(y0)), y1)))) MARK(cons(s(first(s(0), y0)), z1)) -> c11(MARK(s(first(s(0), y0)))) MARK(cons(s(first(s(nil), y0)), z1)) -> c11(MARK(s(first(s(nil), y0)))) MARK(cons(s(first(s(s(y0)), y1)), z1)) -> c11(MARK(s(first(s(s(y0)), y1)))) MARK(cons(s(first(s(cons(y0, y1)), y2)), z1)) -> c11(MARK(s(first(s(cons(y0, y1)), y2)))) MARK(cons(s(first(s(y0), y1)), z1)) -> c11(MARK(s(first(s(y0), y1)))) MARK(cons(s(first(s(y0), 0)), z1)) -> c11(MARK(s(first(s(y0), 0)))) MARK(cons(s(first(s(y0), nil)), z1)) -> c11(MARK(s(first(s(y0), nil)))) MARK(cons(s(first(s(y0), s(y1))), z1)) -> c11(MARK(s(first(s(y0), s(y1))))) MARK(cons(s(first(0, first(y0, y1))), z1)) -> c11(MARK(s(first(0, first(y0, y1))))) MARK(cons(s(first(nil, first(y0, y1))), z1)) -> c11(MARK(s(first(nil, first(y0, y1))))) MARK(cons(s(first(0, from(y0))), z1)) -> c11(MARK(s(first(0, from(y0))))) MARK(cons(s(first(nil, from(y0))), z1)) -> c11(MARK(s(first(nil, from(y0))))) MARK(cons(s(first(y0, cons(y1, y2))), z1)) -> c11(MARK(s(first(y0, cons(y1, y2))))) MARK(cons(s(first(0, cons(y0, y1))), z1)) -> c11(MARK(s(first(0, cons(y0, y1))))) MARK(cons(s(first(nil, cons(y0, y1))), z1)) -> c11(MARK(s(first(nil, cons(y0, y1))))) MARK(cons(s(first(from(0), y0)), z1)) -> c11(MARK(s(first(from(0), y0)))) MARK(cons(s(first(from(nil), y0)), z1)) -> c11(MARK(s(first(from(nil), y0)))) MARK(cons(s(first(y0, cons(0, y1))), z1)) -> c11(MARK(s(first(y0, cons(0, y1))))) MARK(cons(s(first(y0, cons(nil, y1))), z1)) -> c11(MARK(s(first(y0, cons(nil, y1))))) MARK(cons(s(from(s(y0))), z1)) -> c11(MARK(s(from(s(y0))))) MARK(cons(s(from(cons(y0, y1))), z1)) -> c11(MARK(s(from(cons(y0, y1))))) MARK(cons(s(from(first(y0, y1))), z1)) -> c11(MARK(s(from(first(y0, y1))))) MARK(cons(s(from(first(y0, first(y1, y2)))), z1)) -> c11(MARK(s(from(first(y0, first(y1, y2)))))) MARK(cons(s(from(first(y0, from(y1)))), z1)) -> c11(MARK(s(from(first(y0, from(y1)))))) MARK(cons(s(from(first(y0, 0))), z1)) -> c11(MARK(s(from(first(y0, 0))))) MARK(cons(s(from(first(y0, nil))), z1)) -> c11(MARK(s(from(first(y0, nil))))) MARK(cons(s(from(first(y0, s(y1)))), z1)) -> c11(MARK(s(from(first(y0, s(y1)))))) MARK(cons(s(from(first(y0, cons(y1, y2)))), z1)) -> c11(MARK(s(from(first(y0, cons(y1, y2)))))) MARK(cons(s(from(first(first(y0, y1), y2))), z1)) -> c11(MARK(s(from(first(first(y0, y1), y2))))) MARK(cons(s(from(first(from(y0), y1))), z1)) -> c11(MARK(s(from(first(from(y0), y1))))) MARK(cons(s(from(first(0, y0))), z1)) -> c11(MARK(s(from(first(0, y0))))) MARK(cons(s(from(first(nil, y0))), z1)) -> c11(MARK(s(from(first(nil, y0))))) MARK(cons(s(from(first(s(y0), y1))), z1)) -> c11(MARK(s(from(first(s(y0), y1))))) MARK(cons(s(from(first(cons(y0, y1), y2))), z1)) -> c11(MARK(s(from(first(cons(y0, y1), y2))))) MARK(cons(s(from(from(y0))), z1)) -> c11(MARK(s(from(from(y0))))) MARK(cons(s(from(from(first(y0, y1)))), z1)) -> c11(MARK(s(from(from(first(y0, y1)))))) MARK(cons(s(from(from(from(y0)))), z1)) -> c11(MARK(s(from(from(from(y0)))))) MARK(cons(s(from(from(s(y0)))), z1)) -> c11(MARK(s(from(from(s(y0)))))) MARK(cons(s(from(from(cons(y0, y1)))), z1)) -> c11(MARK(s(from(from(cons(y0, y1)))))) MARK(cons(s(from(from(0))), z1)) -> c11(MARK(s(from(from(0))))) MARK(cons(s(from(from(nil))), z1)) -> c11(MARK(s(from(from(nil))))) K tuples:none Defined Rule Symbols: a__first_2, a__from_1, mark_1 Defined Pair Symbols: MARK_1, A__FIRST_2, A__FROM_1 Compound Symbols: c5_1, c6_1, c5_2, c6_2, c1_1, c3_1, c7_2, c7_1, c10_1, c11_1 ---------------------------------------- (161) CdtForwardInstantiationProof (BOTH BOUNDS(ID, ID)) Use forward instantiation to replace MARK(first(x0, 0)) -> c5(MARK(x0)) by MARK(first(first(y0, 0), 0)) -> c5(MARK(first(y0, 0))) MARK(first(first(y0, nil), 0)) -> c5(MARK(first(y0, nil))) MARK(first(first(y0, s(y1)), 0)) -> c5(MARK(first(y0, s(y1)))) MARK(first(first(cons(y0, y1), y2), 0)) -> c5(MARK(first(cons(y0, y1), y2))) MARK(first(first(0, y0), 0)) -> c5(MARK(first(0, y0))) MARK(first(first(nil, y0), 0)) -> c5(MARK(first(nil, y0))) MARK(first(first(y0, first(y1, first(y2, y3))), 0)) -> c5(MARK(first(y0, first(y1, first(y2, y3))))) MARK(first(first(y0, first(y1, from(y2))), 0)) -> c5(MARK(first(y0, first(y1, from(y2))))) MARK(first(first(y0, first(y1, 0)), 0)) -> c5(MARK(first(y0, first(y1, 0)))) MARK(first(first(y0, first(y1, nil)), 0)) -> c5(MARK(first(y0, first(y1, nil)))) MARK(first(first(y0, first(y1, s(y2))), 0)) -> c5(MARK(first(y0, first(y1, s(y2))))) MARK(first(first(y0, first(y1, cons(y2, y3))), 0)) -> c5(MARK(first(y0, first(y1, cons(y2, y3))))) MARK(first(first(y0, first(first(y1, y2), y3)), 0)) -> c5(MARK(first(y0, first(first(y1, y2), y3)))) MARK(first(first(y0, first(from(y1), y2)), 0)) -> c5(MARK(first(y0, first(from(y1), y2)))) MARK(first(first(y0, first(0, y1)), 0)) -> c5(MARK(first(y0, first(0, y1)))) MARK(first(first(y0, first(nil, y1)), 0)) -> c5(MARK(first(y0, first(nil, y1)))) MARK(first(first(y0, first(s(y1), y2)), 0)) -> c5(MARK(first(y0, first(s(y1), y2)))) MARK(first(first(y0, first(cons(y1, y2), y3)), 0)) -> c5(MARK(first(y0, first(cons(y1, y2), y3)))) MARK(first(first(first(y0, y1), first(y2, y3)), 0)) -> c5(MARK(first(first(y0, y1), first(y2, y3)))) MARK(first(first(from(y0), first(y1, y2)), 0)) -> c5(MARK(first(from(y0), first(y1, y2)))) MARK(first(first(s(y0), first(y1, y2)), 0)) -> c5(MARK(first(s(y0), first(y1, y2)))) MARK(first(first(y0, first(y1, y2)), 0)) -> c5(MARK(first(y0, first(y1, y2)))) MARK(first(first(cons(y0, y1), first(y2, y3)), 0)) -> c5(MARK(first(cons(y0, y1), first(y2, y3)))) MARK(first(first(y0, from(y1)), 0)) -> c5(MARK(first(y0, from(y1)))) MARK(first(first(y0, from(first(y1, y2))), 0)) -> c5(MARK(first(y0, from(first(y1, y2))))) MARK(first(first(y0, from(from(y1))), 0)) -> c5(MARK(first(y0, from(from(y1))))) MARK(first(first(y0, from(0)), 0)) -> c5(MARK(first(y0, from(0)))) MARK(first(first(y0, from(nil)), 0)) -> c5(MARK(first(y0, from(nil)))) MARK(first(first(y0, from(s(y1))), 0)) -> c5(MARK(first(y0, from(s(y1))))) MARK(first(first(y0, from(cons(y1, y2))), 0)) -> c5(MARK(first(y0, from(cons(y1, y2))))) MARK(first(first(first(y0, y1), from(y2)), 0)) -> c5(MARK(first(first(y0, y1), from(y2)))) MARK(first(first(from(y0), from(y1)), 0)) -> c5(MARK(first(from(y0), from(y1)))) MARK(first(first(s(y0), from(y1)), 0)) -> c5(MARK(first(s(y0), from(y1)))) MARK(first(first(cons(y0, y1), from(y2)), 0)) -> c5(MARK(first(cons(y0, y1), from(y2)))) MARK(first(first(y0, cons(first(y1, y2), y3)), 0)) -> c5(MARK(first(y0, cons(first(y1, y2), y3)))) MARK(first(first(y0, cons(from(y1), y2)), 0)) -> c5(MARK(first(y0, cons(from(y1), y2)))) MARK(first(first(y0, cons(s(y1), y2)), 0)) -> c5(MARK(first(y0, cons(s(y1), y2)))) MARK(first(first(y0, cons(cons(y1, y2), y3)), 0)) -> c5(MARK(first(y0, cons(cons(y1, y2), y3)))) MARK(first(first(first(y0, y1), cons(y2, y3)), 0)) -> c5(MARK(first(first(y0, y1), cons(y2, y3)))) MARK(first(first(from(y0), cons(y1, y2)), 0)) -> c5(MARK(first(from(y0), cons(y1, y2)))) MARK(first(first(s(y0), cons(y1, y2)), 0)) -> c5(MARK(first(s(y0), cons(y1, y2)))) MARK(first(first(cons(y0, y1), cons(y2, y3)), 0)) -> c5(MARK(first(cons(y0, y1), cons(y2, y3)))) MARK(first(first(first(y0, first(y1, y2)), y3), 0)) -> c5(MARK(first(first(y0, first(y1, y2)), y3))) MARK(first(first(first(y0, from(y1)), y2), 0)) -> c5(MARK(first(first(y0, from(y1)), y2))) MARK(first(first(first(y0, 0), y1), 0)) -> c5(MARK(first(first(y0, 0), y1))) MARK(first(first(first(y0, nil), y1), 0)) -> c5(MARK(first(first(y0, nil), y1))) MARK(first(first(first(y0, s(y1)), y2), 0)) -> c5(MARK(first(first(y0, s(y1)), y2))) MARK(first(first(first(y0, cons(y1, y2)), y3), 0)) -> c5(MARK(first(first(y0, cons(y1, y2)), y3))) MARK(first(first(first(first(y0, y1), y2), y3), 0)) -> c5(MARK(first(first(first(y0, y1), y2), y3))) MARK(first(first(first(from(y0), y1), y2), 0)) -> c5(MARK(first(first(from(y0), y1), y2))) MARK(first(first(first(0, y0), y1), 0)) -> c5(MARK(first(first(0, y0), y1))) MARK(first(first(first(nil, y0), y1), 0)) -> c5(MARK(first(first(nil, y0), y1))) MARK(first(first(first(s(y0), y1), y2), 0)) -> c5(MARK(first(first(s(y0), y1), y2))) MARK(first(first(first(cons(y0, y1), y2), y3), 0)) -> c5(MARK(first(first(cons(y0, y1), y2), y3))) MARK(first(first(first(y0, y1), 0), 0)) -> c5(MARK(first(first(y0, y1), 0))) MARK(first(first(first(y0, y1), nil), 0)) -> c5(MARK(first(first(y0, y1), nil))) MARK(first(first(first(y0, y1), s(y2)), 0)) -> c5(MARK(first(first(y0, y1), s(y2)))) MARK(first(first(first(y0, y1), y2), 0)) -> c5(MARK(first(first(y0, y1), y2))) MARK(first(first(from(first(y0, y1)), y2), 0)) -> c5(MARK(first(from(first(y0, y1)), y2))) MARK(first(first(from(from(y0)), y1), 0)) -> c5(MARK(first(from(from(y0)), y1))) MARK(first(first(from(s(y0)), y1), 0)) -> c5(MARK(first(from(s(y0)), y1))) MARK(first(first(from(cons(y0, y1)), y2), 0)) -> c5(MARK(first(from(cons(y0, y1)), y2))) MARK(first(first(from(y0), y1), 0)) -> c5(MARK(first(from(y0), y1))) MARK(first(first(from(y0), 0), 0)) -> c5(MARK(first(from(y0), 0))) MARK(first(first(from(y0), nil), 0)) -> c5(MARK(first(from(y0), nil))) MARK(first(first(from(y0), s(y1)), 0)) -> c5(MARK(first(from(y0), s(y1)))) MARK(first(first(s(first(y0, y1)), y2), 0)) -> c5(MARK(first(s(first(y0, y1)), y2))) MARK(first(first(s(from(y0)), y1), 0)) -> c5(MARK(first(s(from(y0)), y1))) MARK(first(first(s(s(y0)), y1), 0)) -> c5(MARK(first(s(s(y0)), y1))) MARK(first(first(s(cons(y0, y1)), y2), 0)) -> c5(MARK(first(s(cons(y0, y1)), y2))) MARK(first(first(s(y0), y1), 0)) -> c5(MARK(first(s(y0), y1))) MARK(first(first(s(y0), 0), 0)) -> c5(MARK(first(s(y0), 0))) MARK(first(first(s(y0), nil), 0)) -> c5(MARK(first(s(y0), nil))) MARK(first(first(s(y0), s(y1)), 0)) -> c5(MARK(first(s(y0), s(y1)))) MARK(first(first(0, first(y0, y1)), 0)) -> c5(MARK(first(0, first(y0, y1)))) MARK(first(first(nil, first(y0, y1)), 0)) -> c5(MARK(first(nil, first(y0, y1)))) MARK(first(first(0, from(y0)), 0)) -> c5(MARK(first(0, from(y0)))) MARK(first(first(nil, from(y0)), 0)) -> c5(MARK(first(nil, from(y0)))) MARK(first(first(y0, cons(y1, y2)), 0)) -> c5(MARK(first(y0, cons(y1, y2)))) MARK(first(first(0, cons(y0, y1)), 0)) -> c5(MARK(first(0, cons(y0, y1)))) MARK(first(first(nil, cons(y0, y1)), 0)) -> c5(MARK(first(nil, cons(y0, y1)))) MARK(first(first(from(0), y0), 0)) -> c5(MARK(first(from(0), y0))) MARK(first(first(from(nil), y0), 0)) -> c5(MARK(first(from(nil), y0))) MARK(first(first(s(0), y0), 0)) -> c5(MARK(first(s(0), y0))) MARK(first(first(s(nil), y0), 0)) -> c5(MARK(first(s(nil), y0))) MARK(first(first(y0, cons(0, y1)), 0)) -> c5(MARK(first(y0, cons(0, y1)))) MARK(first(first(y0, cons(nil, y1)), 0)) -> c5(MARK(first(y0, cons(nil, y1)))) MARK(first(from(s(y0)), 0)) -> c5(MARK(from(s(y0)))) MARK(first(from(cons(y0, y1)), 0)) -> c5(MARK(from(cons(y0, y1)))) MARK(first(from(first(y0, y1)), 0)) -> c5(MARK(from(first(y0, y1)))) MARK(first(from(first(y0, first(y1, y2))), 0)) -> c5(MARK(from(first(y0, first(y1, y2))))) MARK(first(from(first(y0, from(y1))), 0)) -> c5(MARK(from(first(y0, from(y1))))) MARK(first(from(first(y0, 0)), 0)) -> c5(MARK(from(first(y0, 0)))) MARK(first(from(first(y0, nil)), 0)) -> c5(MARK(from(first(y0, nil)))) MARK(first(from(first(y0, s(y1))), 0)) -> c5(MARK(from(first(y0, s(y1))))) MARK(first(from(first(y0, cons(y1, y2))), 0)) -> c5(MARK(from(first(y0, cons(y1, y2))))) MARK(first(from(first(first(y0, y1), y2)), 0)) -> c5(MARK(from(first(first(y0, y1), y2)))) MARK(first(from(first(from(y0), y1)), 0)) -> c5(MARK(from(first(from(y0), y1)))) MARK(first(from(first(0, y0)), 0)) -> c5(MARK(from(first(0, y0)))) MARK(first(from(first(nil, y0)), 0)) -> c5(MARK(from(first(nil, y0)))) MARK(first(from(first(s(y0), y1)), 0)) -> c5(MARK(from(first(s(y0), y1)))) MARK(first(from(first(cons(y0, y1), y2)), 0)) -> c5(MARK(from(first(cons(y0, y1), y2)))) MARK(first(from(from(y0)), 0)) -> c5(MARK(from(from(y0)))) MARK(first(from(from(first(y0, y1))), 0)) -> c5(MARK(from(from(first(y0, y1))))) MARK(first(from(from(from(y0))), 0)) -> c5(MARK(from(from(from(y0))))) MARK(first(from(from(s(y0))), 0)) -> c5(MARK(from(from(s(y0))))) MARK(first(from(from(cons(y0, y1))), 0)) -> c5(MARK(from(from(cons(y0, y1))))) MARK(first(from(from(0)), 0)) -> c5(MARK(from(from(0)))) MARK(first(from(from(nil)), 0)) -> c5(MARK(from(from(nil)))) MARK(first(s(s(y0)), 0)) -> c5(MARK(s(s(y0)))) MARK(first(s(cons(y0, y1)), 0)) -> c5(MARK(s(cons(y0, y1)))) MARK(first(s(first(y0, 0)), 0)) -> c5(MARK(s(first(y0, 0)))) MARK(first(s(first(y0, nil)), 0)) -> c5(MARK(s(first(y0, nil)))) MARK(first(s(first(y0, s(y1))), 0)) -> c5(MARK(s(first(y0, s(y1))))) MARK(first(s(first(cons(y0, y1), y2)), 0)) -> c5(MARK(s(first(cons(y0, y1), y2)))) MARK(first(s(first(0, y0)), 0)) -> c5(MARK(s(first(0, y0)))) MARK(first(s(first(nil, y0)), 0)) -> c5(MARK(s(first(nil, y0)))) MARK(first(s(first(y0, first(y1, first(y2, y3)))), 0)) -> c5(MARK(s(first(y0, first(y1, first(y2, y3)))))) MARK(first(s(first(y0, first(y1, from(y2)))), 0)) -> c5(MARK(s(first(y0, first(y1, from(y2)))))) MARK(first(s(first(y0, first(y1, 0))), 0)) -> c5(MARK(s(first(y0, first(y1, 0))))) MARK(first(s(first(y0, first(y1, nil))), 0)) -> c5(MARK(s(first(y0, first(y1, nil))))) MARK(first(s(first(y0, first(y1, s(y2)))), 0)) -> c5(MARK(s(first(y0, first(y1, s(y2)))))) MARK(first(s(first(y0, first(y1, cons(y2, y3)))), 0)) -> c5(MARK(s(first(y0, first(y1, cons(y2, y3)))))) MARK(first(s(first(y0, first(first(y1, y2), y3))), 0)) -> c5(MARK(s(first(y0, first(first(y1, y2), y3))))) MARK(first(s(first(y0, first(from(y1), y2))), 0)) -> c5(MARK(s(first(y0, first(from(y1), y2))))) MARK(first(s(first(y0, first(0, y1))), 0)) -> c5(MARK(s(first(y0, first(0, y1))))) MARK(first(s(first(y0, first(nil, y1))), 0)) -> c5(MARK(s(first(y0, first(nil, y1))))) MARK(first(s(first(y0, first(s(y1), y2))), 0)) -> c5(MARK(s(first(y0, first(s(y1), y2))))) MARK(first(s(first(y0, first(cons(y1, y2), y3))), 0)) -> c5(MARK(s(first(y0, first(cons(y1, y2), y3))))) MARK(first(s(first(first(y0, y1), first(y2, y3))), 0)) -> c5(MARK(s(first(first(y0, y1), first(y2, y3))))) MARK(first(s(first(from(y0), first(y1, y2))), 0)) -> c5(MARK(s(first(from(y0), first(y1, y2))))) MARK(first(s(first(s(y0), first(y1, y2))), 0)) -> c5(MARK(s(first(s(y0), first(y1, y2))))) MARK(first(s(first(y0, first(y1, y2))), 0)) -> c5(MARK(s(first(y0, first(y1, y2))))) MARK(first(s(first(cons(y0, y1), first(y2, y3))), 0)) -> c5(MARK(s(first(cons(y0, y1), first(y2, y3))))) MARK(first(s(first(y0, from(y1))), 0)) -> c5(MARK(s(first(y0, from(y1))))) MARK(first(s(first(y0, from(first(y1, y2)))), 0)) -> c5(MARK(s(first(y0, from(first(y1, y2)))))) MARK(first(s(first(y0, from(from(y1)))), 0)) -> c5(MARK(s(first(y0, from(from(y1)))))) MARK(first(s(first(y0, from(0))), 0)) -> c5(MARK(s(first(y0, from(0))))) MARK(first(s(first(y0, from(nil))), 0)) -> c5(MARK(s(first(y0, from(nil))))) MARK(first(s(first(y0, from(s(y1)))), 0)) -> c5(MARK(s(first(y0, from(s(y1)))))) MARK(first(s(first(y0, from(cons(y1, y2)))), 0)) -> c5(MARK(s(first(y0, from(cons(y1, y2)))))) MARK(first(s(first(first(y0, y1), from(y2))), 0)) -> c5(MARK(s(first(first(y0, y1), from(y2))))) MARK(first(s(first(from(y0), from(y1))), 0)) -> c5(MARK(s(first(from(y0), from(y1))))) MARK(first(s(first(s(y0), from(y1))), 0)) -> c5(MARK(s(first(s(y0), from(y1))))) MARK(first(s(first(cons(y0, y1), from(y2))), 0)) -> c5(MARK(s(first(cons(y0, y1), from(y2))))) MARK(first(s(first(y0, cons(first(y1, y2), y3))), 0)) -> c5(MARK(s(first(y0, cons(first(y1, y2), y3))))) MARK(first(s(first(y0, cons(from(y1), y2))), 0)) -> c5(MARK(s(first(y0, cons(from(y1), y2))))) MARK(first(s(first(y0, cons(s(y1), y2))), 0)) -> c5(MARK(s(first(y0, cons(s(y1), y2))))) MARK(first(s(first(y0, cons(cons(y1, y2), y3))), 0)) -> c5(MARK(s(first(y0, cons(cons(y1, y2), y3))))) MARK(first(s(first(first(y0, y1), cons(y2, y3))), 0)) -> c5(MARK(s(first(first(y0, y1), cons(y2, y3))))) MARK(first(s(first(from(y0), cons(y1, y2))), 0)) -> c5(MARK(s(first(from(y0), cons(y1, y2))))) MARK(first(s(first(s(y0), cons(y1, y2))), 0)) -> c5(MARK(s(first(s(y0), cons(y1, y2))))) MARK(first(s(first(cons(y0, y1), cons(y2, y3))), 0)) -> c5(MARK(s(first(cons(y0, y1), cons(y2, y3))))) MARK(first(s(first(first(y0, first(y1, y2)), y3)), 0)) -> c5(MARK(s(first(first(y0, first(y1, y2)), y3)))) MARK(first(s(first(first(y0, from(y1)), y2)), 0)) -> c5(MARK(s(first(first(y0, from(y1)), y2)))) MARK(first(s(first(first(y0, 0), y1)), 0)) -> c5(MARK(s(first(first(y0, 0), y1)))) MARK(first(s(first(first(y0, nil), y1)), 0)) -> c5(MARK(s(first(first(y0, nil), y1)))) MARK(first(s(first(first(y0, s(y1)), y2)), 0)) -> c5(MARK(s(first(first(y0, s(y1)), y2)))) MARK(first(s(first(first(y0, cons(y1, y2)), y3)), 0)) -> c5(MARK(s(first(first(y0, cons(y1, y2)), y3)))) MARK(first(s(first(first(first(y0, y1), y2), y3)), 0)) -> c5(MARK(s(first(first(first(y0, y1), y2), y3)))) MARK(first(s(first(first(from(y0), y1), y2)), 0)) -> c5(MARK(s(first(first(from(y0), y1), y2)))) MARK(first(s(first(first(0, y0), y1)), 0)) -> c5(MARK(s(first(first(0, y0), y1)))) MARK(first(s(first(first(nil, y0), y1)), 0)) -> c5(MARK(s(first(first(nil, y0), y1)))) MARK(first(s(first(first(s(y0), y1), y2)), 0)) -> c5(MARK(s(first(first(s(y0), y1), y2)))) MARK(first(s(first(first(cons(y0, y1), y2), y3)), 0)) -> c5(MARK(s(first(first(cons(y0, y1), y2), y3)))) MARK(first(s(first(first(y0, y1), 0)), 0)) -> c5(MARK(s(first(first(y0, y1), 0)))) MARK(first(s(first(first(y0, y1), nil)), 0)) -> c5(MARK(s(first(first(y0, y1), nil)))) MARK(first(s(first(first(y0, y1), s(y2))), 0)) -> c5(MARK(s(first(first(y0, y1), s(y2))))) MARK(first(s(first(first(y0, y1), y2)), 0)) -> c5(MARK(s(first(first(y0, y1), y2)))) MARK(first(s(first(from(first(y0, y1)), y2)), 0)) -> c5(MARK(s(first(from(first(y0, y1)), y2)))) MARK(first(s(first(from(from(y0)), y1)), 0)) -> c5(MARK(s(first(from(from(y0)), y1)))) MARK(first(s(first(from(s(y0)), y1)), 0)) -> c5(MARK(s(first(from(s(y0)), y1)))) MARK(first(s(first(from(cons(y0, y1)), y2)), 0)) -> c5(MARK(s(first(from(cons(y0, y1)), y2)))) MARK(first(s(first(from(y0), y1)), 0)) -> c5(MARK(s(first(from(y0), y1)))) MARK(first(s(first(from(y0), 0)), 0)) -> c5(MARK(s(first(from(y0), 0)))) MARK(first(s(first(from(y0), nil)), 0)) -> c5(MARK(s(first(from(y0), nil)))) MARK(first(s(first(from(y0), s(y1))), 0)) -> c5(MARK(s(first(from(y0), s(y1))))) MARK(first(s(first(s(first(y0, y1)), y2)), 0)) -> c5(MARK(s(first(s(first(y0, y1)), y2)))) MARK(first(s(first(s(from(y0)), y1)), 0)) -> c5(MARK(s(first(s(from(y0)), y1)))) MARK(first(s(first(s(0), y0)), 0)) -> c5(MARK(s(first(s(0), y0)))) MARK(first(s(first(s(nil), y0)), 0)) -> c5(MARK(s(first(s(nil), y0)))) MARK(first(s(first(s(s(y0)), y1)), 0)) -> c5(MARK(s(first(s(s(y0)), y1)))) MARK(first(s(first(s(cons(y0, y1)), y2)), 0)) -> c5(MARK(s(first(s(cons(y0, y1)), y2)))) MARK(first(s(first(s(y0), y1)), 0)) -> c5(MARK(s(first(s(y0), y1)))) MARK(first(s(first(s(y0), 0)), 0)) -> c5(MARK(s(first(s(y0), 0)))) MARK(first(s(first(s(y0), nil)), 0)) -> c5(MARK(s(first(s(y0), nil)))) MARK(first(s(first(s(y0), s(y1))), 0)) -> c5(MARK(s(first(s(y0), s(y1))))) MARK(first(s(first(0, first(y0, y1))), 0)) -> c5(MARK(s(first(0, first(y0, y1))))) MARK(first(s(first(nil, first(y0, y1))), 0)) -> c5(MARK(s(first(nil, first(y0, y1))))) MARK(first(s(first(0, from(y0))), 0)) -> c5(MARK(s(first(0, from(y0))))) MARK(first(s(first(nil, from(y0))), 0)) -> c5(MARK(s(first(nil, from(y0))))) MARK(first(s(first(y0, cons(y1, y2))), 0)) -> c5(MARK(s(first(y0, cons(y1, y2))))) MARK(first(s(first(0, cons(y0, y1))), 0)) -> c5(MARK(s(first(0, cons(y0, y1))))) MARK(first(s(first(nil, cons(y0, y1))), 0)) -> c5(MARK(s(first(nil, cons(y0, y1))))) MARK(first(s(first(from(0), y0)), 0)) -> c5(MARK(s(first(from(0), y0)))) MARK(first(s(first(from(nil), y0)), 0)) -> c5(MARK(s(first(from(nil), y0)))) MARK(first(s(first(y0, cons(0, y1))), 0)) -> c5(MARK(s(first(y0, cons(0, y1))))) MARK(first(s(first(y0, cons(nil, y1))), 0)) -> c5(MARK(s(first(y0, cons(nil, y1))))) MARK(first(s(from(s(y0))), 0)) -> c5(MARK(s(from(s(y0))))) MARK(first(s(from(cons(y0, y1))), 0)) -> c5(MARK(s(from(cons(y0, y1))))) MARK(first(s(from(first(y0, y1))), 0)) -> c5(MARK(s(from(first(y0, y1))))) MARK(first(s(from(first(y0, first(y1, y2)))), 0)) -> c5(MARK(s(from(first(y0, first(y1, y2)))))) MARK(first(s(from(first(y0, from(y1)))), 0)) -> c5(MARK(s(from(first(y0, from(y1)))))) MARK(first(s(from(first(y0, 0))), 0)) -> c5(MARK(s(from(first(y0, 0))))) MARK(first(s(from(first(y0, nil))), 0)) -> c5(MARK(s(from(first(y0, nil))))) MARK(first(s(from(first(y0, s(y1)))), 0)) -> c5(MARK(s(from(first(y0, s(y1)))))) MARK(first(s(from(first(y0, cons(y1, y2)))), 0)) -> c5(MARK(s(from(first(y0, cons(y1, y2)))))) MARK(first(s(from(first(first(y0, y1), y2))), 0)) -> c5(MARK(s(from(first(first(y0, y1), y2))))) MARK(first(s(from(first(from(y0), y1))), 0)) -> c5(MARK(s(from(first(from(y0), y1))))) MARK(first(s(from(first(0, y0))), 0)) -> c5(MARK(s(from(first(0, y0))))) MARK(first(s(from(first(nil, y0))), 0)) -> c5(MARK(s(from(first(nil, y0))))) MARK(first(s(from(first(s(y0), y1))), 0)) -> c5(MARK(s(from(first(s(y0), y1))))) MARK(first(s(from(first(cons(y0, y1), y2))), 0)) -> c5(MARK(s(from(first(cons(y0, y1), y2))))) MARK(first(s(from(from(y0))), 0)) -> c5(MARK(s(from(from(y0))))) MARK(first(s(from(from(first(y0, y1)))), 0)) -> c5(MARK(s(from(from(first(y0, y1)))))) MARK(first(s(from(from(from(y0)))), 0)) -> c5(MARK(s(from(from(from(y0)))))) MARK(first(s(from(from(s(y0)))), 0)) -> c5(MARK(s(from(from(s(y0)))))) MARK(first(s(from(from(cons(y0, y1)))), 0)) -> c5(MARK(s(from(from(cons(y0, y1)))))) MARK(first(s(from(from(0))), 0)) -> c5(MARK(s(from(from(0))))) MARK(first(s(from(from(nil))), 0)) -> c5(MARK(s(from(from(nil))))) MARK(first(cons(cons(y0, y1), y2), 0)) -> c5(MARK(cons(cons(y0, y1), y2))) MARK(first(cons(first(y0, 0), y1), 0)) -> c5(MARK(cons(first(y0, 0), y1))) MARK(first(cons(first(y0, nil), y1), 0)) -> c5(MARK(cons(first(y0, nil), y1))) MARK(first(cons(first(y0, s(y1)), y2), 0)) -> c5(MARK(cons(first(y0, s(y1)), y2))) MARK(first(cons(first(cons(y0, y1), y2), y3), 0)) -> c5(MARK(cons(first(cons(y0, y1), y2), y3))) MARK(first(cons(first(0, y0), y1), 0)) -> c5(MARK(cons(first(0, y0), y1))) MARK(first(cons(first(nil, y0), y1), 0)) -> c5(MARK(cons(first(nil, y0), y1))) MARK(first(cons(first(y0, first(y1, first(y2, y3))), y4), 0)) -> c5(MARK(cons(first(y0, first(y1, first(y2, y3))), y4))) MARK(first(cons(first(y0, first(y1, from(y2))), y3), 0)) -> c5(MARK(cons(first(y0, first(y1, from(y2))), y3))) MARK(first(cons(first(y0, first(y1, 0)), y2), 0)) -> c5(MARK(cons(first(y0, first(y1, 0)), y2))) MARK(first(cons(first(y0, first(y1, nil)), y2), 0)) -> c5(MARK(cons(first(y0, first(y1, nil)), y2))) MARK(first(cons(first(y0, first(y1, s(y2))), y3), 0)) -> c5(MARK(cons(first(y0, first(y1, s(y2))), y3))) MARK(first(cons(first(y0, first(y1, cons(y2, y3))), y4), 0)) -> c5(MARK(cons(first(y0, first(y1, cons(y2, y3))), y4))) MARK(first(cons(first(y0, first(first(y1, y2), y3)), y4), 0)) -> c5(MARK(cons(first(y0, first(first(y1, y2), y3)), y4))) MARK(first(cons(first(y0, first(from(y1), y2)), y3), 0)) -> c5(MARK(cons(first(y0, first(from(y1), y2)), y3))) MARK(first(cons(first(y0, first(0, y1)), y2), 0)) -> c5(MARK(cons(first(y0, first(0, y1)), y2))) MARK(first(cons(first(y0, first(nil, y1)), y2), 0)) -> c5(MARK(cons(first(y0, first(nil, y1)), y2))) MARK(first(cons(first(y0, first(s(y1), y2)), y3), 0)) -> c5(MARK(cons(first(y0, first(s(y1), y2)), y3))) MARK(first(cons(first(y0, first(cons(y1, y2), y3)), y4), 0)) -> c5(MARK(cons(first(y0, first(cons(y1, y2), y3)), y4))) MARK(first(cons(first(first(y0, y1), first(y2, y3)), y4), 0)) -> c5(MARK(cons(first(first(y0, y1), first(y2, y3)), y4))) MARK(first(cons(first(from(y0), first(y1, y2)), y3), 0)) -> c5(MARK(cons(first(from(y0), first(y1, y2)), y3))) MARK(first(cons(first(s(y0), first(y1, y2)), y3), 0)) -> c5(MARK(cons(first(s(y0), first(y1, y2)), y3))) MARK(first(cons(first(y0, first(y1, y2)), y3), 0)) -> c5(MARK(cons(first(y0, first(y1, y2)), y3))) MARK(first(cons(first(cons(y0, y1), first(y2, y3)), y4), 0)) -> c5(MARK(cons(first(cons(y0, y1), first(y2, y3)), y4))) MARK(first(cons(first(y0, from(y1)), y2), 0)) -> c5(MARK(cons(first(y0, from(y1)), y2))) MARK(first(cons(first(y0, from(first(y1, y2))), y3), 0)) -> c5(MARK(cons(first(y0, from(first(y1, y2))), y3))) MARK(first(cons(first(y0, from(from(y1))), y2), 0)) -> c5(MARK(cons(first(y0, from(from(y1))), y2))) MARK(first(cons(first(y0, from(0)), y1), 0)) -> c5(MARK(cons(first(y0, from(0)), y1))) MARK(first(cons(first(y0, from(nil)), y1), 0)) -> c5(MARK(cons(first(y0, from(nil)), y1))) MARK(first(cons(first(y0, from(s(y1))), y2), 0)) -> c5(MARK(cons(first(y0, from(s(y1))), y2))) MARK(first(cons(first(y0, from(cons(y1, y2))), y3), 0)) -> c5(MARK(cons(first(y0, from(cons(y1, y2))), y3))) MARK(first(cons(first(first(y0, y1), from(y2)), y3), 0)) -> c5(MARK(cons(first(first(y0, y1), from(y2)), y3))) MARK(first(cons(first(from(y0), from(y1)), y2), 0)) -> c5(MARK(cons(first(from(y0), from(y1)), y2))) MARK(first(cons(first(s(y0), from(y1)), y2), 0)) -> c5(MARK(cons(first(s(y0), from(y1)), y2))) MARK(first(cons(first(cons(y0, y1), from(y2)), y3), 0)) -> c5(MARK(cons(first(cons(y0, y1), from(y2)), y3))) MARK(first(cons(first(y0, cons(first(y1, y2), y3)), y4), 0)) -> c5(MARK(cons(first(y0, cons(first(y1, y2), y3)), y4))) MARK(first(cons(first(y0, cons(from(y1), y2)), y3), 0)) -> c5(MARK(cons(first(y0, cons(from(y1), y2)), y3))) MARK(first(cons(first(y0, cons(s(y1), y2)), y3), 0)) -> c5(MARK(cons(first(y0, cons(s(y1), y2)), y3))) MARK(first(cons(first(y0, cons(cons(y1, y2), y3)), y4), 0)) -> c5(MARK(cons(first(y0, cons(cons(y1, y2), y3)), y4))) MARK(first(cons(first(first(y0, y1), cons(y2, y3)), y4), 0)) -> c5(MARK(cons(first(first(y0, y1), cons(y2, y3)), y4))) MARK(first(cons(first(from(y0), cons(y1, y2)), y3), 0)) -> c5(MARK(cons(first(from(y0), cons(y1, y2)), y3))) MARK(first(cons(first(s(y0), cons(y1, y2)), y3), 0)) -> c5(MARK(cons(first(s(y0), cons(y1, y2)), y3))) MARK(first(cons(first(cons(y0, y1), cons(y2, y3)), y4), 0)) -> c5(MARK(cons(first(cons(y0, y1), cons(y2, y3)), y4))) MARK(first(cons(first(first(y0, first(y1, y2)), y3), y4), 0)) -> c5(MARK(cons(first(first(y0, first(y1, y2)), y3), y4))) MARK(first(cons(first(first(y0, from(y1)), y2), y3), 0)) -> c5(MARK(cons(first(first(y0, from(y1)), y2), y3))) MARK(first(cons(first(first(y0, 0), y1), y2), 0)) -> c5(MARK(cons(first(first(y0, 0), y1), y2))) MARK(first(cons(first(first(y0, nil), y1), y2), 0)) -> c5(MARK(cons(first(first(y0, nil), y1), y2))) MARK(first(cons(first(first(y0, s(y1)), y2), y3), 0)) -> c5(MARK(cons(first(first(y0, s(y1)), y2), y3))) MARK(first(cons(first(first(y0, cons(y1, y2)), y3), y4), 0)) -> c5(MARK(cons(first(first(y0, cons(y1, y2)), y3), y4))) MARK(first(cons(first(first(first(y0, y1), y2), y3), y4), 0)) -> c5(MARK(cons(first(first(first(y0, y1), y2), y3), y4))) MARK(first(cons(first(first(from(y0), y1), y2), y3), 0)) -> c5(MARK(cons(first(first(from(y0), y1), y2), y3))) MARK(first(cons(first(first(0, y0), y1), y2), 0)) -> c5(MARK(cons(first(first(0, y0), y1), y2))) MARK(first(cons(first(first(nil, y0), y1), y2), 0)) -> c5(MARK(cons(first(first(nil, y0), y1), y2))) MARK(first(cons(first(first(s(y0), y1), y2), y3), 0)) -> c5(MARK(cons(first(first(s(y0), y1), y2), y3))) MARK(first(cons(first(first(cons(y0, y1), y2), y3), y4), 0)) -> c5(MARK(cons(first(first(cons(y0, y1), y2), y3), y4))) MARK(first(cons(first(first(y0, y1), 0), y2), 0)) -> c5(MARK(cons(first(first(y0, y1), 0), y2))) MARK(first(cons(first(first(y0, y1), nil), y2), 0)) -> c5(MARK(cons(first(first(y0, y1), nil), y2))) MARK(first(cons(first(first(y0, y1), s(y2)), y3), 0)) -> c5(MARK(cons(first(first(y0, y1), s(y2)), y3))) MARK(first(cons(first(first(y0, y1), y2), y3), 0)) -> c5(MARK(cons(first(first(y0, y1), y2), y3))) MARK(first(cons(first(from(first(y0, y1)), y2), y3), 0)) -> c5(MARK(cons(first(from(first(y0, y1)), y2), y3))) MARK(first(cons(first(from(from(y0)), y1), y2), 0)) -> c5(MARK(cons(first(from(from(y0)), y1), y2))) MARK(first(cons(first(from(s(y0)), y1), y2), 0)) -> c5(MARK(cons(first(from(s(y0)), y1), y2))) MARK(first(cons(first(from(cons(y0, y1)), y2), y3), 0)) -> c5(MARK(cons(first(from(cons(y0, y1)), y2), y3))) MARK(first(cons(first(from(y0), y1), y2), 0)) -> c5(MARK(cons(first(from(y0), y1), y2))) MARK(first(cons(first(from(y0), 0), y1), 0)) -> c5(MARK(cons(first(from(y0), 0), y1))) MARK(first(cons(first(from(y0), nil), y1), 0)) -> c5(MARK(cons(first(from(y0), nil), y1))) MARK(first(cons(first(from(y0), s(y1)), y2), 0)) -> c5(MARK(cons(first(from(y0), s(y1)), y2))) MARK(first(cons(first(s(first(y0, y1)), y2), y3), 0)) -> c5(MARK(cons(first(s(first(y0, y1)), y2), y3))) MARK(first(cons(first(s(from(y0)), y1), y2), 0)) -> c5(MARK(cons(first(s(from(y0)), y1), y2))) MARK(first(cons(first(s(s(y0)), y1), y2), 0)) -> c5(MARK(cons(first(s(s(y0)), y1), y2))) MARK(first(cons(first(s(cons(y0, y1)), y2), y3), 0)) -> c5(MARK(cons(first(s(cons(y0, y1)), y2), y3))) MARK(first(cons(first(s(y0), y1), y2), 0)) -> c5(MARK(cons(first(s(y0), y1), y2))) MARK(first(cons(first(s(y0), 0), y1), 0)) -> c5(MARK(cons(first(s(y0), 0), y1))) MARK(first(cons(first(s(y0), nil), y1), 0)) -> c5(MARK(cons(first(s(y0), nil), y1))) MARK(first(cons(first(s(y0), s(y1)), y2), 0)) -> c5(MARK(cons(first(s(y0), s(y1)), y2))) MARK(first(cons(first(0, first(y0, y1)), y2), 0)) -> c5(MARK(cons(first(0, first(y0, y1)), y2))) MARK(first(cons(first(nil, first(y0, y1)), y2), 0)) -> c5(MARK(cons(first(nil, first(y0, y1)), y2))) MARK(first(cons(first(0, from(y0)), y1), 0)) -> c5(MARK(cons(first(0, from(y0)), y1))) MARK(first(cons(first(nil, from(y0)), y1), 0)) -> c5(MARK(cons(first(nil, from(y0)), y1))) MARK(first(cons(first(y0, cons(y1, y2)), y3), 0)) -> c5(MARK(cons(first(y0, cons(y1, y2)), y3))) MARK(first(cons(first(0, cons(y0, y1)), y2), 0)) -> c5(MARK(cons(first(0, cons(y0, y1)), y2))) MARK(first(cons(first(nil, cons(y0, y1)), y2), 0)) -> c5(MARK(cons(first(nil, cons(y0, y1)), y2))) MARK(first(cons(first(from(0), y0), y1), 0)) -> c5(MARK(cons(first(from(0), y0), y1))) MARK(first(cons(first(from(nil), y0), y1), 0)) -> c5(MARK(cons(first(from(nil), y0), y1))) MARK(first(cons(first(s(0), y0), y1), 0)) -> c5(MARK(cons(first(s(0), y0), y1))) MARK(first(cons(first(s(nil), y0), y1), 0)) -> c5(MARK(cons(first(s(nil), y0), y1))) MARK(first(cons(first(y0, cons(0, y1)), y2), 0)) -> c5(MARK(cons(first(y0, cons(0, y1)), y2))) MARK(first(cons(first(y0, cons(nil, y1)), y2), 0)) -> c5(MARK(cons(first(y0, cons(nil, y1)), y2))) MARK(first(cons(from(s(y0)), y1), 0)) -> c5(MARK(cons(from(s(y0)), y1))) MARK(first(cons(from(cons(y0, y1)), y2), 0)) -> c5(MARK(cons(from(cons(y0, y1)), y2))) MARK(first(cons(from(first(y0, y1)), y2), 0)) -> c5(MARK(cons(from(first(y0, y1)), y2))) MARK(first(cons(from(first(y0, first(y1, y2))), y3), 0)) -> c5(MARK(cons(from(first(y0, first(y1, y2))), y3))) MARK(first(cons(from(first(y0, from(y1))), y2), 0)) -> c5(MARK(cons(from(first(y0, from(y1))), y2))) MARK(first(cons(from(first(y0, 0)), y1), 0)) -> c5(MARK(cons(from(first(y0, 0)), y1))) MARK(first(cons(from(first(y0, nil)), y1), 0)) -> c5(MARK(cons(from(first(y0, nil)), y1))) MARK(first(cons(from(first(y0, s(y1))), y2), 0)) -> c5(MARK(cons(from(first(y0, s(y1))), y2))) MARK(first(cons(from(first(y0, cons(y1, y2))), y3), 0)) -> c5(MARK(cons(from(first(y0, cons(y1, y2))), y3))) MARK(first(cons(from(first(first(y0, y1), y2)), y3), 0)) -> c5(MARK(cons(from(first(first(y0, y1), y2)), y3))) MARK(first(cons(from(first(from(y0), y1)), y2), 0)) -> c5(MARK(cons(from(first(from(y0), y1)), y2))) MARK(first(cons(from(first(0, y0)), y1), 0)) -> c5(MARK(cons(from(first(0, y0)), y1))) MARK(first(cons(from(first(nil, y0)), y1), 0)) -> c5(MARK(cons(from(first(nil, y0)), y1))) MARK(first(cons(from(first(s(y0), y1)), y2), 0)) -> c5(MARK(cons(from(first(s(y0), y1)), y2))) MARK(first(cons(from(first(cons(y0, y1), y2)), y3), 0)) -> c5(MARK(cons(from(first(cons(y0, y1), y2)), y3))) MARK(first(cons(from(from(y0)), y1), 0)) -> c5(MARK(cons(from(from(y0)), y1))) MARK(first(cons(from(from(first(y0, y1))), y2), 0)) -> c5(MARK(cons(from(from(first(y0, y1))), y2))) MARK(first(cons(from(from(from(y0))), y1), 0)) -> c5(MARK(cons(from(from(from(y0))), y1))) MARK(first(cons(from(from(s(y0))), y1), 0)) -> c5(MARK(cons(from(from(s(y0))), y1))) MARK(first(cons(from(from(cons(y0, y1))), y2), 0)) -> c5(MARK(cons(from(from(cons(y0, y1))), y2))) MARK(first(cons(from(from(0)), y0), 0)) -> c5(MARK(cons(from(from(0)), y0))) MARK(first(cons(from(from(nil)), y0), 0)) -> c5(MARK(cons(from(from(nil)), y0))) MARK(first(cons(s(s(y0)), y1), 0)) -> c5(MARK(cons(s(s(y0)), y1))) MARK(first(cons(s(cons(y0, y1)), y2), 0)) -> c5(MARK(cons(s(cons(y0, y1)), y2))) MARK(first(cons(s(first(y0, 0)), y1), 0)) -> c5(MARK(cons(s(first(y0, 0)), y1))) MARK(first(cons(s(first(y0, nil)), y1), 0)) -> c5(MARK(cons(s(first(y0, nil)), y1))) MARK(first(cons(s(first(y0, s(y1))), y2), 0)) -> c5(MARK(cons(s(first(y0, s(y1))), y2))) MARK(first(cons(s(first(cons(y0, y1), y2)), y3), 0)) -> c5(MARK(cons(s(first(cons(y0, y1), y2)), y3))) MARK(first(cons(s(first(0, y0)), y1), 0)) -> c5(MARK(cons(s(first(0, y0)), y1))) MARK(first(cons(s(first(nil, y0)), y1), 0)) -> c5(MARK(cons(s(first(nil, y0)), y1))) MARK(first(cons(s(first(y0, first(y1, first(y2, y3)))), y4), 0)) -> c5(MARK(cons(s(first(y0, first(y1, first(y2, y3)))), y4))) MARK(first(cons(s(first(y0, first(y1, from(y2)))), y3), 0)) -> c5(MARK(cons(s(first(y0, first(y1, from(y2)))), y3))) MARK(first(cons(s(first(y0, first(y1, 0))), y2), 0)) -> c5(MARK(cons(s(first(y0, first(y1, 0))), y2))) MARK(first(cons(s(first(y0, first(y1, nil))), y2), 0)) -> c5(MARK(cons(s(first(y0, first(y1, nil))), y2))) MARK(first(cons(s(first(y0, first(y1, s(y2)))), y3), 0)) -> c5(MARK(cons(s(first(y0, first(y1, s(y2)))), y3))) MARK(first(cons(s(first(y0, first(y1, cons(y2, y3)))), y4), 0)) -> c5(MARK(cons(s(first(y0, first(y1, cons(y2, y3)))), y4))) MARK(first(cons(s(first(y0, first(first(y1, y2), y3))), y4), 0)) -> c5(MARK(cons(s(first(y0, first(first(y1, y2), y3))), y4))) MARK(first(cons(s(first(y0, first(from(y1), y2))), y3), 0)) -> c5(MARK(cons(s(first(y0, first(from(y1), y2))), y3))) MARK(first(cons(s(first(y0, first(0, y1))), y2), 0)) -> c5(MARK(cons(s(first(y0, first(0, y1))), y2))) MARK(first(cons(s(first(y0, first(nil, y1))), y2), 0)) -> c5(MARK(cons(s(first(y0, first(nil, y1))), y2))) MARK(first(cons(s(first(y0, first(s(y1), y2))), y3), 0)) -> c5(MARK(cons(s(first(y0, first(s(y1), y2))), y3))) MARK(first(cons(s(first(y0, first(cons(y1, y2), y3))), y4), 0)) -> c5(MARK(cons(s(first(y0, first(cons(y1, y2), y3))), y4))) MARK(first(cons(s(first(first(y0, y1), first(y2, y3))), y4), 0)) -> c5(MARK(cons(s(first(first(y0, y1), first(y2, y3))), y4))) MARK(first(cons(s(first(from(y0), first(y1, y2))), y3), 0)) -> c5(MARK(cons(s(first(from(y0), first(y1, y2))), y3))) MARK(first(cons(s(first(s(y0), first(y1, y2))), y3), 0)) -> c5(MARK(cons(s(first(s(y0), first(y1, y2))), y3))) MARK(first(cons(s(first(y0, first(y1, y2))), y3), 0)) -> c5(MARK(cons(s(first(y0, first(y1, y2))), y3))) MARK(first(cons(s(first(cons(y0, y1), first(y2, y3))), y4), 0)) -> c5(MARK(cons(s(first(cons(y0, y1), first(y2, y3))), y4))) MARK(first(cons(s(first(y0, from(y1))), y2), 0)) -> c5(MARK(cons(s(first(y0, from(y1))), y2))) MARK(first(cons(s(first(y0, from(first(y1, y2)))), y3), 0)) -> c5(MARK(cons(s(first(y0, from(first(y1, y2)))), y3))) MARK(first(cons(s(first(y0, from(from(y1)))), y2), 0)) -> c5(MARK(cons(s(first(y0, from(from(y1)))), y2))) MARK(first(cons(s(first(y0, from(0))), y1), 0)) -> c5(MARK(cons(s(first(y0, from(0))), y1))) MARK(first(cons(s(first(y0, from(nil))), y1), 0)) -> c5(MARK(cons(s(first(y0, from(nil))), y1))) MARK(first(cons(s(first(y0, from(s(y1)))), y2), 0)) -> c5(MARK(cons(s(first(y0, from(s(y1)))), y2))) MARK(first(cons(s(first(y0, from(cons(y1, y2)))), y3), 0)) -> c5(MARK(cons(s(first(y0, from(cons(y1, y2)))), y3))) MARK(first(cons(s(first(first(y0, y1), from(y2))), y3), 0)) -> c5(MARK(cons(s(first(first(y0, y1), from(y2))), y3))) MARK(first(cons(s(first(from(y0), from(y1))), y2), 0)) -> c5(MARK(cons(s(first(from(y0), from(y1))), y2))) MARK(first(cons(s(first(s(y0), from(y1))), y2), 0)) -> c5(MARK(cons(s(first(s(y0), from(y1))), y2))) MARK(first(cons(s(first(cons(y0, y1), from(y2))), y3), 0)) -> c5(MARK(cons(s(first(cons(y0, y1), from(y2))), y3))) MARK(first(cons(s(first(y0, cons(first(y1, y2), y3))), y4), 0)) -> c5(MARK(cons(s(first(y0, cons(first(y1, y2), y3))), y4))) MARK(first(cons(s(first(y0, cons(from(y1), y2))), y3), 0)) -> c5(MARK(cons(s(first(y0, cons(from(y1), y2))), y3))) MARK(first(cons(s(first(y0, cons(s(y1), y2))), y3), 0)) -> c5(MARK(cons(s(first(y0, cons(s(y1), y2))), y3))) MARK(first(cons(s(first(y0, cons(cons(y1, y2), y3))), y4), 0)) -> c5(MARK(cons(s(first(y0, cons(cons(y1, y2), y3))), y4))) MARK(first(cons(s(first(first(y0, y1), cons(y2, y3))), y4), 0)) -> c5(MARK(cons(s(first(first(y0, y1), cons(y2, y3))), y4))) MARK(first(cons(s(first(from(y0), cons(y1, y2))), y3), 0)) -> c5(MARK(cons(s(first(from(y0), cons(y1, y2))), y3))) MARK(first(cons(s(first(s(y0), cons(y1, y2))), y3), 0)) -> c5(MARK(cons(s(first(s(y0), cons(y1, y2))), y3))) MARK(first(cons(s(first(cons(y0, y1), cons(y2, y3))), y4), 0)) -> c5(MARK(cons(s(first(cons(y0, y1), cons(y2, y3))), y4))) MARK(first(cons(s(first(first(y0, first(y1, y2)), y3)), y4), 0)) -> c5(MARK(cons(s(first(first(y0, first(y1, y2)), y3)), y4))) MARK(first(cons(s(first(first(y0, from(y1)), y2)), y3), 0)) -> c5(MARK(cons(s(first(first(y0, from(y1)), y2)), y3))) MARK(first(cons(s(first(first(y0, 0), y1)), y2), 0)) -> c5(MARK(cons(s(first(first(y0, 0), y1)), y2))) MARK(first(cons(s(first(first(y0, nil), y1)), y2), 0)) -> c5(MARK(cons(s(first(first(y0, nil), y1)), y2))) MARK(first(cons(s(first(first(y0, s(y1)), y2)), y3), 0)) -> c5(MARK(cons(s(first(first(y0, s(y1)), y2)), y3))) MARK(first(cons(s(first(first(y0, cons(y1, y2)), y3)), y4), 0)) -> c5(MARK(cons(s(first(first(y0, cons(y1, y2)), y3)), y4))) MARK(first(cons(s(first(first(first(y0, y1), y2), y3)), y4), 0)) -> c5(MARK(cons(s(first(first(first(y0, y1), y2), y3)), y4))) MARK(first(cons(s(first(first(from(y0), y1), y2)), y3), 0)) -> c5(MARK(cons(s(first(first(from(y0), y1), y2)), y3))) MARK(first(cons(s(first(first(0, y0), y1)), y2), 0)) -> c5(MARK(cons(s(first(first(0, y0), y1)), y2))) MARK(first(cons(s(first(first(nil, y0), y1)), y2), 0)) -> c5(MARK(cons(s(first(first(nil, y0), y1)), y2))) MARK(first(cons(s(first(first(s(y0), y1), y2)), y3), 0)) -> c5(MARK(cons(s(first(first(s(y0), y1), y2)), y3))) MARK(first(cons(s(first(first(cons(y0, y1), y2), y3)), y4), 0)) -> c5(MARK(cons(s(first(first(cons(y0, y1), y2), y3)), y4))) MARK(first(cons(s(first(first(y0, y1), 0)), y2), 0)) -> c5(MARK(cons(s(first(first(y0, y1), 0)), y2))) MARK(first(cons(s(first(first(y0, y1), nil)), y2), 0)) -> c5(MARK(cons(s(first(first(y0, y1), nil)), y2))) MARK(first(cons(s(first(first(y0, y1), s(y2))), y3), 0)) -> c5(MARK(cons(s(first(first(y0, y1), s(y2))), y3))) MARK(first(cons(s(first(first(y0, y1), y2)), y3), 0)) -> c5(MARK(cons(s(first(first(y0, y1), y2)), y3))) MARK(first(cons(s(first(from(first(y0, y1)), y2)), y3), 0)) -> c5(MARK(cons(s(first(from(first(y0, y1)), y2)), y3))) MARK(first(cons(s(first(from(from(y0)), y1)), y2), 0)) -> c5(MARK(cons(s(first(from(from(y0)), y1)), y2))) MARK(first(cons(s(first(from(s(y0)), y1)), y2), 0)) -> c5(MARK(cons(s(first(from(s(y0)), y1)), y2))) MARK(first(cons(s(first(from(cons(y0, y1)), y2)), y3), 0)) -> c5(MARK(cons(s(first(from(cons(y0, y1)), y2)), y3))) MARK(first(cons(s(first(from(y0), y1)), y2), 0)) -> c5(MARK(cons(s(first(from(y0), y1)), y2))) MARK(first(cons(s(first(from(y0), 0)), y1), 0)) -> c5(MARK(cons(s(first(from(y0), 0)), y1))) MARK(first(cons(s(first(from(y0), nil)), y1), 0)) -> c5(MARK(cons(s(first(from(y0), nil)), y1))) MARK(first(cons(s(first(from(y0), s(y1))), y2), 0)) -> c5(MARK(cons(s(first(from(y0), s(y1))), y2))) MARK(first(cons(s(first(s(first(y0, y1)), y2)), y3), 0)) -> c5(MARK(cons(s(first(s(first(y0, y1)), y2)), y3))) MARK(first(cons(s(first(s(from(y0)), y1)), y2), 0)) -> c5(MARK(cons(s(first(s(from(y0)), y1)), y2))) MARK(first(cons(s(first(s(0), y0)), y1), 0)) -> c5(MARK(cons(s(first(s(0), y0)), y1))) MARK(first(cons(s(first(s(nil), y0)), y1), 0)) -> c5(MARK(cons(s(first(s(nil), y0)), y1))) MARK(first(cons(s(first(s(s(y0)), y1)), y2), 0)) -> c5(MARK(cons(s(first(s(s(y0)), y1)), y2))) MARK(first(cons(s(first(s(cons(y0, y1)), y2)), y3), 0)) -> c5(MARK(cons(s(first(s(cons(y0, y1)), y2)), y3))) MARK(first(cons(s(first(s(y0), y1)), y2), 0)) -> c5(MARK(cons(s(first(s(y0), y1)), y2))) MARK(first(cons(s(first(s(y0), 0)), y1), 0)) -> c5(MARK(cons(s(first(s(y0), 0)), y1))) MARK(first(cons(s(first(s(y0), nil)), y1), 0)) -> c5(MARK(cons(s(first(s(y0), nil)), y1))) MARK(first(cons(s(first(s(y0), s(y1))), y2), 0)) -> c5(MARK(cons(s(first(s(y0), s(y1))), y2))) MARK(first(cons(s(first(0, first(y0, y1))), y2), 0)) -> c5(MARK(cons(s(first(0, first(y0, y1))), y2))) MARK(first(cons(s(first(nil, first(y0, y1))), y2), 0)) -> c5(MARK(cons(s(first(nil, first(y0, y1))), y2))) MARK(first(cons(s(first(0, from(y0))), y1), 0)) -> c5(MARK(cons(s(first(0, from(y0))), y1))) MARK(first(cons(s(first(nil, from(y0))), y1), 0)) -> c5(MARK(cons(s(first(nil, from(y0))), y1))) MARK(first(cons(s(first(y0, cons(y1, y2))), y3), 0)) -> c5(MARK(cons(s(first(y0, cons(y1, y2))), y3))) MARK(first(cons(s(first(0, cons(y0, y1))), y2), 0)) -> c5(MARK(cons(s(first(0, cons(y0, y1))), y2))) MARK(first(cons(s(first(nil, cons(y0, y1))), y2), 0)) -> c5(MARK(cons(s(first(nil, cons(y0, y1))), y2))) MARK(first(cons(s(first(from(0), y0)), y1), 0)) -> c5(MARK(cons(s(first(from(0), y0)), y1))) MARK(first(cons(s(first(from(nil), y0)), y1), 0)) -> c5(MARK(cons(s(first(from(nil), y0)), y1))) MARK(first(cons(s(first(y0, cons(0, y1))), y2), 0)) -> c5(MARK(cons(s(first(y0, cons(0, y1))), y2))) MARK(first(cons(s(first(y0, cons(nil, y1))), y2), 0)) -> c5(MARK(cons(s(first(y0, cons(nil, y1))), y2))) MARK(first(cons(s(from(s(y0))), y1), 0)) -> c5(MARK(cons(s(from(s(y0))), y1))) MARK(first(cons(s(from(cons(y0, y1))), y2), 0)) -> c5(MARK(cons(s(from(cons(y0, y1))), y2))) MARK(first(cons(s(from(first(y0, y1))), y2), 0)) -> c5(MARK(cons(s(from(first(y0, y1))), y2))) MARK(first(cons(s(from(first(y0, first(y1, y2)))), y3), 0)) -> c5(MARK(cons(s(from(first(y0, first(y1, y2)))), y3))) MARK(first(cons(s(from(first(y0, from(y1)))), y2), 0)) -> c5(MARK(cons(s(from(first(y0, from(y1)))), y2))) MARK(first(cons(s(from(first(y0, 0))), y1), 0)) -> c5(MARK(cons(s(from(first(y0, 0))), y1))) MARK(first(cons(s(from(first(y0, nil))), y1), 0)) -> c5(MARK(cons(s(from(first(y0, nil))), y1))) MARK(first(cons(s(from(first(y0, s(y1)))), y2), 0)) -> c5(MARK(cons(s(from(first(y0, s(y1)))), y2))) MARK(first(cons(s(from(first(y0, cons(y1, y2)))), y3), 0)) -> c5(MARK(cons(s(from(first(y0, cons(y1, y2)))), y3))) MARK(first(cons(s(from(first(first(y0, y1), y2))), y3), 0)) -> c5(MARK(cons(s(from(first(first(y0, y1), y2))), y3))) MARK(first(cons(s(from(first(from(y0), y1))), y2), 0)) -> c5(MARK(cons(s(from(first(from(y0), y1))), y2))) MARK(first(cons(s(from(first(0, y0))), y1), 0)) -> c5(MARK(cons(s(from(first(0, y0))), y1))) MARK(first(cons(s(from(first(nil, y0))), y1), 0)) -> c5(MARK(cons(s(from(first(nil, y0))), y1))) MARK(first(cons(s(from(first(s(y0), y1))), y2), 0)) -> c5(MARK(cons(s(from(first(s(y0), y1))), y2))) MARK(first(cons(s(from(first(cons(y0, y1), y2))), y3), 0)) -> c5(MARK(cons(s(from(first(cons(y0, y1), y2))), y3))) MARK(first(cons(s(from(from(y0))), y1), 0)) -> c5(MARK(cons(s(from(from(y0))), y1))) MARK(first(cons(s(from(from(first(y0, y1)))), y2), 0)) -> c5(MARK(cons(s(from(from(first(y0, y1)))), y2))) MARK(first(cons(s(from(from(from(y0)))), y1), 0)) -> c5(MARK(cons(s(from(from(from(y0)))), y1))) MARK(first(cons(s(from(from(s(y0)))), y1), 0)) -> c5(MARK(cons(s(from(from(s(y0)))), y1))) MARK(first(cons(s(from(from(cons(y0, y1)))), y2), 0)) -> c5(MARK(cons(s(from(from(cons(y0, y1)))), y2))) MARK(first(cons(s(from(from(0))), y0), 0)) -> c5(MARK(cons(s(from(from(0))), y0))) MARK(first(cons(s(from(from(nil))), y0), 0)) -> c5(MARK(cons(s(from(from(nil))), y0))) ---------------------------------------- (162) Obligation: Complexity Dependency Tuples Problem Rules: a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(0) -> 0 mark(nil) -> nil mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(x0, from(x1))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), from(x1))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(first(x0, cons(from(z0), x2))) -> c5(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(s(z0), x2))) -> c5(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(first(first(z0, z1), cons(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(first(z0, z1))) MARK(first(from(z0), cons(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(first(s(z0), cons(x1, x2))) -> c5(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(s(z0))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(first(x0, first(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(first(x0, first(z0, z1)))) MARK(first(first(x0, from(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(first(x0, from(z0)))) MARK(first(first(x0, 0), x2)) -> c5(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(first(x0, 0))) MARK(first(first(x0, nil), x2)) -> c5(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(first(x0, nil))) MARK(first(first(x0, s(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(first(x0, s(z0)))) MARK(first(first(x0, cons(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(first(x0, cons(z0, z1)))) MARK(first(first(first(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(first(first(z0, z1), x1))) MARK(first(first(from(z0), x1), x2)) -> c5(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(first(from(z0), x1))) MARK(first(first(0, x1), x2)) -> c5(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(first(0, x1))) MARK(first(first(nil, x1), x2)) -> c5(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(first(nil, x1))) MARK(first(first(s(z0), x1), x2)) -> c5(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(first(s(z0), x1))) MARK(first(first(cons(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(first(cons(z0, z1), x1))) MARK(first(first(x0, x1), 0)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), nil)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), s(z0))) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), x2)) -> c5(MARK(first(x0, x1))) MARK(first(from(first(z0, z1)), x1)) -> c5(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(from(first(z0, z1)))) MARK(first(from(from(z0)), x1)) -> c5(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(first(from(s(z0)), x1)) -> c5(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(from(s(z0)))) MARK(first(from(cons(z0, z1)), x1)) -> c5(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(first(from(x0), x1)) -> c5(MARK(from(x0))) MARK(first(from(x0), 0)) -> c5(MARK(from(x0))) MARK(first(from(x0), nil)) -> c5(MARK(from(x0))) MARK(first(from(x0), s(z0))) -> c5(MARK(from(x0))) MARK(first(s(first(z0, z1)), x1)) -> c5(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(s(first(z0, z1)))) MARK(first(s(from(z0)), x1)) -> c5(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(s(from(z0)))) MARK(first(s(s(z0)), x1)) -> c5(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(s(s(z0)))) MARK(first(s(cons(z0, z1)), x1)) -> c5(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(s(cons(z0, z1)))) MARK(first(s(x0), x1)) -> c5(MARK(s(x0))) MARK(first(s(x0), 0)) -> c5(MARK(s(x0))) MARK(first(s(x0), nil)) -> c5(MARK(s(x0))) MARK(first(s(x0), s(z0))) -> c5(MARK(s(x0))) MARK(first(x0, first(x1, first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(first(x1, first(z0, z1)))) MARK(first(x0, first(x1, from(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(first(x1, from(z0)))) MARK(first(x0, first(x1, 0))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(first(x1, 0))) MARK(first(x0, first(x1, nil))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(first(x1, nil))) MARK(first(x0, first(x1, s(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(first(x1, s(z0)))) MARK(first(x0, first(x1, cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(first(x1, cons(z0, z1)))) MARK(first(x0, first(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(first(first(z0, z1), x2))) MARK(first(x0, first(from(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(first(from(z0), x2))) MARK(first(x0, first(0, x2))) -> c6(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(first(0, x2))) MARK(first(x0, first(nil, x2))) -> c6(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(first(nil, x2))) MARK(first(x0, first(s(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(first(s(z0), x2))) MARK(first(x0, first(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(first(cons(z0, z1), x2))) MARK(first(first(z0, z1), first(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(from(z0), first(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(s(z0), first(x1, x2))) -> c6(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(x0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(nil, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(cons(z0, z1), first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(x0, from(x1))) -> c6(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(first(x0, from(first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(from(first(z0, z1)))) MARK(first(x0, from(from(z0)))) -> c6(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(first(x0, from(s(z0)))) -> c6(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(from(s(z0)))) MARK(first(x0, from(cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(first(first(z0, z1), from(x1))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(first(from(z0), from(x1))) -> c6(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(s(z0), from(x1))) -> c6(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(x0, from(x1))) -> c6(MARK(from(x1))) MARK(first(0, from(x1))) -> c6(MARK(from(x1))) MARK(first(nil, from(x1))) -> c6(MARK(from(x1))) MARK(first(cons(z0, z1), from(x1))) -> c6(MARK(from(x1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(cons(first(z0, z1), x2))) MARK(first(x0, cons(from(z0), x2))) -> c6(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(first(x0, cons(s(z0), x2))) -> c6(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(cons(s(z0), x2))) MARK(first(x0, cons(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(first(first(z0, z1), cons(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(from(z0), cons(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(s(z0), cons(x1, x2))) -> c6(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(x0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(nil, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(first(x0, first(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(first(first(x0, from(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, 0), x2)) -> c6(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(x2)) MARK(first(first(x0, nil), x2)) -> c6(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(x2)) MARK(first(first(x0, s(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, cons(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(first(first(first(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(from(z0), x1), x2)) -> c6(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(0, x1), x2)) -> c6(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(nil, x1), x2)) -> c6(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(s(z0), x1), x2)) -> c6(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(cons(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(x0, x1), s(z0))) -> c6(MARK(s(z0))) MARK(first(first(x0, x1), x2)) -> c6(MARK(x2)) MARK(first(from(first(z0, z1)), x1)) -> c6(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(first(from(from(z0)), x1)) -> c6(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(first(from(0), x1)) -> c6(A__FIRST(a__from(0), mark(x1)), MARK(x1)) MARK(first(from(nil), x1)) -> c6(A__FIRST(a__from(nil), mark(x1)), MARK(x1)) MARK(first(from(s(z0)), x1)) -> c6(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(x1)) MARK(first(from(cons(z0, z1)), x1)) -> c6(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(first(from(x0), s(z0))) -> c6(MARK(s(z0))) MARK(first(from(x0), x1)) -> c6(MARK(x1)) MARK(first(s(first(z0, z1)), x1)) -> c6(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(first(s(from(z0)), x1)) -> c6(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(first(s(0), x1)) -> c6(A__FIRST(s(0), mark(x1)), MARK(x1)) MARK(first(s(nil), x1)) -> c6(A__FIRST(s(nil), mark(x1)), MARK(x1)) MARK(first(s(s(z0)), x1)) -> c6(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(x1)) MARK(first(s(cons(z0, z1)), x1)) -> c6(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(first(s(x0), s(z0))) -> c6(MARK(s(z0))) A__FIRST(s(z0), cons(from(y0), z2)) -> c1(MARK(from(y0))) A__FIRST(s(z0), cons(s(y0), z2)) -> c1(MARK(s(y0))) A__FIRST(s(z0), cons(cons(y0, y1), z2)) -> c1(MARK(cons(y0, y1))) A__FIRST(s(z0), cons(first(y0, 0), z2)) -> c1(MARK(first(y0, 0))) A__FIRST(s(z0), cons(first(y0, nil), z2)) -> c1(MARK(first(y0, nil))) A__FIRST(s(z0), cons(first(y0, s(y1)), z2)) -> c1(MARK(first(y0, s(y1)))) A__FIRST(s(z0), cons(first(cons(y0, y1), y2), z2)) -> c1(MARK(first(cons(y0, y1), y2))) A__FIRST(s(z0), cons(first(0, y0), z2)) -> c1(MARK(first(0, y0))) A__FIRST(s(z0), cons(first(nil, y0), z2)) -> c1(MARK(first(nil, y0))) A__FIRST(s(z0), cons(first(y0, first(y1, first(y2, y3))), z2)) -> c1(MARK(first(y0, first(y1, first(y2, y3))))) A__FIRST(s(z0), cons(first(y0, first(y1, from(y2))), z2)) -> c1(MARK(first(y0, first(y1, from(y2))))) A__FIRST(s(z0), cons(first(y0, first(y1, 0)), z2)) -> c1(MARK(first(y0, first(y1, 0)))) A__FIRST(s(z0), cons(first(y0, first(y1, nil)), z2)) -> c1(MARK(first(y0, first(y1, nil)))) A__FIRST(s(z0), cons(first(y0, first(y1, s(y2))), z2)) -> c1(MARK(first(y0, first(y1, s(y2))))) A__FIRST(s(z0), cons(first(y0, first(y1, cons(y2, y3))), z2)) -> c1(MARK(first(y0, first(y1, cons(y2, y3))))) A__FIRST(s(z0), cons(first(y0, first(first(y1, y2), y3)), z2)) -> c1(MARK(first(y0, first(first(y1, y2), y3)))) A__FIRST(s(z0), cons(first(y0, first(from(y1), y2)), z2)) -> c1(MARK(first(y0, first(from(y1), y2)))) A__FIRST(s(z0), cons(first(y0, first(0, y1)), z2)) -> c1(MARK(first(y0, first(0, y1)))) A__FIRST(s(z0), cons(first(y0, first(nil, y1)), z2)) -> c1(MARK(first(y0, first(nil, y1)))) A__FIRST(s(z0), cons(first(y0, first(s(y1), y2)), z2)) -> c1(MARK(first(y0, first(s(y1), y2)))) A__FIRST(s(z0), cons(first(y0, first(cons(y1, y2), y3)), z2)) -> c1(MARK(first(y0, first(cons(y1, y2), y3)))) A__FIRST(s(z0), cons(first(first(y0, y1), first(y2, y3)), z2)) -> c1(MARK(first(first(y0, y1), first(y2, y3)))) A__FIRST(s(z0), cons(first(from(y0), first(y1, y2)), z2)) -> c1(MARK(first(from(y0), first(y1, y2)))) A__FIRST(s(z0), cons(first(s(y0), first(y1, y2)), z2)) -> c1(MARK(first(s(y0), first(y1, y2)))) A__FIRST(s(z0), cons(first(y0, first(y1, y2)), z2)) -> c1(MARK(first(y0, first(y1, y2)))) A__FIRST(s(z0), cons(first(cons(y0, y1), first(y2, y3)), z2)) -> c1(MARK(first(cons(y0, y1), first(y2, y3)))) A__FIRST(s(z0), cons(first(y0, from(y1)), z2)) -> c1(MARK(first(y0, from(y1)))) A__FIRST(s(z0), cons(first(y0, from(first(y1, y2))), z2)) -> c1(MARK(first(y0, from(first(y1, y2))))) A__FIRST(s(z0), cons(first(y0, from(from(y1))), z2)) -> c1(MARK(first(y0, from(from(y1))))) A__FIRST(s(z0), cons(first(y0, from(0)), z2)) -> c1(MARK(first(y0, from(0)))) A__FIRST(s(z0), cons(first(y0, from(nil)), z2)) -> c1(MARK(first(y0, from(nil)))) A__FIRST(s(z0), cons(first(y0, from(s(y1))), z2)) -> c1(MARK(first(y0, from(s(y1))))) A__FIRST(s(z0), cons(first(y0, from(cons(y1, y2))), z2)) -> c1(MARK(first(y0, from(cons(y1, y2))))) A__FIRST(s(z0), cons(first(first(y0, y1), from(y2)), z2)) -> c1(MARK(first(first(y0, y1), from(y2)))) A__FIRST(s(z0), cons(first(from(y0), from(y1)), z2)) -> c1(MARK(first(from(y0), from(y1)))) A__FIRST(s(z0), cons(first(s(y0), from(y1)), z2)) -> c1(MARK(first(s(y0), from(y1)))) A__FIRST(s(z0), cons(first(cons(y0, y1), from(y2)), z2)) -> c1(MARK(first(cons(y0, y1), from(y2)))) A__FIRST(s(z0), cons(first(y0, cons(first(y1, y2), y3)), z2)) -> c1(MARK(first(y0, cons(first(y1, y2), y3)))) A__FIRST(s(z0), cons(first(y0, cons(from(y1), y2)), z2)) -> c1(MARK(first(y0, cons(from(y1), y2)))) A__FIRST(s(z0), cons(first(y0, cons(0, y1)), z2)) -> c1(MARK(first(y0, cons(0, y1)))) A__FIRST(s(z0), cons(first(y0, cons(nil, y1)), z2)) -> c1(MARK(first(y0, cons(nil, y1)))) A__FIRST(s(z0), cons(first(y0, cons(s(y1), y2)), z2)) -> c1(MARK(first(y0, cons(s(y1), y2)))) A__FIRST(s(z0), cons(first(y0, cons(cons(y1, y2), y3)), z2)) -> c1(MARK(first(y0, cons(cons(y1, y2), y3)))) A__FIRST(s(z0), cons(first(first(y0, y1), cons(y2, y3)), z2)) -> c1(MARK(first(first(y0, y1), cons(y2, y3)))) A__FIRST(s(z0), cons(first(from(y0), cons(y1, y2)), z2)) -> c1(MARK(first(from(y0), cons(y1, y2)))) A__FIRST(s(z0), cons(first(s(y0), cons(y1, y2)), z2)) -> c1(MARK(first(s(y0), cons(y1, y2)))) A__FIRST(s(z0), cons(first(cons(y0, y1), cons(y2, y3)), z2)) -> c1(MARK(first(cons(y0, y1), cons(y2, y3)))) A__FIRST(s(z0), cons(first(first(y0, first(y1, y2)), y3), z2)) -> c1(MARK(first(first(y0, first(y1, y2)), y3))) A__FIRST(s(z0), cons(first(first(y0, from(y1)), y2), z2)) -> c1(MARK(first(first(y0, from(y1)), y2))) A__FIRST(s(z0), cons(first(first(y0, 0), y1), z2)) -> c1(MARK(first(first(y0, 0), y1))) A__FIRST(s(z0), cons(first(first(y0, nil), y1), z2)) -> c1(MARK(first(first(y0, nil), y1))) A__FIRST(s(z0), cons(first(first(y0, s(y1)), y2), z2)) -> c1(MARK(first(first(y0, s(y1)), y2))) A__FIRST(s(z0), cons(first(first(y0, cons(y1, y2)), y3), z2)) -> c1(MARK(first(first(y0, cons(y1, y2)), y3))) A__FIRST(s(z0), cons(first(first(first(y0, y1), y2), y3), z2)) -> c1(MARK(first(first(first(y0, y1), y2), y3))) A__FIRST(s(z0), cons(first(first(from(y0), y1), y2), z2)) -> c1(MARK(first(first(from(y0), y1), y2))) A__FIRST(s(z0), cons(first(first(0, y0), y1), z2)) -> c1(MARK(first(first(0, y0), y1))) A__FIRST(s(z0), cons(first(first(nil, y0), y1), z2)) -> c1(MARK(first(first(nil, y0), y1))) A__FIRST(s(z0), cons(first(first(s(y0), y1), y2), z2)) -> c1(MARK(first(first(s(y0), y1), y2))) A__FIRST(s(z0), cons(first(first(cons(y0, y1), y2), y3), z2)) -> c1(MARK(first(first(cons(y0, y1), y2), y3))) A__FIRST(s(z0), cons(first(first(y0, y1), 0), z2)) -> c1(MARK(first(first(y0, y1), 0))) A__FIRST(s(z0), cons(first(first(y0, y1), nil), z2)) -> c1(MARK(first(first(y0, y1), nil))) A__FIRST(s(z0), cons(first(first(y0, y1), s(y2)), z2)) -> c1(MARK(first(first(y0, y1), s(y2)))) A__FIRST(s(z0), cons(first(first(y0, y1), y2), z2)) -> c1(MARK(first(first(y0, y1), y2))) A__FIRST(s(z0), cons(first(from(first(y0, y1)), y2), z2)) -> c1(MARK(first(from(first(y0, y1)), y2))) A__FIRST(s(z0), cons(first(from(from(y0)), y1), z2)) -> c1(MARK(first(from(from(y0)), y1))) A__FIRST(s(z0), cons(first(from(0), y0), z2)) -> c1(MARK(first(from(0), y0))) A__FIRST(s(z0), cons(first(from(nil), y0), z2)) -> c1(MARK(first(from(nil), y0))) A__FIRST(s(z0), cons(first(from(s(y0)), y1), z2)) -> c1(MARK(first(from(s(y0)), y1))) A__FIRST(s(z0), cons(first(from(cons(y0, y1)), y2), z2)) -> c1(MARK(first(from(cons(y0, y1)), y2))) A__FIRST(s(z0), cons(first(from(y0), y1), z2)) -> c1(MARK(first(from(y0), y1))) A__FIRST(s(z0), cons(first(from(y0), 0), z2)) -> c1(MARK(first(from(y0), 0))) A__FIRST(s(z0), cons(first(from(y0), nil), z2)) -> c1(MARK(first(from(y0), nil))) A__FIRST(s(z0), cons(first(from(y0), s(y1)), z2)) -> c1(MARK(first(from(y0), s(y1)))) A__FIRST(s(z0), cons(first(s(first(y0, y1)), y2), z2)) -> c1(MARK(first(s(first(y0, y1)), y2))) A__FIRST(s(z0), cons(first(s(from(y0)), y1), z2)) -> c1(MARK(first(s(from(y0)), y1))) A__FIRST(s(z0), cons(first(s(0), y0), z2)) -> c1(MARK(first(s(0), y0))) A__FIRST(s(z0), cons(first(s(nil), y0), z2)) -> c1(MARK(first(s(nil), y0))) A__FIRST(s(z0), cons(first(s(s(y0)), y1), z2)) -> c1(MARK(first(s(s(y0)), y1))) A__FIRST(s(z0), cons(first(s(cons(y0, y1)), y2), z2)) -> c1(MARK(first(s(cons(y0, y1)), y2))) A__FIRST(s(z0), cons(first(s(y0), y1), z2)) -> c1(MARK(first(s(y0), y1))) A__FIRST(s(z0), cons(first(s(y0), 0), z2)) -> c1(MARK(first(s(y0), 0))) A__FIRST(s(z0), cons(first(s(y0), nil), z2)) -> c1(MARK(first(s(y0), nil))) A__FIRST(s(z0), cons(first(s(y0), s(y1)), z2)) -> c1(MARK(first(s(y0), s(y1)))) A__FIRST(s(z0), cons(first(0, first(y0, y1)), z2)) -> c1(MARK(first(0, first(y0, y1)))) A__FIRST(s(z0), cons(first(nil, first(y0, y1)), z2)) -> c1(MARK(first(nil, first(y0, y1)))) A__FIRST(s(z0), cons(first(0, from(y0)), z2)) -> c1(MARK(first(0, from(y0)))) A__FIRST(s(z0), cons(first(nil, from(y0)), z2)) -> c1(MARK(first(nil, from(y0)))) A__FIRST(s(z0), cons(first(y0, cons(y1, y2)), z2)) -> c1(MARK(first(y0, cons(y1, y2)))) A__FIRST(s(z0), cons(first(0, cons(y0, y1)), z2)) -> c1(MARK(first(0, cons(y0, y1)))) A__FIRST(s(z0), cons(first(nil, cons(y0, y1)), z2)) -> c1(MARK(first(nil, cons(y0, y1)))) MARK(first(x0, cons(0, x2))) -> c5(MARK(x0)) MARK(first(x0, cons(nil, x2))) -> c5(MARK(x0)) A__FROM(from(y0)) -> c3(MARK(from(y0))) A__FROM(s(y0)) -> c3(MARK(s(y0))) A__FROM(cons(y0, y1)) -> c3(MARK(cons(y0, y1))) A__FROM(first(y0, 0)) -> c3(MARK(first(y0, 0))) A__FROM(first(y0, nil)) -> c3(MARK(first(y0, nil))) A__FROM(first(y0, s(y1))) -> c3(MARK(first(y0, s(y1)))) A__FROM(first(cons(y0, y1), y2)) -> c3(MARK(first(cons(y0, y1), y2))) A__FROM(first(0, y0)) -> c3(MARK(first(0, y0))) A__FROM(first(nil, y0)) -> c3(MARK(first(nil, y0))) A__FROM(first(y0, first(y1, first(y2, y3)))) -> c3(MARK(first(y0, first(y1, first(y2, y3))))) A__FROM(first(y0, first(y1, from(y2)))) -> c3(MARK(first(y0, first(y1, from(y2))))) A__FROM(first(y0, first(y1, 0))) -> c3(MARK(first(y0, first(y1, 0)))) A__FROM(first(y0, first(y1, nil))) -> c3(MARK(first(y0, first(y1, nil)))) A__FROM(first(y0, first(y1, s(y2)))) -> c3(MARK(first(y0, first(y1, s(y2))))) A__FROM(first(y0, first(y1, cons(y2, y3)))) -> c3(MARK(first(y0, first(y1, cons(y2, y3))))) A__FROM(first(y0, first(first(y1, y2), y3))) -> c3(MARK(first(y0, first(first(y1, y2), y3)))) A__FROM(first(y0, first(from(y1), y2))) -> c3(MARK(first(y0, first(from(y1), y2)))) A__FROM(first(y0, first(0, y1))) -> c3(MARK(first(y0, first(0, y1)))) A__FROM(first(y0, first(nil, y1))) -> c3(MARK(first(y0, first(nil, y1)))) A__FROM(first(y0, first(s(y1), y2))) -> c3(MARK(first(y0, first(s(y1), y2)))) A__FROM(first(y0, first(cons(y1, y2), y3))) -> c3(MARK(first(y0, first(cons(y1, y2), y3)))) A__FROM(first(first(y0, y1), first(y2, y3))) -> c3(MARK(first(first(y0, y1), first(y2, y3)))) A__FROM(first(from(y0), first(y1, y2))) -> c3(MARK(first(from(y0), first(y1, y2)))) A__FROM(first(s(y0), first(y1, y2))) -> c3(MARK(first(s(y0), first(y1, y2)))) A__FROM(first(y0, first(y1, y2))) -> c3(MARK(first(y0, first(y1, y2)))) A__FROM(first(cons(y0, y1), first(y2, y3))) -> c3(MARK(first(cons(y0, y1), first(y2, y3)))) A__FROM(first(y0, from(y1))) -> c3(MARK(first(y0, from(y1)))) A__FROM(first(y0, from(first(y1, y2)))) -> c3(MARK(first(y0, from(first(y1, y2))))) A__FROM(first(y0, from(from(y1)))) -> c3(MARK(first(y0, from(from(y1))))) A__FROM(first(y0, from(0))) -> c3(MARK(first(y0, from(0)))) A__FROM(first(y0, from(nil))) -> c3(MARK(first(y0, from(nil)))) A__FROM(first(y0, from(s(y1)))) -> c3(MARK(first(y0, from(s(y1))))) A__FROM(first(y0, from(cons(y1, y2)))) -> c3(MARK(first(y0, from(cons(y1, y2))))) A__FROM(first(first(y0, y1), from(y2))) -> c3(MARK(first(first(y0, y1), from(y2)))) A__FROM(first(from(y0), from(y1))) -> c3(MARK(first(from(y0), from(y1)))) A__FROM(first(s(y0), from(y1))) -> c3(MARK(first(s(y0), from(y1)))) A__FROM(first(cons(y0, y1), from(y2))) -> c3(MARK(first(cons(y0, y1), from(y2)))) A__FROM(first(y0, cons(first(y1, y2), y3))) -> c3(MARK(first(y0, cons(first(y1, y2), y3)))) A__FROM(first(y0, cons(from(y1), y2))) -> c3(MARK(first(y0, cons(from(y1), y2)))) A__FROM(first(y0, cons(s(y1), y2))) -> c3(MARK(first(y0, cons(s(y1), y2)))) A__FROM(first(y0, cons(cons(y1, y2), y3))) -> c3(MARK(first(y0, cons(cons(y1, y2), y3)))) A__FROM(first(first(y0, y1), cons(y2, y3))) -> c3(MARK(first(first(y0, y1), cons(y2, y3)))) A__FROM(first(from(y0), cons(y1, y2))) -> c3(MARK(first(from(y0), cons(y1, y2)))) A__FROM(first(s(y0), cons(y1, y2))) -> c3(MARK(first(s(y0), cons(y1, y2)))) A__FROM(first(cons(y0, y1), cons(y2, y3))) -> c3(MARK(first(cons(y0, y1), cons(y2, y3)))) A__FROM(first(first(y0, first(y1, y2)), y3)) -> c3(MARK(first(first(y0, first(y1, y2)), y3))) A__FROM(first(first(y0, from(y1)), y2)) -> c3(MARK(first(first(y0, from(y1)), y2))) A__FROM(first(first(y0, 0), y1)) -> c3(MARK(first(first(y0, 0), y1))) A__FROM(first(first(y0, nil), y1)) -> c3(MARK(first(first(y0, nil), y1))) A__FROM(first(first(y0, s(y1)), y2)) -> c3(MARK(first(first(y0, s(y1)), y2))) A__FROM(first(first(y0, cons(y1, y2)), y3)) -> c3(MARK(first(first(y0, cons(y1, y2)), y3))) A__FROM(first(first(first(y0, y1), y2), y3)) -> c3(MARK(first(first(first(y0, y1), y2), y3))) A__FROM(first(first(from(y0), y1), y2)) -> c3(MARK(first(first(from(y0), y1), y2))) A__FROM(first(first(0, y0), y1)) -> c3(MARK(first(first(0, y0), y1))) A__FROM(first(first(nil, y0), y1)) -> c3(MARK(first(first(nil, y0), y1))) A__FROM(first(first(s(y0), y1), y2)) -> c3(MARK(first(first(s(y0), y1), y2))) A__FROM(first(first(cons(y0, y1), y2), y3)) -> c3(MARK(first(first(cons(y0, y1), y2), y3))) A__FROM(first(first(y0, y1), 0)) -> c3(MARK(first(first(y0, y1), 0))) A__FROM(first(first(y0, y1), nil)) -> c3(MARK(first(first(y0, y1), nil))) A__FROM(first(first(y0, y1), s(y2))) -> c3(MARK(first(first(y0, y1), s(y2)))) A__FROM(first(first(y0, y1), y2)) -> c3(MARK(first(first(y0, y1), y2))) A__FROM(first(from(first(y0, y1)), y2)) -> c3(MARK(first(from(first(y0, y1)), y2))) A__FROM(first(from(from(y0)), y1)) -> c3(MARK(first(from(from(y0)), y1))) A__FROM(first(from(0), y0)) -> c3(MARK(first(from(0), y0))) A__FROM(first(from(nil), y0)) -> c3(MARK(first(from(nil), y0))) A__FROM(first(from(s(y0)), y1)) -> c3(MARK(first(from(s(y0)), y1))) A__FROM(first(from(cons(y0, y1)), y2)) -> c3(MARK(first(from(cons(y0, y1)), y2))) A__FROM(first(from(y0), y1)) -> c3(MARK(first(from(y0), y1))) A__FROM(first(from(y0), 0)) -> c3(MARK(first(from(y0), 0))) A__FROM(first(from(y0), nil)) -> c3(MARK(first(from(y0), nil))) A__FROM(first(from(y0), s(y1))) -> c3(MARK(first(from(y0), s(y1)))) A__FROM(first(s(first(y0, y1)), y2)) -> c3(MARK(first(s(first(y0, y1)), y2))) A__FROM(first(s(from(y0)), y1)) -> c3(MARK(first(s(from(y0)), y1))) A__FROM(first(s(0), y0)) -> c3(MARK(first(s(0), y0))) A__FROM(first(s(nil), y0)) -> c3(MARK(first(s(nil), y0))) A__FROM(first(s(s(y0)), y1)) -> c3(MARK(first(s(s(y0)), y1))) A__FROM(first(s(cons(y0, y1)), y2)) -> c3(MARK(first(s(cons(y0, y1)), y2))) A__FROM(first(s(y0), y1)) -> c3(MARK(first(s(y0), y1))) A__FROM(first(s(y0), 0)) -> c3(MARK(first(s(y0), 0))) A__FROM(first(s(y0), nil)) -> c3(MARK(first(s(y0), nil))) A__FROM(first(s(y0), s(y1))) -> c3(MARK(first(s(y0), s(y1)))) A__FROM(first(0, first(y0, y1))) -> c3(MARK(first(0, first(y0, y1)))) A__FROM(first(nil, first(y0, y1))) -> c3(MARK(first(nil, first(y0, y1)))) A__FROM(first(0, from(y0))) -> c3(MARK(first(0, from(y0)))) A__FROM(first(nil, from(y0))) -> c3(MARK(first(nil, from(y0)))) A__FROM(first(y0, cons(y1, y2))) -> c3(MARK(first(y0, cons(y1, y2)))) A__FROM(first(0, cons(y0, y1))) -> c3(MARK(first(0, cons(y0, y1)))) A__FROM(first(nil, cons(y0, y1))) -> c3(MARK(first(nil, cons(y0, y1)))) A__FROM(first(y0, cons(0, y1))) -> c3(MARK(first(y0, cons(0, y1)))) A__FROM(first(y0, cons(nil, y1))) -> c3(MARK(first(y0, cons(nil, y1)))) MARK(from(s(z0))) -> c7(A__FROM(s(mark(z0))), MARK(s(z0))) MARK(from(cons(z0, z1))) -> c7(A__FROM(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(from(0), x1)) -> c5(A__FIRST(a__from(0), mark(x1))) MARK(first(from(nil), x1)) -> c5(A__FIRST(a__from(nil), mark(x1))) MARK(first(x0, from(0))) -> c6(A__FIRST(mark(x0), a__from(0))) MARK(first(x0, from(nil))) -> c6(A__FIRST(mark(x0), a__from(nil))) MARK(from(first(x0, x1))) -> c7(A__FROM(first(mark(x0), mark(x1))), MARK(first(x0, x1))) MARK(from(first(x0, first(z0, z1)))) -> c7(A__FROM(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) MARK(from(first(x0, from(z0)))) -> c7(A__FROM(a__first(mark(x0), a__from(mark(z0)))), MARK(first(x0, from(z0)))) MARK(from(first(x0, 0))) -> c7(A__FROM(a__first(mark(x0), 0)), MARK(first(x0, 0))) MARK(from(first(x0, nil))) -> c7(A__FROM(a__first(mark(x0), nil)), MARK(first(x0, nil))) MARK(from(first(x0, s(z0)))) -> c7(A__FROM(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) MARK(from(first(x0, cons(z0, z1)))) -> c7(A__FROM(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) MARK(from(first(first(z0, z1), x1))) -> c7(A__FROM(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) MARK(from(first(from(z0), x1))) -> c7(A__FROM(a__first(a__from(mark(z0)), mark(x1))), MARK(first(from(z0), x1))) MARK(from(first(0, x1))) -> c7(A__FROM(a__first(0, mark(x1))), MARK(first(0, x1))) MARK(from(first(nil, x1))) -> c7(A__FROM(a__first(nil, mark(x1))), MARK(first(nil, x1))) MARK(from(first(s(z0), x1))) -> c7(A__FROM(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) MARK(from(first(cons(z0, z1), x1))) -> c7(A__FROM(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) MARK(from(from(x0))) -> c7(A__FROM(cons(mark(mark(x0)), from(s(mark(x0))))), MARK(from(x0))) MARK(from(from(x0))) -> c7(A__FROM(from(mark(x0))), MARK(from(x0))) MARK(from(from(first(z0, z1)))) -> c7(A__FROM(a__from(a__first(mark(z0), mark(z1)))), MARK(from(first(z0, z1)))) MARK(from(from(from(z0)))) -> c7(A__FROM(a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(from(from(s(z0)))) -> c7(A__FROM(a__from(s(mark(z0)))), MARK(from(s(z0)))) MARK(from(from(cons(z0, z1)))) -> c7(A__FROM(a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(from(from(0))) -> c7(A__FROM(a__from(0))) MARK(from(from(nil))) -> c7(A__FROM(a__from(nil))) MARK(s(s(y0))) -> c10(MARK(s(y0))) MARK(s(cons(y0, y1))) -> c10(MARK(cons(y0, y1))) MARK(s(first(y0, 0))) -> c10(MARK(first(y0, 0))) MARK(s(first(y0, nil))) -> c10(MARK(first(y0, nil))) MARK(s(first(y0, s(y1)))) -> c10(MARK(first(y0, s(y1)))) MARK(s(first(cons(y0, y1), y2))) -> c10(MARK(first(cons(y0, y1), y2))) MARK(s(first(0, y0))) -> c10(MARK(first(0, y0))) MARK(s(first(nil, y0))) -> c10(MARK(first(nil, y0))) MARK(s(first(y0, first(y1, first(y2, y3))))) -> c10(MARK(first(y0, first(y1, first(y2, y3))))) MARK(s(first(y0, first(y1, from(y2))))) -> c10(MARK(first(y0, first(y1, from(y2))))) MARK(s(first(y0, first(y1, 0)))) -> c10(MARK(first(y0, first(y1, 0)))) MARK(s(first(y0, first(y1, nil)))) -> c10(MARK(first(y0, first(y1, nil)))) MARK(s(first(y0, first(y1, s(y2))))) -> c10(MARK(first(y0, first(y1, s(y2))))) MARK(s(first(y0, first(y1, cons(y2, y3))))) -> c10(MARK(first(y0, first(y1, cons(y2, y3))))) MARK(s(first(y0, first(first(y1, y2), y3)))) -> c10(MARK(first(y0, first(first(y1, y2), y3)))) MARK(s(first(y0, first(from(y1), y2)))) -> c10(MARK(first(y0, first(from(y1), y2)))) MARK(s(first(y0, first(0, y1)))) -> c10(MARK(first(y0, first(0, y1)))) MARK(s(first(y0, first(nil, y1)))) -> c10(MARK(first(y0, first(nil, y1)))) MARK(s(first(y0, first(s(y1), y2)))) -> c10(MARK(first(y0, first(s(y1), y2)))) MARK(s(first(y0, first(cons(y1, y2), y3)))) -> c10(MARK(first(y0, first(cons(y1, y2), y3)))) MARK(s(first(first(y0, y1), first(y2, y3)))) -> c10(MARK(first(first(y0, y1), first(y2, y3)))) MARK(s(first(from(y0), first(y1, y2)))) -> c10(MARK(first(from(y0), first(y1, y2)))) MARK(s(first(s(y0), first(y1, y2)))) -> c10(MARK(first(s(y0), first(y1, y2)))) MARK(s(first(y0, first(y1, y2)))) -> c10(MARK(first(y0, first(y1, y2)))) MARK(s(first(cons(y0, y1), first(y2, y3)))) -> c10(MARK(first(cons(y0, y1), first(y2, y3)))) MARK(s(first(y0, from(y1)))) -> c10(MARK(first(y0, from(y1)))) MARK(s(first(y0, from(first(y1, y2))))) -> c10(MARK(first(y0, from(first(y1, y2))))) MARK(s(first(y0, from(from(y1))))) -> c10(MARK(first(y0, from(from(y1))))) MARK(s(first(y0, from(0)))) -> c10(MARK(first(y0, from(0)))) MARK(s(first(y0, from(nil)))) -> c10(MARK(first(y0, from(nil)))) MARK(s(first(y0, from(s(y1))))) -> c10(MARK(first(y0, from(s(y1))))) MARK(s(first(y0, from(cons(y1, y2))))) -> c10(MARK(first(y0, from(cons(y1, y2))))) MARK(s(first(first(y0, y1), from(y2)))) -> c10(MARK(first(first(y0, y1), from(y2)))) MARK(s(first(from(y0), from(y1)))) -> c10(MARK(first(from(y0), from(y1)))) MARK(s(first(s(y0), from(y1)))) -> c10(MARK(first(s(y0), from(y1)))) MARK(s(first(cons(y0, y1), from(y2)))) -> c10(MARK(first(cons(y0, y1), from(y2)))) MARK(s(first(y0, cons(first(y1, y2), y3)))) -> c10(MARK(first(y0, cons(first(y1, y2), y3)))) MARK(s(first(y0, cons(from(y1), y2)))) -> c10(MARK(first(y0, cons(from(y1), y2)))) MARK(s(first(y0, cons(s(y1), y2)))) -> c10(MARK(first(y0, cons(s(y1), y2)))) MARK(s(first(y0, cons(cons(y1, y2), y3)))) -> c10(MARK(first(y0, cons(cons(y1, y2), y3)))) MARK(s(first(first(y0, y1), cons(y2, y3)))) -> c10(MARK(first(first(y0, y1), cons(y2, y3)))) MARK(s(first(from(y0), cons(y1, y2)))) -> c10(MARK(first(from(y0), cons(y1, y2)))) MARK(s(first(s(y0), cons(y1, y2)))) -> c10(MARK(first(s(y0), cons(y1, y2)))) MARK(s(first(cons(y0, y1), cons(y2, y3)))) -> c10(MARK(first(cons(y0, y1), cons(y2, y3)))) MARK(s(first(first(y0, first(y1, y2)), y3))) -> c10(MARK(first(first(y0, first(y1, y2)), y3))) MARK(s(first(first(y0, from(y1)), y2))) -> c10(MARK(first(first(y0, from(y1)), y2))) MARK(s(first(first(y0, 0), y1))) -> c10(MARK(first(first(y0, 0), y1))) MARK(s(first(first(y0, nil), y1))) -> c10(MARK(first(first(y0, nil), y1))) MARK(s(first(first(y0, s(y1)), y2))) -> c10(MARK(first(first(y0, s(y1)), y2))) MARK(s(first(first(y0, cons(y1, y2)), y3))) -> c10(MARK(first(first(y0, cons(y1, y2)), y3))) MARK(s(first(first(first(y0, y1), y2), y3))) -> c10(MARK(first(first(first(y0, y1), y2), y3))) MARK(s(first(first(from(y0), y1), y2))) -> c10(MARK(first(first(from(y0), y1), y2))) MARK(s(first(first(0, y0), y1))) -> c10(MARK(first(first(0, y0), y1))) MARK(s(first(first(nil, y0), y1))) -> c10(MARK(first(first(nil, y0), y1))) MARK(s(first(first(s(y0), y1), y2))) -> c10(MARK(first(first(s(y0), y1), y2))) MARK(s(first(first(cons(y0, y1), y2), y3))) -> c10(MARK(first(first(cons(y0, y1), y2), y3))) MARK(s(first(first(y0, y1), 0))) -> c10(MARK(first(first(y0, y1), 0))) MARK(s(first(first(y0, y1), nil))) -> c10(MARK(first(first(y0, y1), nil))) MARK(s(first(first(y0, y1), s(y2)))) -> c10(MARK(first(first(y0, y1), s(y2)))) MARK(s(first(first(y0, y1), y2))) -> c10(MARK(first(first(y0, y1), y2))) MARK(s(first(from(first(y0, y1)), y2))) -> c10(MARK(first(from(first(y0, y1)), y2))) MARK(s(first(from(from(y0)), y1))) -> c10(MARK(first(from(from(y0)), y1))) MARK(s(first(from(s(y0)), y1))) -> c10(MARK(first(from(s(y0)), y1))) MARK(s(first(from(cons(y0, y1)), y2))) -> c10(MARK(first(from(cons(y0, y1)), y2))) MARK(s(first(from(y0), y1))) -> c10(MARK(first(from(y0), y1))) MARK(s(first(from(y0), 0))) -> c10(MARK(first(from(y0), 0))) MARK(s(first(from(y0), nil))) -> c10(MARK(first(from(y0), nil))) MARK(s(first(from(y0), s(y1)))) -> c10(MARK(first(from(y0), s(y1)))) MARK(s(first(s(first(y0, y1)), y2))) -> c10(MARK(first(s(first(y0, y1)), y2))) MARK(s(first(s(from(y0)), y1))) -> c10(MARK(first(s(from(y0)), y1))) MARK(s(first(s(0), y0))) -> c10(MARK(first(s(0), y0))) MARK(s(first(s(nil), y0))) -> c10(MARK(first(s(nil), y0))) MARK(s(first(s(s(y0)), y1))) -> c10(MARK(first(s(s(y0)), y1))) MARK(s(first(s(cons(y0, y1)), y2))) -> c10(MARK(first(s(cons(y0, y1)), y2))) MARK(s(first(s(y0), y1))) -> c10(MARK(first(s(y0), y1))) MARK(s(first(s(y0), 0))) -> c10(MARK(first(s(y0), 0))) MARK(s(first(s(y0), nil))) -> c10(MARK(first(s(y0), nil))) MARK(s(first(s(y0), s(y1)))) -> c10(MARK(first(s(y0), s(y1)))) MARK(s(first(0, first(y0, y1)))) -> c10(MARK(first(0, first(y0, y1)))) MARK(s(first(nil, first(y0, y1)))) -> c10(MARK(first(nil, first(y0, y1)))) MARK(s(first(0, from(y0)))) -> c10(MARK(first(0, from(y0)))) MARK(s(first(nil, from(y0)))) -> c10(MARK(first(nil, from(y0)))) MARK(s(first(y0, cons(y1, y2)))) -> c10(MARK(first(y0, cons(y1, y2)))) MARK(s(first(0, cons(y0, y1)))) -> c10(MARK(first(0, cons(y0, y1)))) MARK(s(first(nil, cons(y0, y1)))) -> c10(MARK(first(nil, cons(y0, y1)))) MARK(s(first(from(0), y0))) -> c10(MARK(first(from(0), y0))) MARK(s(first(from(nil), y0))) -> c10(MARK(first(from(nil), y0))) MARK(s(first(y0, cons(0, y1)))) -> c10(MARK(first(y0, cons(0, y1)))) MARK(s(first(y0, cons(nil, y1)))) -> c10(MARK(first(y0, cons(nil, y1)))) MARK(s(from(s(y0)))) -> c10(MARK(from(s(y0)))) MARK(s(from(cons(y0, y1)))) -> c10(MARK(from(cons(y0, y1)))) MARK(s(from(first(y0, y1)))) -> c10(MARK(from(first(y0, y1)))) MARK(s(from(first(y0, first(y1, y2))))) -> c10(MARK(from(first(y0, first(y1, y2))))) MARK(s(from(first(y0, from(y1))))) -> c10(MARK(from(first(y0, from(y1))))) MARK(s(from(first(y0, 0)))) -> c10(MARK(from(first(y0, 0)))) MARK(s(from(first(y0, nil)))) -> c10(MARK(from(first(y0, nil)))) MARK(s(from(first(y0, s(y1))))) -> c10(MARK(from(first(y0, s(y1))))) MARK(s(from(first(y0, cons(y1, y2))))) -> c10(MARK(from(first(y0, cons(y1, y2))))) MARK(s(from(first(first(y0, y1), y2)))) -> c10(MARK(from(first(first(y0, y1), y2)))) MARK(s(from(first(from(y0), y1)))) -> c10(MARK(from(first(from(y0), y1)))) MARK(s(from(first(0, y0)))) -> c10(MARK(from(first(0, y0)))) MARK(s(from(first(nil, y0)))) -> c10(MARK(from(first(nil, y0)))) MARK(s(from(first(s(y0), y1)))) -> c10(MARK(from(first(s(y0), y1)))) MARK(s(from(first(cons(y0, y1), y2)))) -> c10(MARK(from(first(cons(y0, y1), y2)))) MARK(s(from(from(y0)))) -> c10(MARK(from(from(y0)))) MARK(s(from(from(first(y0, y1))))) -> c10(MARK(from(from(first(y0, y1))))) MARK(s(from(from(from(y0))))) -> c10(MARK(from(from(from(y0))))) MARK(s(from(from(s(y0))))) -> c10(MARK(from(from(s(y0))))) MARK(s(from(from(cons(y0, y1))))) -> c10(MARK(from(from(cons(y0, y1))))) MARK(s(from(from(0)))) -> c10(MARK(from(from(0)))) MARK(s(from(from(nil)))) -> c10(MARK(from(from(nil)))) MARK(first(s(0), x1)) -> c5(A__FIRST(s(0), mark(x1))) MARK(first(s(nil), x1)) -> c5(A__FIRST(s(nil), mark(x1))) MARK(cons(cons(y0, y1), z1)) -> c11(MARK(cons(y0, y1))) MARK(cons(first(y0, 0), z1)) -> c11(MARK(first(y0, 0))) MARK(cons(first(y0, nil), z1)) -> c11(MARK(first(y0, nil))) MARK(cons(first(y0, s(y1)), z1)) -> c11(MARK(first(y0, s(y1)))) MARK(cons(first(cons(y0, y1), y2), z1)) -> c11(MARK(first(cons(y0, y1), y2))) MARK(cons(first(0, y0), z1)) -> c11(MARK(first(0, y0))) MARK(cons(first(nil, y0), z1)) -> c11(MARK(first(nil, y0))) MARK(cons(first(y0, first(y1, first(y2, y3))), z1)) -> c11(MARK(first(y0, first(y1, first(y2, y3))))) MARK(cons(first(y0, first(y1, from(y2))), z1)) -> c11(MARK(first(y0, first(y1, from(y2))))) MARK(cons(first(y0, first(y1, 0)), z1)) -> c11(MARK(first(y0, first(y1, 0)))) MARK(cons(first(y0, first(y1, nil)), z1)) -> c11(MARK(first(y0, first(y1, nil)))) MARK(cons(first(y0, first(y1, s(y2))), z1)) -> c11(MARK(first(y0, first(y1, s(y2))))) MARK(cons(first(y0, first(y1, cons(y2, y3))), z1)) -> c11(MARK(first(y0, first(y1, cons(y2, y3))))) MARK(cons(first(y0, first(first(y1, y2), y3)), z1)) -> c11(MARK(first(y0, first(first(y1, y2), y3)))) MARK(cons(first(y0, first(from(y1), y2)), z1)) -> c11(MARK(first(y0, first(from(y1), y2)))) MARK(cons(first(y0, first(0, y1)), z1)) -> c11(MARK(first(y0, first(0, y1)))) MARK(cons(first(y0, first(nil, y1)), z1)) -> c11(MARK(first(y0, first(nil, y1)))) MARK(cons(first(y0, first(s(y1), y2)), z1)) -> c11(MARK(first(y0, first(s(y1), y2)))) MARK(cons(first(y0, first(cons(y1, y2), y3)), z1)) -> c11(MARK(first(y0, first(cons(y1, y2), y3)))) MARK(cons(first(first(y0, y1), first(y2, y3)), z1)) -> c11(MARK(first(first(y0, y1), first(y2, y3)))) MARK(cons(first(from(y0), first(y1, y2)), z1)) -> c11(MARK(first(from(y0), first(y1, y2)))) MARK(cons(first(s(y0), first(y1, y2)), z1)) -> c11(MARK(first(s(y0), first(y1, y2)))) MARK(cons(first(y0, first(y1, y2)), z1)) -> c11(MARK(first(y0, first(y1, y2)))) MARK(cons(first(cons(y0, y1), first(y2, y3)), z1)) -> c11(MARK(first(cons(y0, y1), first(y2, y3)))) MARK(cons(first(y0, from(y1)), z1)) -> c11(MARK(first(y0, from(y1)))) MARK(cons(first(y0, from(first(y1, y2))), z1)) -> c11(MARK(first(y0, from(first(y1, y2))))) MARK(cons(first(y0, from(from(y1))), z1)) -> c11(MARK(first(y0, from(from(y1))))) MARK(cons(first(y0, from(0)), z1)) -> c11(MARK(first(y0, from(0)))) MARK(cons(first(y0, from(nil)), z1)) -> c11(MARK(first(y0, from(nil)))) MARK(cons(first(y0, from(s(y1))), z1)) -> c11(MARK(first(y0, from(s(y1))))) MARK(cons(first(y0, from(cons(y1, y2))), z1)) -> c11(MARK(first(y0, from(cons(y1, y2))))) MARK(cons(first(first(y0, y1), from(y2)), z1)) -> c11(MARK(first(first(y0, y1), from(y2)))) MARK(cons(first(from(y0), from(y1)), z1)) -> c11(MARK(first(from(y0), from(y1)))) MARK(cons(first(s(y0), from(y1)), z1)) -> c11(MARK(first(s(y0), from(y1)))) MARK(cons(first(cons(y0, y1), from(y2)), z1)) -> c11(MARK(first(cons(y0, y1), from(y2)))) MARK(cons(first(y0, cons(first(y1, y2), y3)), z1)) -> c11(MARK(first(y0, cons(first(y1, y2), y3)))) MARK(cons(first(y0, cons(from(y1), y2)), z1)) -> c11(MARK(first(y0, cons(from(y1), y2)))) MARK(cons(first(y0, cons(s(y1), y2)), z1)) -> c11(MARK(first(y0, cons(s(y1), y2)))) MARK(cons(first(y0, cons(cons(y1, y2), y3)), z1)) -> c11(MARK(first(y0, cons(cons(y1, y2), y3)))) MARK(cons(first(first(y0, y1), cons(y2, y3)), z1)) -> c11(MARK(first(first(y0, y1), cons(y2, y3)))) MARK(cons(first(from(y0), cons(y1, y2)), z1)) -> c11(MARK(first(from(y0), cons(y1, y2)))) MARK(cons(first(s(y0), cons(y1, y2)), z1)) -> c11(MARK(first(s(y0), cons(y1, y2)))) MARK(cons(first(cons(y0, y1), cons(y2, y3)), z1)) -> c11(MARK(first(cons(y0, y1), cons(y2, y3)))) MARK(cons(first(first(y0, first(y1, y2)), y3), z1)) -> c11(MARK(first(first(y0, first(y1, y2)), y3))) MARK(cons(first(first(y0, from(y1)), y2), z1)) -> c11(MARK(first(first(y0, from(y1)), y2))) MARK(cons(first(first(y0, 0), y1), z1)) -> c11(MARK(first(first(y0, 0), y1))) MARK(cons(first(first(y0, nil), y1), z1)) -> c11(MARK(first(first(y0, nil), y1))) MARK(cons(first(first(y0, s(y1)), y2), z1)) -> c11(MARK(first(first(y0, s(y1)), y2))) MARK(cons(first(first(y0, cons(y1, y2)), y3), z1)) -> c11(MARK(first(first(y0, cons(y1, y2)), y3))) MARK(cons(first(first(first(y0, y1), y2), y3), z1)) -> c11(MARK(first(first(first(y0, y1), y2), y3))) MARK(cons(first(first(from(y0), y1), y2), z1)) -> c11(MARK(first(first(from(y0), y1), y2))) MARK(cons(first(first(0, y0), y1), z1)) -> c11(MARK(first(first(0, y0), y1))) MARK(cons(first(first(nil, y0), y1), z1)) -> c11(MARK(first(first(nil, y0), y1))) MARK(cons(first(first(s(y0), y1), y2), z1)) -> c11(MARK(first(first(s(y0), y1), y2))) MARK(cons(first(first(cons(y0, y1), y2), y3), z1)) -> c11(MARK(first(first(cons(y0, y1), y2), y3))) MARK(cons(first(first(y0, y1), 0), z1)) -> c11(MARK(first(first(y0, y1), 0))) MARK(cons(first(first(y0, y1), nil), z1)) -> c11(MARK(first(first(y0, y1), nil))) MARK(cons(first(first(y0, y1), s(y2)), z1)) -> c11(MARK(first(first(y0, y1), s(y2)))) MARK(cons(first(first(y0, y1), y2), z1)) -> c11(MARK(first(first(y0, y1), y2))) MARK(cons(first(from(first(y0, y1)), y2), z1)) -> c11(MARK(first(from(first(y0, y1)), y2))) MARK(cons(first(from(from(y0)), y1), z1)) -> c11(MARK(first(from(from(y0)), y1))) MARK(cons(first(from(s(y0)), y1), z1)) -> c11(MARK(first(from(s(y0)), y1))) MARK(cons(first(from(cons(y0, y1)), y2), z1)) -> c11(MARK(first(from(cons(y0, y1)), y2))) MARK(cons(first(from(y0), y1), z1)) -> c11(MARK(first(from(y0), y1))) MARK(cons(first(from(y0), 0), z1)) -> c11(MARK(first(from(y0), 0))) MARK(cons(first(from(y0), nil), z1)) -> c11(MARK(first(from(y0), nil))) MARK(cons(first(from(y0), s(y1)), z1)) -> c11(MARK(first(from(y0), s(y1)))) MARK(cons(first(s(first(y0, y1)), y2), z1)) -> c11(MARK(first(s(first(y0, y1)), y2))) MARK(cons(first(s(from(y0)), y1), z1)) -> c11(MARK(first(s(from(y0)), y1))) MARK(cons(first(s(s(y0)), y1), z1)) -> c11(MARK(first(s(s(y0)), y1))) MARK(cons(first(s(cons(y0, y1)), y2), z1)) -> c11(MARK(first(s(cons(y0, y1)), y2))) MARK(cons(first(s(y0), y1), z1)) -> c11(MARK(first(s(y0), y1))) MARK(cons(first(s(y0), 0), z1)) -> c11(MARK(first(s(y0), 0))) MARK(cons(first(s(y0), nil), z1)) -> c11(MARK(first(s(y0), nil))) MARK(cons(first(s(y0), s(y1)), z1)) -> c11(MARK(first(s(y0), s(y1)))) MARK(cons(first(0, first(y0, y1)), z1)) -> c11(MARK(first(0, first(y0, y1)))) MARK(cons(first(nil, first(y0, y1)), z1)) -> c11(MARK(first(nil, first(y0, y1)))) MARK(cons(first(0, from(y0)), z1)) -> c11(MARK(first(0, from(y0)))) MARK(cons(first(nil, from(y0)), z1)) -> c11(MARK(first(nil, from(y0)))) MARK(cons(first(y0, cons(y1, y2)), z1)) -> c11(MARK(first(y0, cons(y1, y2)))) MARK(cons(first(0, cons(y0, y1)), z1)) -> c11(MARK(first(0, cons(y0, y1)))) MARK(cons(first(nil, cons(y0, y1)), z1)) -> c11(MARK(first(nil, cons(y0, y1)))) MARK(cons(first(from(0), y0), z1)) -> c11(MARK(first(from(0), y0))) MARK(cons(first(from(nil), y0), z1)) -> c11(MARK(first(from(nil), y0))) MARK(cons(first(s(0), y0), z1)) -> c11(MARK(first(s(0), y0))) MARK(cons(first(s(nil), y0), z1)) -> c11(MARK(first(s(nil), y0))) MARK(cons(first(y0, cons(0, y1)), z1)) -> c11(MARK(first(y0, cons(0, y1)))) MARK(cons(first(y0, cons(nil, y1)), z1)) -> c11(MARK(first(y0, cons(nil, y1)))) MARK(cons(from(s(y0)), z1)) -> c11(MARK(from(s(y0)))) MARK(cons(from(cons(y0, y1)), z1)) -> c11(MARK(from(cons(y0, y1)))) MARK(cons(from(first(y0, y1)), z1)) -> c11(MARK(from(first(y0, y1)))) MARK(cons(from(first(y0, first(y1, y2))), z1)) -> c11(MARK(from(first(y0, first(y1, y2))))) MARK(cons(from(first(y0, from(y1))), z1)) -> c11(MARK(from(first(y0, from(y1))))) MARK(cons(from(first(y0, 0)), z1)) -> c11(MARK(from(first(y0, 0)))) MARK(cons(from(first(y0, nil)), z1)) -> c11(MARK(from(first(y0, nil)))) MARK(cons(from(first(y0, s(y1))), z1)) -> c11(MARK(from(first(y0, s(y1))))) MARK(cons(from(first(y0, cons(y1, y2))), z1)) -> c11(MARK(from(first(y0, cons(y1, y2))))) MARK(cons(from(first(first(y0, y1), y2)), z1)) -> c11(MARK(from(first(first(y0, y1), y2)))) MARK(cons(from(first(from(y0), y1)), z1)) -> c11(MARK(from(first(from(y0), y1)))) MARK(cons(from(first(0, y0)), z1)) -> c11(MARK(from(first(0, y0)))) MARK(cons(from(first(nil, y0)), z1)) -> c11(MARK(from(first(nil, y0)))) MARK(cons(from(first(s(y0), y1)), z1)) -> c11(MARK(from(first(s(y0), y1)))) MARK(cons(from(first(cons(y0, y1), y2)), z1)) -> c11(MARK(from(first(cons(y0, y1), y2)))) MARK(cons(from(from(y0)), z1)) -> c11(MARK(from(from(y0)))) MARK(cons(from(from(first(y0, y1))), z1)) -> c11(MARK(from(from(first(y0, y1))))) MARK(cons(from(from(from(y0))), z1)) -> c11(MARK(from(from(from(y0))))) MARK(cons(from(from(s(y0))), z1)) -> c11(MARK(from(from(s(y0))))) MARK(cons(from(from(cons(y0, y1))), z1)) -> c11(MARK(from(from(cons(y0, y1))))) MARK(cons(from(from(0)), z1)) -> c11(MARK(from(from(0)))) MARK(cons(from(from(nil)), z1)) -> c11(MARK(from(from(nil)))) MARK(cons(s(s(y0)), z1)) -> c11(MARK(s(s(y0)))) MARK(cons(s(cons(y0, y1)), z1)) -> c11(MARK(s(cons(y0, y1)))) MARK(cons(s(first(y0, 0)), z1)) -> c11(MARK(s(first(y0, 0)))) MARK(cons(s(first(y0, nil)), z1)) -> c11(MARK(s(first(y0, nil)))) MARK(cons(s(first(y0, s(y1))), z1)) -> c11(MARK(s(first(y0, s(y1))))) MARK(cons(s(first(cons(y0, y1), y2)), z1)) -> c11(MARK(s(first(cons(y0, y1), y2)))) MARK(cons(s(first(0, y0)), z1)) -> c11(MARK(s(first(0, y0)))) MARK(cons(s(first(nil, y0)), z1)) -> c11(MARK(s(first(nil, y0)))) MARK(cons(s(first(y0, first(y1, first(y2, y3)))), z1)) -> c11(MARK(s(first(y0, first(y1, first(y2, y3)))))) MARK(cons(s(first(y0, first(y1, from(y2)))), z1)) -> c11(MARK(s(first(y0, first(y1, from(y2)))))) MARK(cons(s(first(y0, first(y1, 0))), z1)) -> c11(MARK(s(first(y0, first(y1, 0))))) MARK(cons(s(first(y0, first(y1, nil))), z1)) -> c11(MARK(s(first(y0, first(y1, nil))))) MARK(cons(s(first(y0, first(y1, s(y2)))), z1)) -> c11(MARK(s(first(y0, first(y1, s(y2)))))) MARK(cons(s(first(y0, first(y1, cons(y2, y3)))), z1)) -> c11(MARK(s(first(y0, first(y1, cons(y2, y3)))))) MARK(cons(s(first(y0, first(first(y1, y2), y3))), z1)) -> c11(MARK(s(first(y0, first(first(y1, y2), y3))))) MARK(cons(s(first(y0, first(from(y1), y2))), z1)) -> c11(MARK(s(first(y0, first(from(y1), y2))))) MARK(cons(s(first(y0, first(0, y1))), z1)) -> c11(MARK(s(first(y0, first(0, y1))))) MARK(cons(s(first(y0, first(nil, y1))), z1)) -> c11(MARK(s(first(y0, first(nil, y1))))) MARK(cons(s(first(y0, first(s(y1), y2))), z1)) -> c11(MARK(s(first(y0, first(s(y1), y2))))) MARK(cons(s(first(y0, first(cons(y1, y2), y3))), z1)) -> c11(MARK(s(first(y0, first(cons(y1, y2), y3))))) MARK(cons(s(first(first(y0, y1), first(y2, y3))), z1)) -> c11(MARK(s(first(first(y0, y1), first(y2, y3))))) MARK(cons(s(first(from(y0), first(y1, y2))), z1)) -> c11(MARK(s(first(from(y0), first(y1, y2))))) MARK(cons(s(first(s(y0), first(y1, y2))), z1)) -> c11(MARK(s(first(s(y0), first(y1, y2))))) MARK(cons(s(first(y0, first(y1, y2))), z1)) -> c11(MARK(s(first(y0, first(y1, y2))))) MARK(cons(s(first(cons(y0, y1), first(y2, y3))), z1)) -> c11(MARK(s(first(cons(y0, y1), first(y2, y3))))) MARK(cons(s(first(y0, from(y1))), z1)) -> c11(MARK(s(first(y0, from(y1))))) MARK(cons(s(first(y0, from(first(y1, y2)))), z1)) -> c11(MARK(s(first(y0, from(first(y1, y2)))))) MARK(cons(s(first(y0, from(from(y1)))), z1)) -> c11(MARK(s(first(y0, from(from(y1)))))) MARK(cons(s(first(y0, from(0))), z1)) -> c11(MARK(s(first(y0, from(0))))) MARK(cons(s(first(y0, from(nil))), z1)) -> c11(MARK(s(first(y0, from(nil))))) MARK(cons(s(first(y0, from(s(y1)))), z1)) -> c11(MARK(s(first(y0, from(s(y1)))))) MARK(cons(s(first(y0, from(cons(y1, y2)))), z1)) -> c11(MARK(s(first(y0, from(cons(y1, y2)))))) MARK(cons(s(first(first(y0, y1), from(y2))), z1)) -> c11(MARK(s(first(first(y0, y1), from(y2))))) MARK(cons(s(first(from(y0), from(y1))), z1)) -> c11(MARK(s(first(from(y0), from(y1))))) MARK(cons(s(first(s(y0), from(y1))), z1)) -> c11(MARK(s(first(s(y0), from(y1))))) MARK(cons(s(first(cons(y0, y1), from(y2))), z1)) -> c11(MARK(s(first(cons(y0, y1), from(y2))))) MARK(cons(s(first(y0, cons(first(y1, y2), y3))), z1)) -> c11(MARK(s(first(y0, cons(first(y1, y2), y3))))) MARK(cons(s(first(y0, cons(from(y1), y2))), z1)) -> c11(MARK(s(first(y0, cons(from(y1), y2))))) MARK(cons(s(first(y0, cons(s(y1), y2))), z1)) -> c11(MARK(s(first(y0, cons(s(y1), y2))))) MARK(cons(s(first(y0, cons(cons(y1, y2), y3))), z1)) -> c11(MARK(s(first(y0, cons(cons(y1, y2), y3))))) MARK(cons(s(first(first(y0, y1), cons(y2, y3))), z1)) -> c11(MARK(s(first(first(y0, y1), cons(y2, y3))))) MARK(cons(s(first(from(y0), cons(y1, y2))), z1)) -> c11(MARK(s(first(from(y0), cons(y1, y2))))) MARK(cons(s(first(s(y0), cons(y1, y2))), z1)) -> c11(MARK(s(first(s(y0), cons(y1, y2))))) MARK(cons(s(first(cons(y0, y1), cons(y2, y3))), z1)) -> c11(MARK(s(first(cons(y0, y1), cons(y2, y3))))) MARK(cons(s(first(first(y0, first(y1, y2)), y3)), z1)) -> c11(MARK(s(first(first(y0, first(y1, y2)), y3)))) MARK(cons(s(first(first(y0, from(y1)), y2)), z1)) -> c11(MARK(s(first(first(y0, from(y1)), y2)))) MARK(cons(s(first(first(y0, 0), y1)), z1)) -> c11(MARK(s(first(first(y0, 0), y1)))) MARK(cons(s(first(first(y0, nil), y1)), z1)) -> c11(MARK(s(first(first(y0, nil), y1)))) MARK(cons(s(first(first(y0, s(y1)), y2)), z1)) -> c11(MARK(s(first(first(y0, s(y1)), y2)))) MARK(cons(s(first(first(y0, cons(y1, y2)), y3)), z1)) -> c11(MARK(s(first(first(y0, cons(y1, y2)), y3)))) MARK(cons(s(first(first(first(y0, y1), y2), y3)), z1)) -> c11(MARK(s(first(first(first(y0, y1), y2), y3)))) MARK(cons(s(first(first(from(y0), y1), y2)), z1)) -> c11(MARK(s(first(first(from(y0), y1), y2)))) MARK(cons(s(first(first(0, y0), y1)), z1)) -> c11(MARK(s(first(first(0, y0), y1)))) MARK(cons(s(first(first(nil, y0), y1)), z1)) -> c11(MARK(s(first(first(nil, y0), y1)))) MARK(cons(s(first(first(s(y0), y1), y2)), z1)) -> c11(MARK(s(first(first(s(y0), y1), y2)))) MARK(cons(s(first(first(cons(y0, y1), y2), y3)), z1)) -> c11(MARK(s(first(first(cons(y0, y1), y2), y3)))) MARK(cons(s(first(first(y0, y1), 0)), z1)) -> c11(MARK(s(first(first(y0, y1), 0)))) MARK(cons(s(first(first(y0, y1), nil)), z1)) -> c11(MARK(s(first(first(y0, y1), nil)))) MARK(cons(s(first(first(y0, y1), s(y2))), z1)) -> c11(MARK(s(first(first(y0, y1), s(y2))))) MARK(cons(s(first(first(y0, y1), y2)), z1)) -> c11(MARK(s(first(first(y0, y1), y2)))) MARK(cons(s(first(from(first(y0, y1)), y2)), z1)) -> c11(MARK(s(first(from(first(y0, y1)), y2)))) MARK(cons(s(first(from(from(y0)), y1)), z1)) -> c11(MARK(s(first(from(from(y0)), y1)))) MARK(cons(s(first(from(s(y0)), y1)), z1)) -> c11(MARK(s(first(from(s(y0)), y1)))) MARK(cons(s(first(from(cons(y0, y1)), y2)), z1)) -> c11(MARK(s(first(from(cons(y0, y1)), y2)))) MARK(cons(s(first(from(y0), y1)), z1)) -> c11(MARK(s(first(from(y0), y1)))) MARK(cons(s(first(from(y0), 0)), z1)) -> c11(MARK(s(first(from(y0), 0)))) MARK(cons(s(first(from(y0), nil)), z1)) -> c11(MARK(s(first(from(y0), nil)))) MARK(cons(s(first(from(y0), s(y1))), z1)) -> c11(MARK(s(first(from(y0), s(y1))))) MARK(cons(s(first(s(first(y0, y1)), y2)), z1)) -> c11(MARK(s(first(s(first(y0, y1)), y2)))) MARK(cons(s(first(s(from(y0)), y1)), z1)) -> c11(MARK(s(first(s(from(y0)), y1)))) MARK(cons(s(first(s(0), y0)), z1)) -> c11(MARK(s(first(s(0), y0)))) MARK(cons(s(first(s(nil), y0)), z1)) -> c11(MARK(s(first(s(nil), y0)))) MARK(cons(s(first(s(s(y0)), y1)), z1)) -> c11(MARK(s(first(s(s(y0)), y1)))) MARK(cons(s(first(s(cons(y0, y1)), y2)), z1)) -> c11(MARK(s(first(s(cons(y0, y1)), y2)))) MARK(cons(s(first(s(y0), y1)), z1)) -> c11(MARK(s(first(s(y0), y1)))) MARK(cons(s(first(s(y0), 0)), z1)) -> c11(MARK(s(first(s(y0), 0)))) MARK(cons(s(first(s(y0), nil)), z1)) -> c11(MARK(s(first(s(y0), nil)))) MARK(cons(s(first(s(y0), s(y1))), z1)) -> c11(MARK(s(first(s(y0), s(y1))))) MARK(cons(s(first(0, first(y0, y1))), z1)) -> c11(MARK(s(first(0, first(y0, y1))))) MARK(cons(s(first(nil, first(y0, y1))), z1)) -> c11(MARK(s(first(nil, first(y0, y1))))) MARK(cons(s(first(0, from(y0))), z1)) -> c11(MARK(s(first(0, from(y0))))) MARK(cons(s(first(nil, from(y0))), z1)) -> c11(MARK(s(first(nil, from(y0))))) MARK(cons(s(first(y0, cons(y1, y2))), z1)) -> c11(MARK(s(first(y0, cons(y1, y2))))) MARK(cons(s(first(0, cons(y0, y1))), z1)) -> c11(MARK(s(first(0, cons(y0, y1))))) MARK(cons(s(first(nil, cons(y0, y1))), z1)) -> c11(MARK(s(first(nil, cons(y0, y1))))) MARK(cons(s(first(from(0), y0)), z1)) -> c11(MARK(s(first(from(0), y0)))) MARK(cons(s(first(from(nil), y0)), z1)) -> c11(MARK(s(first(from(nil), y0)))) MARK(cons(s(first(y0, cons(0, y1))), z1)) -> c11(MARK(s(first(y0, cons(0, y1))))) MARK(cons(s(first(y0, cons(nil, y1))), z1)) -> c11(MARK(s(first(y0, cons(nil, y1))))) MARK(cons(s(from(s(y0))), z1)) -> c11(MARK(s(from(s(y0))))) MARK(cons(s(from(cons(y0, y1))), z1)) -> c11(MARK(s(from(cons(y0, y1))))) MARK(cons(s(from(first(y0, y1))), z1)) -> c11(MARK(s(from(first(y0, y1))))) MARK(cons(s(from(first(y0, first(y1, y2)))), z1)) -> c11(MARK(s(from(first(y0, first(y1, y2)))))) MARK(cons(s(from(first(y0, from(y1)))), z1)) -> c11(MARK(s(from(first(y0, from(y1)))))) MARK(cons(s(from(first(y0, 0))), z1)) -> c11(MARK(s(from(first(y0, 0))))) MARK(cons(s(from(first(y0, nil))), z1)) -> c11(MARK(s(from(first(y0, nil))))) MARK(cons(s(from(first(y0, s(y1)))), z1)) -> c11(MARK(s(from(first(y0, s(y1)))))) MARK(cons(s(from(first(y0, cons(y1, y2)))), z1)) -> c11(MARK(s(from(first(y0, cons(y1, y2)))))) MARK(cons(s(from(first(first(y0, y1), y2))), z1)) -> c11(MARK(s(from(first(first(y0, y1), y2))))) MARK(cons(s(from(first(from(y0), y1))), z1)) -> c11(MARK(s(from(first(from(y0), y1))))) MARK(cons(s(from(first(0, y0))), z1)) -> c11(MARK(s(from(first(0, y0))))) MARK(cons(s(from(first(nil, y0))), z1)) -> c11(MARK(s(from(first(nil, y0))))) MARK(cons(s(from(first(s(y0), y1))), z1)) -> c11(MARK(s(from(first(s(y0), y1))))) MARK(cons(s(from(first(cons(y0, y1), y2))), z1)) -> c11(MARK(s(from(first(cons(y0, y1), y2))))) MARK(cons(s(from(from(y0))), z1)) -> c11(MARK(s(from(from(y0))))) MARK(cons(s(from(from(first(y0, y1)))), z1)) -> c11(MARK(s(from(from(first(y0, y1)))))) MARK(cons(s(from(from(from(y0)))), z1)) -> c11(MARK(s(from(from(from(y0)))))) MARK(cons(s(from(from(s(y0)))), z1)) -> c11(MARK(s(from(from(s(y0)))))) MARK(cons(s(from(from(cons(y0, y1)))), z1)) -> c11(MARK(s(from(from(cons(y0, y1)))))) MARK(cons(s(from(from(0))), z1)) -> c11(MARK(s(from(from(0))))) MARK(cons(s(from(from(nil))), z1)) -> c11(MARK(s(from(from(nil))))) MARK(first(first(y0, 0), 0)) -> c5(MARK(first(y0, 0))) MARK(first(first(y0, nil), 0)) -> c5(MARK(first(y0, nil))) MARK(first(first(y0, s(y1)), 0)) -> c5(MARK(first(y0, s(y1)))) MARK(first(first(cons(y0, y1), y2), 0)) -> c5(MARK(first(cons(y0, y1), y2))) MARK(first(first(0, y0), 0)) -> c5(MARK(first(0, y0))) MARK(first(first(nil, y0), 0)) -> c5(MARK(first(nil, y0))) MARK(first(first(y0, first(y1, first(y2, y3))), 0)) -> c5(MARK(first(y0, first(y1, first(y2, y3))))) MARK(first(first(y0, first(y1, from(y2))), 0)) -> c5(MARK(first(y0, first(y1, from(y2))))) MARK(first(first(y0, first(y1, 0)), 0)) -> c5(MARK(first(y0, first(y1, 0)))) MARK(first(first(y0, first(y1, nil)), 0)) -> c5(MARK(first(y0, first(y1, nil)))) MARK(first(first(y0, first(y1, s(y2))), 0)) -> c5(MARK(first(y0, first(y1, s(y2))))) MARK(first(first(y0, first(y1, cons(y2, y3))), 0)) -> c5(MARK(first(y0, first(y1, cons(y2, y3))))) MARK(first(first(y0, first(first(y1, y2), y3)), 0)) -> c5(MARK(first(y0, first(first(y1, y2), y3)))) MARK(first(first(y0, first(from(y1), y2)), 0)) -> c5(MARK(first(y0, first(from(y1), y2)))) MARK(first(first(y0, first(0, y1)), 0)) -> c5(MARK(first(y0, first(0, y1)))) MARK(first(first(y0, first(nil, y1)), 0)) -> c5(MARK(first(y0, first(nil, y1)))) MARK(first(first(y0, first(s(y1), y2)), 0)) -> c5(MARK(first(y0, first(s(y1), y2)))) MARK(first(first(y0, first(cons(y1, y2), y3)), 0)) -> c5(MARK(first(y0, first(cons(y1, y2), y3)))) MARK(first(first(first(y0, y1), first(y2, y3)), 0)) -> c5(MARK(first(first(y0, y1), first(y2, y3)))) MARK(first(first(from(y0), first(y1, y2)), 0)) -> c5(MARK(first(from(y0), first(y1, y2)))) MARK(first(first(s(y0), first(y1, y2)), 0)) -> c5(MARK(first(s(y0), first(y1, y2)))) MARK(first(first(y0, first(y1, y2)), 0)) -> c5(MARK(first(y0, first(y1, y2)))) MARK(first(first(cons(y0, y1), first(y2, y3)), 0)) -> c5(MARK(first(cons(y0, y1), first(y2, y3)))) MARK(first(first(y0, from(y1)), 0)) -> c5(MARK(first(y0, from(y1)))) MARK(first(first(y0, from(first(y1, y2))), 0)) -> c5(MARK(first(y0, from(first(y1, y2))))) MARK(first(first(y0, from(from(y1))), 0)) -> c5(MARK(first(y0, from(from(y1))))) MARK(first(first(y0, from(0)), 0)) -> c5(MARK(first(y0, from(0)))) MARK(first(first(y0, from(nil)), 0)) -> c5(MARK(first(y0, from(nil)))) MARK(first(first(y0, from(s(y1))), 0)) -> c5(MARK(first(y0, from(s(y1))))) MARK(first(first(y0, from(cons(y1, y2))), 0)) -> c5(MARK(first(y0, from(cons(y1, y2))))) MARK(first(first(first(y0, y1), from(y2)), 0)) -> c5(MARK(first(first(y0, y1), from(y2)))) MARK(first(first(from(y0), from(y1)), 0)) -> c5(MARK(first(from(y0), from(y1)))) MARK(first(first(s(y0), from(y1)), 0)) -> c5(MARK(first(s(y0), from(y1)))) MARK(first(first(cons(y0, y1), from(y2)), 0)) -> c5(MARK(first(cons(y0, y1), from(y2)))) MARK(first(first(y0, cons(first(y1, y2), y3)), 0)) -> c5(MARK(first(y0, cons(first(y1, y2), y3)))) MARK(first(first(y0, cons(from(y1), y2)), 0)) -> c5(MARK(first(y0, cons(from(y1), y2)))) MARK(first(first(y0, cons(s(y1), y2)), 0)) -> c5(MARK(first(y0, cons(s(y1), y2)))) MARK(first(first(y0, cons(cons(y1, y2), y3)), 0)) -> c5(MARK(first(y0, cons(cons(y1, y2), y3)))) MARK(first(first(first(y0, y1), cons(y2, y3)), 0)) -> c5(MARK(first(first(y0, y1), cons(y2, y3)))) MARK(first(first(from(y0), cons(y1, y2)), 0)) -> c5(MARK(first(from(y0), cons(y1, y2)))) MARK(first(first(s(y0), cons(y1, y2)), 0)) -> c5(MARK(first(s(y0), cons(y1, y2)))) MARK(first(first(cons(y0, y1), cons(y2, y3)), 0)) -> c5(MARK(first(cons(y0, y1), cons(y2, y3)))) MARK(first(first(first(y0, first(y1, y2)), y3), 0)) -> c5(MARK(first(first(y0, first(y1, y2)), y3))) MARK(first(first(first(y0, from(y1)), y2), 0)) -> c5(MARK(first(first(y0, from(y1)), y2))) MARK(first(first(first(y0, 0), y1), 0)) -> c5(MARK(first(first(y0, 0), y1))) MARK(first(first(first(y0, nil), y1), 0)) -> c5(MARK(first(first(y0, nil), y1))) MARK(first(first(first(y0, s(y1)), y2), 0)) -> c5(MARK(first(first(y0, s(y1)), y2))) MARK(first(first(first(y0, cons(y1, y2)), y3), 0)) -> c5(MARK(first(first(y0, cons(y1, y2)), y3))) MARK(first(first(first(first(y0, y1), y2), y3), 0)) -> c5(MARK(first(first(first(y0, y1), y2), y3))) MARK(first(first(first(from(y0), y1), y2), 0)) -> c5(MARK(first(first(from(y0), y1), y2))) MARK(first(first(first(0, y0), y1), 0)) -> c5(MARK(first(first(0, y0), y1))) MARK(first(first(first(nil, y0), y1), 0)) -> c5(MARK(first(first(nil, y0), y1))) MARK(first(first(first(s(y0), y1), y2), 0)) -> c5(MARK(first(first(s(y0), y1), y2))) MARK(first(first(first(cons(y0, y1), y2), y3), 0)) -> c5(MARK(first(first(cons(y0, y1), y2), y3))) MARK(first(first(first(y0, y1), 0), 0)) -> c5(MARK(first(first(y0, y1), 0))) MARK(first(first(first(y0, y1), nil), 0)) -> c5(MARK(first(first(y0, y1), nil))) MARK(first(first(first(y0, y1), s(y2)), 0)) -> c5(MARK(first(first(y0, y1), s(y2)))) MARK(first(first(first(y0, y1), y2), 0)) -> c5(MARK(first(first(y0, y1), y2))) MARK(first(first(from(first(y0, y1)), y2), 0)) -> c5(MARK(first(from(first(y0, y1)), y2))) MARK(first(first(from(from(y0)), y1), 0)) -> c5(MARK(first(from(from(y0)), y1))) MARK(first(first(from(s(y0)), y1), 0)) -> c5(MARK(first(from(s(y0)), y1))) MARK(first(first(from(cons(y0, y1)), y2), 0)) -> c5(MARK(first(from(cons(y0, y1)), y2))) MARK(first(first(from(y0), y1), 0)) -> c5(MARK(first(from(y0), y1))) MARK(first(first(from(y0), 0), 0)) -> c5(MARK(first(from(y0), 0))) MARK(first(first(from(y0), nil), 0)) -> c5(MARK(first(from(y0), nil))) MARK(first(first(from(y0), s(y1)), 0)) -> c5(MARK(first(from(y0), s(y1)))) MARK(first(first(s(first(y0, y1)), y2), 0)) -> c5(MARK(first(s(first(y0, y1)), y2))) MARK(first(first(s(from(y0)), y1), 0)) -> c5(MARK(first(s(from(y0)), y1))) MARK(first(first(s(s(y0)), y1), 0)) -> c5(MARK(first(s(s(y0)), y1))) MARK(first(first(s(cons(y0, y1)), y2), 0)) -> c5(MARK(first(s(cons(y0, y1)), y2))) MARK(first(first(s(y0), y1), 0)) -> c5(MARK(first(s(y0), y1))) MARK(first(first(s(y0), 0), 0)) -> c5(MARK(first(s(y0), 0))) MARK(first(first(s(y0), nil), 0)) -> c5(MARK(first(s(y0), nil))) MARK(first(first(s(y0), s(y1)), 0)) -> c5(MARK(first(s(y0), s(y1)))) MARK(first(first(0, first(y0, y1)), 0)) -> c5(MARK(first(0, first(y0, y1)))) MARK(first(first(nil, first(y0, y1)), 0)) -> c5(MARK(first(nil, first(y0, y1)))) MARK(first(first(0, from(y0)), 0)) -> c5(MARK(first(0, from(y0)))) MARK(first(first(nil, from(y0)), 0)) -> c5(MARK(first(nil, from(y0)))) MARK(first(first(y0, cons(y1, y2)), 0)) -> c5(MARK(first(y0, cons(y1, y2)))) MARK(first(first(0, cons(y0, y1)), 0)) -> c5(MARK(first(0, cons(y0, y1)))) MARK(first(first(nil, cons(y0, y1)), 0)) -> c5(MARK(first(nil, cons(y0, y1)))) MARK(first(first(from(0), y0), 0)) -> c5(MARK(first(from(0), y0))) MARK(first(first(from(nil), y0), 0)) -> c5(MARK(first(from(nil), y0))) MARK(first(first(s(0), y0), 0)) -> c5(MARK(first(s(0), y0))) MARK(first(first(s(nil), y0), 0)) -> c5(MARK(first(s(nil), y0))) MARK(first(first(y0, cons(0, y1)), 0)) -> c5(MARK(first(y0, cons(0, y1)))) MARK(first(first(y0, cons(nil, y1)), 0)) -> c5(MARK(first(y0, cons(nil, y1)))) MARK(first(from(s(y0)), 0)) -> c5(MARK(from(s(y0)))) MARK(first(from(cons(y0, y1)), 0)) -> c5(MARK(from(cons(y0, y1)))) MARK(first(from(first(y0, y1)), 0)) -> c5(MARK(from(first(y0, y1)))) MARK(first(from(first(y0, first(y1, y2))), 0)) -> c5(MARK(from(first(y0, first(y1, y2))))) MARK(first(from(first(y0, from(y1))), 0)) -> c5(MARK(from(first(y0, from(y1))))) MARK(first(from(first(y0, 0)), 0)) -> c5(MARK(from(first(y0, 0)))) MARK(first(from(first(y0, nil)), 0)) -> c5(MARK(from(first(y0, nil)))) MARK(first(from(first(y0, s(y1))), 0)) -> c5(MARK(from(first(y0, s(y1))))) MARK(first(from(first(y0, cons(y1, y2))), 0)) -> c5(MARK(from(first(y0, cons(y1, y2))))) MARK(first(from(first(first(y0, y1), y2)), 0)) -> c5(MARK(from(first(first(y0, y1), y2)))) MARK(first(from(first(from(y0), y1)), 0)) -> c5(MARK(from(first(from(y0), y1)))) MARK(first(from(first(0, y0)), 0)) -> c5(MARK(from(first(0, y0)))) MARK(first(from(first(nil, y0)), 0)) -> c5(MARK(from(first(nil, y0)))) MARK(first(from(first(s(y0), y1)), 0)) -> c5(MARK(from(first(s(y0), y1)))) MARK(first(from(first(cons(y0, y1), y2)), 0)) -> c5(MARK(from(first(cons(y0, y1), y2)))) MARK(first(from(from(y0)), 0)) -> c5(MARK(from(from(y0)))) MARK(first(from(from(first(y0, y1))), 0)) -> c5(MARK(from(from(first(y0, y1))))) MARK(first(from(from(from(y0))), 0)) -> c5(MARK(from(from(from(y0))))) MARK(first(from(from(s(y0))), 0)) -> c5(MARK(from(from(s(y0))))) MARK(first(from(from(cons(y0, y1))), 0)) -> c5(MARK(from(from(cons(y0, y1))))) MARK(first(from(from(0)), 0)) -> c5(MARK(from(from(0)))) MARK(first(from(from(nil)), 0)) -> c5(MARK(from(from(nil)))) MARK(first(s(s(y0)), 0)) -> c5(MARK(s(s(y0)))) MARK(first(s(cons(y0, y1)), 0)) -> c5(MARK(s(cons(y0, y1)))) MARK(first(s(first(y0, 0)), 0)) -> c5(MARK(s(first(y0, 0)))) MARK(first(s(first(y0, nil)), 0)) -> c5(MARK(s(first(y0, nil)))) MARK(first(s(first(y0, s(y1))), 0)) -> c5(MARK(s(first(y0, s(y1))))) MARK(first(s(first(cons(y0, y1), y2)), 0)) -> c5(MARK(s(first(cons(y0, y1), y2)))) MARK(first(s(first(0, y0)), 0)) -> c5(MARK(s(first(0, y0)))) MARK(first(s(first(nil, y0)), 0)) -> c5(MARK(s(first(nil, y0)))) MARK(first(s(first(y0, first(y1, first(y2, y3)))), 0)) -> c5(MARK(s(first(y0, first(y1, first(y2, y3)))))) MARK(first(s(first(y0, first(y1, from(y2)))), 0)) -> c5(MARK(s(first(y0, first(y1, from(y2)))))) MARK(first(s(first(y0, first(y1, 0))), 0)) -> c5(MARK(s(first(y0, first(y1, 0))))) MARK(first(s(first(y0, first(y1, nil))), 0)) -> c5(MARK(s(first(y0, first(y1, nil))))) MARK(first(s(first(y0, first(y1, s(y2)))), 0)) -> c5(MARK(s(first(y0, first(y1, s(y2)))))) MARK(first(s(first(y0, first(y1, cons(y2, y3)))), 0)) -> c5(MARK(s(first(y0, first(y1, cons(y2, y3)))))) MARK(first(s(first(y0, first(first(y1, y2), y3))), 0)) -> c5(MARK(s(first(y0, first(first(y1, y2), y3))))) MARK(first(s(first(y0, first(from(y1), y2))), 0)) -> c5(MARK(s(first(y0, first(from(y1), y2))))) MARK(first(s(first(y0, first(0, y1))), 0)) -> c5(MARK(s(first(y0, first(0, y1))))) MARK(first(s(first(y0, first(nil, y1))), 0)) -> c5(MARK(s(first(y0, first(nil, y1))))) MARK(first(s(first(y0, first(s(y1), y2))), 0)) -> c5(MARK(s(first(y0, first(s(y1), y2))))) MARK(first(s(first(y0, first(cons(y1, y2), y3))), 0)) -> c5(MARK(s(first(y0, first(cons(y1, y2), y3))))) MARK(first(s(first(first(y0, y1), first(y2, y3))), 0)) -> c5(MARK(s(first(first(y0, y1), first(y2, y3))))) MARK(first(s(first(from(y0), first(y1, y2))), 0)) -> c5(MARK(s(first(from(y0), first(y1, y2))))) MARK(first(s(first(s(y0), first(y1, y2))), 0)) -> c5(MARK(s(first(s(y0), first(y1, y2))))) MARK(first(s(first(y0, first(y1, y2))), 0)) -> c5(MARK(s(first(y0, first(y1, y2))))) MARK(first(s(first(cons(y0, y1), first(y2, y3))), 0)) -> c5(MARK(s(first(cons(y0, y1), first(y2, y3))))) MARK(first(s(first(y0, from(y1))), 0)) -> c5(MARK(s(first(y0, from(y1))))) MARK(first(s(first(y0, from(first(y1, y2)))), 0)) -> c5(MARK(s(first(y0, from(first(y1, y2)))))) MARK(first(s(first(y0, from(from(y1)))), 0)) -> c5(MARK(s(first(y0, from(from(y1)))))) MARK(first(s(first(y0, from(0))), 0)) -> c5(MARK(s(first(y0, from(0))))) MARK(first(s(first(y0, from(nil))), 0)) -> c5(MARK(s(first(y0, from(nil))))) MARK(first(s(first(y0, from(s(y1)))), 0)) -> c5(MARK(s(first(y0, from(s(y1)))))) MARK(first(s(first(y0, from(cons(y1, y2)))), 0)) -> c5(MARK(s(first(y0, from(cons(y1, y2)))))) MARK(first(s(first(first(y0, y1), from(y2))), 0)) -> c5(MARK(s(first(first(y0, y1), from(y2))))) MARK(first(s(first(from(y0), from(y1))), 0)) -> c5(MARK(s(first(from(y0), from(y1))))) MARK(first(s(first(s(y0), from(y1))), 0)) -> c5(MARK(s(first(s(y0), from(y1))))) MARK(first(s(first(cons(y0, y1), from(y2))), 0)) -> c5(MARK(s(first(cons(y0, y1), from(y2))))) MARK(first(s(first(y0, cons(first(y1, y2), y3))), 0)) -> c5(MARK(s(first(y0, cons(first(y1, y2), y3))))) MARK(first(s(first(y0, cons(from(y1), y2))), 0)) -> c5(MARK(s(first(y0, cons(from(y1), y2))))) MARK(first(s(first(y0, cons(s(y1), y2))), 0)) -> c5(MARK(s(first(y0, cons(s(y1), y2))))) MARK(first(s(first(y0, cons(cons(y1, y2), y3))), 0)) -> c5(MARK(s(first(y0, cons(cons(y1, y2), y3))))) MARK(first(s(first(first(y0, y1), cons(y2, y3))), 0)) -> c5(MARK(s(first(first(y0, y1), cons(y2, y3))))) MARK(first(s(first(from(y0), cons(y1, y2))), 0)) -> c5(MARK(s(first(from(y0), cons(y1, y2))))) MARK(first(s(first(s(y0), cons(y1, y2))), 0)) -> c5(MARK(s(first(s(y0), cons(y1, y2))))) MARK(first(s(first(cons(y0, y1), cons(y2, y3))), 0)) -> c5(MARK(s(first(cons(y0, y1), cons(y2, y3))))) MARK(first(s(first(first(y0, first(y1, y2)), y3)), 0)) -> c5(MARK(s(first(first(y0, first(y1, y2)), y3)))) MARK(first(s(first(first(y0, from(y1)), y2)), 0)) -> c5(MARK(s(first(first(y0, from(y1)), y2)))) MARK(first(s(first(first(y0, 0), y1)), 0)) -> c5(MARK(s(first(first(y0, 0), y1)))) MARK(first(s(first(first(y0, nil), y1)), 0)) -> c5(MARK(s(first(first(y0, nil), y1)))) MARK(first(s(first(first(y0, s(y1)), y2)), 0)) -> c5(MARK(s(first(first(y0, s(y1)), y2)))) MARK(first(s(first(first(y0, cons(y1, y2)), y3)), 0)) -> c5(MARK(s(first(first(y0, cons(y1, y2)), y3)))) MARK(first(s(first(first(first(y0, y1), y2), y3)), 0)) -> c5(MARK(s(first(first(first(y0, y1), y2), y3)))) MARK(first(s(first(first(from(y0), y1), y2)), 0)) -> c5(MARK(s(first(first(from(y0), y1), y2)))) MARK(first(s(first(first(0, y0), y1)), 0)) -> c5(MARK(s(first(first(0, y0), y1)))) MARK(first(s(first(first(nil, y0), y1)), 0)) -> c5(MARK(s(first(first(nil, y0), y1)))) MARK(first(s(first(first(s(y0), y1), y2)), 0)) -> c5(MARK(s(first(first(s(y0), y1), y2)))) MARK(first(s(first(first(cons(y0, y1), y2), y3)), 0)) -> c5(MARK(s(first(first(cons(y0, y1), y2), y3)))) MARK(first(s(first(first(y0, y1), 0)), 0)) -> c5(MARK(s(first(first(y0, y1), 0)))) MARK(first(s(first(first(y0, y1), nil)), 0)) -> c5(MARK(s(first(first(y0, y1), nil)))) MARK(first(s(first(first(y0, y1), s(y2))), 0)) -> c5(MARK(s(first(first(y0, y1), s(y2))))) MARK(first(s(first(first(y0, y1), y2)), 0)) -> c5(MARK(s(first(first(y0, y1), y2)))) MARK(first(s(first(from(first(y0, y1)), y2)), 0)) -> c5(MARK(s(first(from(first(y0, y1)), y2)))) MARK(first(s(first(from(from(y0)), y1)), 0)) -> c5(MARK(s(first(from(from(y0)), y1)))) MARK(first(s(first(from(s(y0)), y1)), 0)) -> c5(MARK(s(first(from(s(y0)), y1)))) MARK(first(s(first(from(cons(y0, y1)), y2)), 0)) -> c5(MARK(s(first(from(cons(y0, y1)), y2)))) MARK(first(s(first(from(y0), y1)), 0)) -> c5(MARK(s(first(from(y0), y1)))) MARK(first(s(first(from(y0), 0)), 0)) -> c5(MARK(s(first(from(y0), 0)))) MARK(first(s(first(from(y0), nil)), 0)) -> c5(MARK(s(first(from(y0), nil)))) MARK(first(s(first(from(y0), s(y1))), 0)) -> c5(MARK(s(first(from(y0), s(y1))))) MARK(first(s(first(s(first(y0, y1)), y2)), 0)) -> c5(MARK(s(first(s(first(y0, y1)), y2)))) MARK(first(s(first(s(from(y0)), y1)), 0)) -> c5(MARK(s(first(s(from(y0)), y1)))) MARK(first(s(first(s(0), y0)), 0)) -> c5(MARK(s(first(s(0), y0)))) MARK(first(s(first(s(nil), y0)), 0)) -> c5(MARK(s(first(s(nil), y0)))) MARK(first(s(first(s(s(y0)), y1)), 0)) -> c5(MARK(s(first(s(s(y0)), y1)))) MARK(first(s(first(s(cons(y0, y1)), y2)), 0)) -> c5(MARK(s(first(s(cons(y0, y1)), y2)))) MARK(first(s(first(s(y0), y1)), 0)) -> c5(MARK(s(first(s(y0), y1)))) MARK(first(s(first(s(y0), 0)), 0)) -> c5(MARK(s(first(s(y0), 0)))) MARK(first(s(first(s(y0), nil)), 0)) -> c5(MARK(s(first(s(y0), nil)))) MARK(first(s(first(s(y0), s(y1))), 0)) -> c5(MARK(s(first(s(y0), s(y1))))) MARK(first(s(first(0, first(y0, y1))), 0)) -> c5(MARK(s(first(0, first(y0, y1))))) MARK(first(s(first(nil, first(y0, y1))), 0)) -> c5(MARK(s(first(nil, first(y0, y1))))) MARK(first(s(first(0, from(y0))), 0)) -> c5(MARK(s(first(0, from(y0))))) MARK(first(s(first(nil, from(y0))), 0)) -> c5(MARK(s(first(nil, from(y0))))) MARK(first(s(first(y0, cons(y1, y2))), 0)) -> c5(MARK(s(first(y0, cons(y1, y2))))) MARK(first(s(first(0, cons(y0, y1))), 0)) -> c5(MARK(s(first(0, cons(y0, y1))))) MARK(first(s(first(nil, cons(y0, y1))), 0)) -> c5(MARK(s(first(nil, cons(y0, y1))))) MARK(first(s(first(from(0), y0)), 0)) -> c5(MARK(s(first(from(0), y0)))) MARK(first(s(first(from(nil), y0)), 0)) -> c5(MARK(s(first(from(nil), y0)))) MARK(first(s(first(y0, cons(0, y1))), 0)) -> c5(MARK(s(first(y0, cons(0, y1))))) MARK(first(s(first(y0, cons(nil, y1))), 0)) -> c5(MARK(s(first(y0, cons(nil, y1))))) MARK(first(s(from(s(y0))), 0)) -> c5(MARK(s(from(s(y0))))) MARK(first(s(from(cons(y0, y1))), 0)) -> c5(MARK(s(from(cons(y0, y1))))) MARK(first(s(from(first(y0, y1))), 0)) -> c5(MARK(s(from(first(y0, y1))))) MARK(first(s(from(first(y0, first(y1, y2)))), 0)) -> c5(MARK(s(from(first(y0, first(y1, y2)))))) MARK(first(s(from(first(y0, from(y1)))), 0)) -> c5(MARK(s(from(first(y0, from(y1)))))) MARK(first(s(from(first(y0, 0))), 0)) -> c5(MARK(s(from(first(y0, 0))))) MARK(first(s(from(first(y0, nil))), 0)) -> c5(MARK(s(from(first(y0, nil))))) MARK(first(s(from(first(y0, s(y1)))), 0)) -> c5(MARK(s(from(first(y0, s(y1)))))) MARK(first(s(from(first(y0, cons(y1, y2)))), 0)) -> c5(MARK(s(from(first(y0, cons(y1, y2)))))) MARK(first(s(from(first(first(y0, y1), y2))), 0)) -> c5(MARK(s(from(first(first(y0, y1), y2))))) MARK(first(s(from(first(from(y0), y1))), 0)) -> c5(MARK(s(from(first(from(y0), y1))))) MARK(first(s(from(first(0, y0))), 0)) -> c5(MARK(s(from(first(0, y0))))) MARK(first(s(from(first(nil, y0))), 0)) -> c5(MARK(s(from(first(nil, y0))))) MARK(first(s(from(first(s(y0), y1))), 0)) -> c5(MARK(s(from(first(s(y0), y1))))) MARK(first(s(from(first(cons(y0, y1), y2))), 0)) -> c5(MARK(s(from(first(cons(y0, y1), y2))))) MARK(first(s(from(from(y0))), 0)) -> c5(MARK(s(from(from(y0))))) MARK(first(s(from(from(first(y0, y1)))), 0)) -> c5(MARK(s(from(from(first(y0, y1)))))) MARK(first(s(from(from(from(y0)))), 0)) -> c5(MARK(s(from(from(from(y0)))))) MARK(first(s(from(from(s(y0)))), 0)) -> c5(MARK(s(from(from(s(y0)))))) MARK(first(s(from(from(cons(y0, y1)))), 0)) -> c5(MARK(s(from(from(cons(y0, y1)))))) MARK(first(s(from(from(0))), 0)) -> c5(MARK(s(from(from(0))))) MARK(first(s(from(from(nil))), 0)) -> c5(MARK(s(from(from(nil))))) MARK(first(cons(cons(y0, y1), y2), 0)) -> c5(MARK(cons(cons(y0, y1), y2))) MARK(first(cons(first(y0, 0), y1), 0)) -> c5(MARK(cons(first(y0, 0), y1))) MARK(first(cons(first(y0, nil), y1), 0)) -> c5(MARK(cons(first(y0, nil), y1))) MARK(first(cons(first(y0, s(y1)), y2), 0)) -> c5(MARK(cons(first(y0, s(y1)), y2))) MARK(first(cons(first(cons(y0, y1), y2), y3), 0)) -> c5(MARK(cons(first(cons(y0, y1), y2), y3))) MARK(first(cons(first(0, y0), y1), 0)) -> c5(MARK(cons(first(0, y0), y1))) MARK(first(cons(first(nil, y0), y1), 0)) -> c5(MARK(cons(first(nil, y0), y1))) MARK(first(cons(first(y0, first(y1, first(y2, y3))), y4), 0)) -> c5(MARK(cons(first(y0, first(y1, first(y2, y3))), y4))) MARK(first(cons(first(y0, first(y1, from(y2))), y3), 0)) -> c5(MARK(cons(first(y0, first(y1, from(y2))), y3))) MARK(first(cons(first(y0, first(y1, 0)), y2), 0)) -> c5(MARK(cons(first(y0, first(y1, 0)), y2))) MARK(first(cons(first(y0, first(y1, nil)), y2), 0)) -> c5(MARK(cons(first(y0, first(y1, nil)), y2))) MARK(first(cons(first(y0, first(y1, s(y2))), y3), 0)) -> c5(MARK(cons(first(y0, first(y1, s(y2))), y3))) MARK(first(cons(first(y0, first(y1, cons(y2, y3))), y4), 0)) -> c5(MARK(cons(first(y0, first(y1, cons(y2, y3))), y4))) MARK(first(cons(first(y0, first(first(y1, y2), y3)), y4), 0)) -> c5(MARK(cons(first(y0, first(first(y1, y2), y3)), y4))) MARK(first(cons(first(y0, first(from(y1), y2)), y3), 0)) -> c5(MARK(cons(first(y0, first(from(y1), y2)), y3))) MARK(first(cons(first(y0, first(0, y1)), y2), 0)) -> c5(MARK(cons(first(y0, first(0, y1)), y2))) MARK(first(cons(first(y0, first(nil, y1)), y2), 0)) -> c5(MARK(cons(first(y0, first(nil, y1)), y2))) MARK(first(cons(first(y0, first(s(y1), y2)), y3), 0)) -> c5(MARK(cons(first(y0, first(s(y1), y2)), y3))) MARK(first(cons(first(y0, first(cons(y1, y2), y3)), y4), 0)) -> c5(MARK(cons(first(y0, first(cons(y1, y2), y3)), y4))) MARK(first(cons(first(first(y0, y1), first(y2, y3)), y4), 0)) -> c5(MARK(cons(first(first(y0, y1), first(y2, y3)), y4))) MARK(first(cons(first(from(y0), first(y1, y2)), y3), 0)) -> c5(MARK(cons(first(from(y0), first(y1, y2)), y3))) MARK(first(cons(first(s(y0), first(y1, y2)), y3), 0)) -> c5(MARK(cons(first(s(y0), first(y1, y2)), y3))) MARK(first(cons(first(y0, first(y1, y2)), y3), 0)) -> c5(MARK(cons(first(y0, first(y1, y2)), y3))) MARK(first(cons(first(cons(y0, y1), first(y2, y3)), y4), 0)) -> c5(MARK(cons(first(cons(y0, y1), first(y2, y3)), y4))) MARK(first(cons(first(y0, from(y1)), y2), 0)) -> c5(MARK(cons(first(y0, from(y1)), y2))) MARK(first(cons(first(y0, from(first(y1, y2))), y3), 0)) -> c5(MARK(cons(first(y0, from(first(y1, y2))), y3))) MARK(first(cons(first(y0, from(from(y1))), y2), 0)) -> c5(MARK(cons(first(y0, from(from(y1))), y2))) MARK(first(cons(first(y0, from(0)), y1), 0)) -> c5(MARK(cons(first(y0, from(0)), y1))) MARK(first(cons(first(y0, from(nil)), y1), 0)) -> c5(MARK(cons(first(y0, from(nil)), y1))) MARK(first(cons(first(y0, from(s(y1))), y2), 0)) -> c5(MARK(cons(first(y0, from(s(y1))), y2))) MARK(first(cons(first(y0, from(cons(y1, y2))), y3), 0)) -> c5(MARK(cons(first(y0, from(cons(y1, y2))), y3))) MARK(first(cons(first(first(y0, y1), from(y2)), y3), 0)) -> c5(MARK(cons(first(first(y0, y1), from(y2)), y3))) MARK(first(cons(first(from(y0), from(y1)), y2), 0)) -> c5(MARK(cons(first(from(y0), from(y1)), y2))) MARK(first(cons(first(s(y0), from(y1)), y2), 0)) -> c5(MARK(cons(first(s(y0), from(y1)), y2))) MARK(first(cons(first(cons(y0, y1), from(y2)), y3), 0)) -> c5(MARK(cons(first(cons(y0, y1), from(y2)), y3))) MARK(first(cons(first(y0, cons(first(y1, y2), y3)), y4), 0)) -> c5(MARK(cons(first(y0, cons(first(y1, y2), y3)), y4))) MARK(first(cons(first(y0, cons(from(y1), y2)), y3), 0)) -> c5(MARK(cons(first(y0, cons(from(y1), y2)), y3))) MARK(first(cons(first(y0, cons(s(y1), y2)), y3), 0)) -> c5(MARK(cons(first(y0, cons(s(y1), y2)), y3))) MARK(first(cons(first(y0, cons(cons(y1, y2), y3)), y4), 0)) -> c5(MARK(cons(first(y0, cons(cons(y1, y2), y3)), y4))) MARK(first(cons(first(first(y0, y1), cons(y2, y3)), y4), 0)) -> c5(MARK(cons(first(first(y0, y1), cons(y2, y3)), y4))) MARK(first(cons(first(from(y0), cons(y1, y2)), y3), 0)) -> c5(MARK(cons(first(from(y0), cons(y1, y2)), y3))) MARK(first(cons(first(s(y0), cons(y1, y2)), y3), 0)) -> c5(MARK(cons(first(s(y0), cons(y1, y2)), y3))) MARK(first(cons(first(cons(y0, y1), cons(y2, y3)), y4), 0)) -> c5(MARK(cons(first(cons(y0, y1), cons(y2, y3)), y4))) MARK(first(cons(first(first(y0, first(y1, y2)), y3), y4), 0)) -> c5(MARK(cons(first(first(y0, first(y1, y2)), y3), y4))) MARK(first(cons(first(first(y0, from(y1)), y2), y3), 0)) -> c5(MARK(cons(first(first(y0, from(y1)), y2), y3))) MARK(first(cons(first(first(y0, 0), y1), y2), 0)) -> c5(MARK(cons(first(first(y0, 0), y1), y2))) MARK(first(cons(first(first(y0, nil), y1), y2), 0)) -> c5(MARK(cons(first(first(y0, nil), y1), y2))) MARK(first(cons(first(first(y0, s(y1)), y2), y3), 0)) -> c5(MARK(cons(first(first(y0, s(y1)), y2), y3))) MARK(first(cons(first(first(y0, cons(y1, y2)), y3), y4), 0)) -> c5(MARK(cons(first(first(y0, cons(y1, y2)), y3), y4))) MARK(first(cons(first(first(first(y0, y1), y2), y3), y4), 0)) -> c5(MARK(cons(first(first(first(y0, y1), y2), y3), y4))) MARK(first(cons(first(first(from(y0), y1), y2), y3), 0)) -> c5(MARK(cons(first(first(from(y0), y1), y2), y3))) MARK(first(cons(first(first(0, y0), y1), y2), 0)) -> c5(MARK(cons(first(first(0, y0), y1), y2))) MARK(first(cons(first(first(nil, y0), y1), y2), 0)) -> c5(MARK(cons(first(first(nil, y0), y1), y2))) MARK(first(cons(first(first(s(y0), y1), y2), y3), 0)) -> c5(MARK(cons(first(first(s(y0), y1), y2), y3))) MARK(first(cons(first(first(cons(y0, y1), y2), y3), y4), 0)) -> c5(MARK(cons(first(first(cons(y0, y1), y2), y3), y4))) MARK(first(cons(first(first(y0, y1), 0), y2), 0)) -> c5(MARK(cons(first(first(y0, y1), 0), y2))) MARK(first(cons(first(first(y0, y1), nil), y2), 0)) -> c5(MARK(cons(first(first(y0, y1), nil), y2))) MARK(first(cons(first(first(y0, y1), s(y2)), y3), 0)) -> c5(MARK(cons(first(first(y0, y1), s(y2)), y3))) MARK(first(cons(first(first(y0, y1), y2), y3), 0)) -> c5(MARK(cons(first(first(y0, y1), y2), y3))) MARK(first(cons(first(from(first(y0, y1)), y2), y3), 0)) -> c5(MARK(cons(first(from(first(y0, y1)), y2), y3))) MARK(first(cons(first(from(from(y0)), y1), y2), 0)) -> c5(MARK(cons(first(from(from(y0)), y1), y2))) MARK(first(cons(first(from(s(y0)), y1), y2), 0)) -> c5(MARK(cons(first(from(s(y0)), y1), y2))) MARK(first(cons(first(from(cons(y0, y1)), y2), y3), 0)) -> c5(MARK(cons(first(from(cons(y0, y1)), y2), y3))) MARK(first(cons(first(from(y0), y1), y2), 0)) -> c5(MARK(cons(first(from(y0), y1), y2))) MARK(first(cons(first(from(y0), 0), y1), 0)) -> c5(MARK(cons(first(from(y0), 0), y1))) MARK(first(cons(first(from(y0), nil), y1), 0)) -> c5(MARK(cons(first(from(y0), nil), y1))) MARK(first(cons(first(from(y0), s(y1)), y2), 0)) -> c5(MARK(cons(first(from(y0), s(y1)), y2))) MARK(first(cons(first(s(first(y0, y1)), y2), y3), 0)) -> c5(MARK(cons(first(s(first(y0, y1)), y2), y3))) MARK(first(cons(first(s(from(y0)), y1), y2), 0)) -> c5(MARK(cons(first(s(from(y0)), y1), y2))) MARK(first(cons(first(s(s(y0)), y1), y2), 0)) -> c5(MARK(cons(first(s(s(y0)), y1), y2))) MARK(first(cons(first(s(cons(y0, y1)), y2), y3), 0)) -> c5(MARK(cons(first(s(cons(y0, y1)), y2), y3))) MARK(first(cons(first(s(y0), y1), y2), 0)) -> c5(MARK(cons(first(s(y0), y1), y2))) MARK(first(cons(first(s(y0), 0), y1), 0)) -> c5(MARK(cons(first(s(y0), 0), y1))) MARK(first(cons(first(s(y0), nil), y1), 0)) -> c5(MARK(cons(first(s(y0), nil), y1))) MARK(first(cons(first(s(y0), s(y1)), y2), 0)) -> c5(MARK(cons(first(s(y0), s(y1)), y2))) MARK(first(cons(first(0, first(y0, y1)), y2), 0)) -> c5(MARK(cons(first(0, first(y0, y1)), y2))) MARK(first(cons(first(nil, first(y0, y1)), y2), 0)) -> c5(MARK(cons(first(nil, first(y0, y1)), y2))) MARK(first(cons(first(0, from(y0)), y1), 0)) -> c5(MARK(cons(first(0, from(y0)), y1))) MARK(first(cons(first(nil, from(y0)), y1), 0)) -> c5(MARK(cons(first(nil, from(y0)), y1))) MARK(first(cons(first(y0, cons(y1, y2)), y3), 0)) -> c5(MARK(cons(first(y0, cons(y1, y2)), y3))) MARK(first(cons(first(0, cons(y0, y1)), y2), 0)) -> c5(MARK(cons(first(0, cons(y0, y1)), y2))) MARK(first(cons(first(nil, cons(y0, y1)), y2), 0)) -> c5(MARK(cons(first(nil, cons(y0, y1)), y2))) MARK(first(cons(first(from(0), y0), y1), 0)) -> c5(MARK(cons(first(from(0), y0), y1))) MARK(first(cons(first(from(nil), y0), y1), 0)) -> c5(MARK(cons(first(from(nil), y0), y1))) MARK(first(cons(first(s(0), y0), y1), 0)) -> c5(MARK(cons(first(s(0), y0), y1))) MARK(first(cons(first(s(nil), y0), y1), 0)) -> c5(MARK(cons(first(s(nil), y0), y1))) MARK(first(cons(first(y0, cons(0, y1)), y2), 0)) -> c5(MARK(cons(first(y0, cons(0, y1)), y2))) MARK(first(cons(first(y0, cons(nil, y1)), y2), 0)) -> c5(MARK(cons(first(y0, cons(nil, y1)), y2))) MARK(first(cons(from(s(y0)), y1), 0)) -> c5(MARK(cons(from(s(y0)), y1))) MARK(first(cons(from(cons(y0, y1)), y2), 0)) -> c5(MARK(cons(from(cons(y0, y1)), y2))) MARK(first(cons(from(first(y0, y1)), y2), 0)) -> c5(MARK(cons(from(first(y0, y1)), y2))) MARK(first(cons(from(first(y0, first(y1, y2))), y3), 0)) -> c5(MARK(cons(from(first(y0, first(y1, y2))), y3))) MARK(first(cons(from(first(y0, from(y1))), y2), 0)) -> c5(MARK(cons(from(first(y0, from(y1))), y2))) MARK(first(cons(from(first(y0, 0)), y1), 0)) -> c5(MARK(cons(from(first(y0, 0)), y1))) MARK(first(cons(from(first(y0, nil)), y1), 0)) -> c5(MARK(cons(from(first(y0, nil)), y1))) MARK(first(cons(from(first(y0, s(y1))), y2), 0)) -> c5(MARK(cons(from(first(y0, s(y1))), y2))) MARK(first(cons(from(first(y0, cons(y1, y2))), y3), 0)) -> c5(MARK(cons(from(first(y0, cons(y1, y2))), y3))) MARK(first(cons(from(first(first(y0, y1), y2)), y3), 0)) -> c5(MARK(cons(from(first(first(y0, y1), y2)), y3))) MARK(first(cons(from(first(from(y0), y1)), y2), 0)) -> c5(MARK(cons(from(first(from(y0), y1)), y2))) MARK(first(cons(from(first(0, y0)), y1), 0)) -> c5(MARK(cons(from(first(0, y0)), y1))) MARK(first(cons(from(first(nil, y0)), y1), 0)) -> c5(MARK(cons(from(first(nil, y0)), y1))) MARK(first(cons(from(first(s(y0), y1)), y2), 0)) -> c5(MARK(cons(from(first(s(y0), y1)), y2))) MARK(first(cons(from(first(cons(y0, y1), y2)), y3), 0)) -> c5(MARK(cons(from(first(cons(y0, y1), y2)), y3))) MARK(first(cons(from(from(y0)), y1), 0)) -> c5(MARK(cons(from(from(y0)), y1))) MARK(first(cons(from(from(first(y0, y1))), y2), 0)) -> c5(MARK(cons(from(from(first(y0, y1))), y2))) MARK(first(cons(from(from(from(y0))), y1), 0)) -> c5(MARK(cons(from(from(from(y0))), y1))) MARK(first(cons(from(from(s(y0))), y1), 0)) -> c5(MARK(cons(from(from(s(y0))), y1))) MARK(first(cons(from(from(cons(y0, y1))), y2), 0)) -> c5(MARK(cons(from(from(cons(y0, y1))), y2))) MARK(first(cons(from(from(0)), y0), 0)) -> c5(MARK(cons(from(from(0)), y0))) MARK(first(cons(from(from(nil)), y0), 0)) -> c5(MARK(cons(from(from(nil)), y0))) MARK(first(cons(s(s(y0)), y1), 0)) -> c5(MARK(cons(s(s(y0)), y1))) MARK(first(cons(s(cons(y0, y1)), y2), 0)) -> c5(MARK(cons(s(cons(y0, y1)), y2))) MARK(first(cons(s(first(y0, 0)), y1), 0)) -> c5(MARK(cons(s(first(y0, 0)), y1))) MARK(first(cons(s(first(y0, nil)), y1), 0)) -> c5(MARK(cons(s(first(y0, nil)), y1))) MARK(first(cons(s(first(y0, s(y1))), y2), 0)) -> c5(MARK(cons(s(first(y0, s(y1))), y2))) MARK(first(cons(s(first(cons(y0, y1), y2)), y3), 0)) -> c5(MARK(cons(s(first(cons(y0, y1), y2)), y3))) MARK(first(cons(s(first(0, y0)), y1), 0)) -> c5(MARK(cons(s(first(0, y0)), y1))) MARK(first(cons(s(first(nil, y0)), y1), 0)) -> c5(MARK(cons(s(first(nil, y0)), y1))) MARK(first(cons(s(first(y0, first(y1, first(y2, y3)))), y4), 0)) -> c5(MARK(cons(s(first(y0, first(y1, first(y2, y3)))), y4))) MARK(first(cons(s(first(y0, first(y1, from(y2)))), y3), 0)) -> c5(MARK(cons(s(first(y0, first(y1, from(y2)))), y3))) MARK(first(cons(s(first(y0, first(y1, 0))), y2), 0)) -> c5(MARK(cons(s(first(y0, first(y1, 0))), y2))) MARK(first(cons(s(first(y0, first(y1, nil))), y2), 0)) -> c5(MARK(cons(s(first(y0, first(y1, nil))), y2))) MARK(first(cons(s(first(y0, first(y1, s(y2)))), y3), 0)) -> c5(MARK(cons(s(first(y0, first(y1, s(y2)))), y3))) MARK(first(cons(s(first(y0, first(y1, cons(y2, y3)))), y4), 0)) -> c5(MARK(cons(s(first(y0, first(y1, cons(y2, y3)))), y4))) MARK(first(cons(s(first(y0, first(first(y1, y2), y3))), y4), 0)) -> c5(MARK(cons(s(first(y0, first(first(y1, y2), y3))), y4))) MARK(first(cons(s(first(y0, first(from(y1), y2))), y3), 0)) -> c5(MARK(cons(s(first(y0, first(from(y1), y2))), y3))) MARK(first(cons(s(first(y0, first(0, y1))), y2), 0)) -> c5(MARK(cons(s(first(y0, first(0, y1))), y2))) MARK(first(cons(s(first(y0, first(nil, y1))), y2), 0)) -> c5(MARK(cons(s(first(y0, first(nil, y1))), y2))) MARK(first(cons(s(first(y0, first(s(y1), y2))), y3), 0)) -> c5(MARK(cons(s(first(y0, first(s(y1), y2))), y3))) MARK(first(cons(s(first(y0, first(cons(y1, y2), y3))), y4), 0)) -> c5(MARK(cons(s(first(y0, first(cons(y1, y2), y3))), y4))) MARK(first(cons(s(first(first(y0, y1), first(y2, y3))), y4), 0)) -> c5(MARK(cons(s(first(first(y0, y1), first(y2, y3))), y4))) MARK(first(cons(s(first(from(y0), first(y1, y2))), y3), 0)) -> c5(MARK(cons(s(first(from(y0), first(y1, y2))), y3))) MARK(first(cons(s(first(s(y0), first(y1, y2))), y3), 0)) -> c5(MARK(cons(s(first(s(y0), first(y1, y2))), y3))) MARK(first(cons(s(first(y0, first(y1, y2))), y3), 0)) -> c5(MARK(cons(s(first(y0, first(y1, y2))), y3))) MARK(first(cons(s(first(cons(y0, y1), first(y2, y3))), y4), 0)) -> c5(MARK(cons(s(first(cons(y0, y1), first(y2, y3))), y4))) MARK(first(cons(s(first(y0, from(y1))), y2), 0)) -> c5(MARK(cons(s(first(y0, from(y1))), y2))) MARK(first(cons(s(first(y0, from(first(y1, y2)))), y3), 0)) -> c5(MARK(cons(s(first(y0, from(first(y1, y2)))), y3))) MARK(first(cons(s(first(y0, from(from(y1)))), y2), 0)) -> c5(MARK(cons(s(first(y0, from(from(y1)))), y2))) MARK(first(cons(s(first(y0, from(0))), y1), 0)) -> c5(MARK(cons(s(first(y0, from(0))), y1))) MARK(first(cons(s(first(y0, from(nil))), y1), 0)) -> c5(MARK(cons(s(first(y0, from(nil))), y1))) MARK(first(cons(s(first(y0, from(s(y1)))), y2), 0)) -> c5(MARK(cons(s(first(y0, from(s(y1)))), y2))) MARK(first(cons(s(first(y0, from(cons(y1, y2)))), y3), 0)) -> c5(MARK(cons(s(first(y0, from(cons(y1, y2)))), y3))) MARK(first(cons(s(first(first(y0, y1), from(y2))), y3), 0)) -> c5(MARK(cons(s(first(first(y0, y1), from(y2))), y3))) MARK(first(cons(s(first(from(y0), from(y1))), y2), 0)) -> c5(MARK(cons(s(first(from(y0), from(y1))), y2))) MARK(first(cons(s(first(s(y0), from(y1))), y2), 0)) -> c5(MARK(cons(s(first(s(y0), from(y1))), y2))) MARK(first(cons(s(first(cons(y0, y1), from(y2))), y3), 0)) -> c5(MARK(cons(s(first(cons(y0, y1), from(y2))), y3))) MARK(first(cons(s(first(y0, cons(first(y1, y2), y3))), y4), 0)) -> c5(MARK(cons(s(first(y0, cons(first(y1, y2), y3))), y4))) MARK(first(cons(s(first(y0, cons(from(y1), y2))), y3), 0)) -> c5(MARK(cons(s(first(y0, cons(from(y1), y2))), y3))) MARK(first(cons(s(first(y0, cons(s(y1), y2))), y3), 0)) -> c5(MARK(cons(s(first(y0, cons(s(y1), y2))), y3))) MARK(first(cons(s(first(y0, cons(cons(y1, y2), y3))), y4), 0)) -> c5(MARK(cons(s(first(y0, cons(cons(y1, y2), y3))), y4))) MARK(first(cons(s(first(first(y0, y1), cons(y2, y3))), y4), 0)) -> c5(MARK(cons(s(first(first(y0, y1), cons(y2, y3))), y4))) MARK(first(cons(s(first(from(y0), cons(y1, y2))), y3), 0)) -> c5(MARK(cons(s(first(from(y0), cons(y1, y2))), y3))) MARK(first(cons(s(first(s(y0), cons(y1, y2))), y3), 0)) -> c5(MARK(cons(s(first(s(y0), cons(y1, y2))), y3))) MARK(first(cons(s(first(cons(y0, y1), cons(y2, y3))), y4), 0)) -> c5(MARK(cons(s(first(cons(y0, y1), cons(y2, y3))), y4))) MARK(first(cons(s(first(first(y0, first(y1, y2)), y3)), y4), 0)) -> c5(MARK(cons(s(first(first(y0, first(y1, y2)), y3)), y4))) MARK(first(cons(s(first(first(y0, from(y1)), y2)), y3), 0)) -> c5(MARK(cons(s(first(first(y0, from(y1)), y2)), y3))) MARK(first(cons(s(first(first(y0, 0), y1)), y2), 0)) -> c5(MARK(cons(s(first(first(y0, 0), y1)), y2))) MARK(first(cons(s(first(first(y0, nil), y1)), y2), 0)) -> c5(MARK(cons(s(first(first(y0, nil), y1)), y2))) MARK(first(cons(s(first(first(y0, s(y1)), y2)), y3), 0)) -> c5(MARK(cons(s(first(first(y0, s(y1)), y2)), y3))) MARK(first(cons(s(first(first(y0, cons(y1, y2)), y3)), y4), 0)) -> c5(MARK(cons(s(first(first(y0, cons(y1, y2)), y3)), y4))) MARK(first(cons(s(first(first(first(y0, y1), y2), y3)), y4), 0)) -> c5(MARK(cons(s(first(first(first(y0, y1), y2), y3)), y4))) MARK(first(cons(s(first(first(from(y0), y1), y2)), y3), 0)) -> c5(MARK(cons(s(first(first(from(y0), y1), y2)), y3))) MARK(first(cons(s(first(first(0, y0), y1)), y2), 0)) -> c5(MARK(cons(s(first(first(0, y0), y1)), y2))) MARK(first(cons(s(first(first(nil, y0), y1)), y2), 0)) -> c5(MARK(cons(s(first(first(nil, y0), y1)), y2))) MARK(first(cons(s(first(first(s(y0), y1), y2)), y3), 0)) -> c5(MARK(cons(s(first(first(s(y0), y1), y2)), y3))) MARK(first(cons(s(first(first(cons(y0, y1), y2), y3)), y4), 0)) -> c5(MARK(cons(s(first(first(cons(y0, y1), y2), y3)), y4))) MARK(first(cons(s(first(first(y0, y1), 0)), y2), 0)) -> c5(MARK(cons(s(first(first(y0, y1), 0)), y2))) MARK(first(cons(s(first(first(y0, y1), nil)), y2), 0)) -> c5(MARK(cons(s(first(first(y0, y1), nil)), y2))) MARK(first(cons(s(first(first(y0, y1), s(y2))), y3), 0)) -> c5(MARK(cons(s(first(first(y0, y1), s(y2))), y3))) MARK(first(cons(s(first(first(y0, y1), y2)), y3), 0)) -> c5(MARK(cons(s(first(first(y0, y1), y2)), y3))) MARK(first(cons(s(first(from(first(y0, y1)), y2)), y3), 0)) -> c5(MARK(cons(s(first(from(first(y0, y1)), y2)), y3))) MARK(first(cons(s(first(from(from(y0)), y1)), y2), 0)) -> c5(MARK(cons(s(first(from(from(y0)), y1)), y2))) MARK(first(cons(s(first(from(s(y0)), y1)), y2), 0)) -> c5(MARK(cons(s(first(from(s(y0)), y1)), y2))) MARK(first(cons(s(first(from(cons(y0, y1)), y2)), y3), 0)) -> c5(MARK(cons(s(first(from(cons(y0, y1)), y2)), y3))) MARK(first(cons(s(first(from(y0), y1)), y2), 0)) -> c5(MARK(cons(s(first(from(y0), y1)), y2))) MARK(first(cons(s(first(from(y0), 0)), y1), 0)) -> c5(MARK(cons(s(first(from(y0), 0)), y1))) MARK(first(cons(s(first(from(y0), nil)), y1), 0)) -> c5(MARK(cons(s(first(from(y0), nil)), y1))) MARK(first(cons(s(first(from(y0), s(y1))), y2), 0)) -> c5(MARK(cons(s(first(from(y0), s(y1))), y2))) MARK(first(cons(s(first(s(first(y0, y1)), y2)), y3), 0)) -> c5(MARK(cons(s(first(s(first(y0, y1)), y2)), y3))) MARK(first(cons(s(first(s(from(y0)), y1)), y2), 0)) -> c5(MARK(cons(s(first(s(from(y0)), y1)), y2))) MARK(first(cons(s(first(s(0), y0)), y1), 0)) -> c5(MARK(cons(s(first(s(0), y0)), y1))) MARK(first(cons(s(first(s(nil), y0)), y1), 0)) -> c5(MARK(cons(s(first(s(nil), y0)), y1))) MARK(first(cons(s(first(s(s(y0)), y1)), y2), 0)) -> c5(MARK(cons(s(first(s(s(y0)), y1)), y2))) MARK(first(cons(s(first(s(cons(y0, y1)), y2)), y3), 0)) -> c5(MARK(cons(s(first(s(cons(y0, y1)), y2)), y3))) MARK(first(cons(s(first(s(y0), y1)), y2), 0)) -> c5(MARK(cons(s(first(s(y0), y1)), y2))) MARK(first(cons(s(first(s(y0), 0)), y1), 0)) -> c5(MARK(cons(s(first(s(y0), 0)), y1))) MARK(first(cons(s(first(s(y0), nil)), y1), 0)) -> c5(MARK(cons(s(first(s(y0), nil)), y1))) MARK(first(cons(s(first(s(y0), s(y1))), y2), 0)) -> c5(MARK(cons(s(first(s(y0), s(y1))), y2))) MARK(first(cons(s(first(0, first(y0, y1))), y2), 0)) -> c5(MARK(cons(s(first(0, first(y0, y1))), y2))) MARK(first(cons(s(first(nil, first(y0, y1))), y2), 0)) -> c5(MARK(cons(s(first(nil, first(y0, y1))), y2))) MARK(first(cons(s(first(0, from(y0))), y1), 0)) -> c5(MARK(cons(s(first(0, from(y0))), y1))) MARK(first(cons(s(first(nil, from(y0))), y1), 0)) -> c5(MARK(cons(s(first(nil, from(y0))), y1))) MARK(first(cons(s(first(y0, cons(y1, y2))), y3), 0)) -> c5(MARK(cons(s(first(y0, cons(y1, y2))), y3))) MARK(first(cons(s(first(0, cons(y0, y1))), y2), 0)) -> c5(MARK(cons(s(first(0, cons(y0, y1))), y2))) MARK(first(cons(s(first(nil, cons(y0, y1))), y2), 0)) -> c5(MARK(cons(s(first(nil, cons(y0, y1))), y2))) MARK(first(cons(s(first(from(0), y0)), y1), 0)) -> c5(MARK(cons(s(first(from(0), y0)), y1))) MARK(first(cons(s(first(from(nil), y0)), y1), 0)) -> c5(MARK(cons(s(first(from(nil), y0)), y1))) MARK(first(cons(s(first(y0, cons(0, y1))), y2), 0)) -> c5(MARK(cons(s(first(y0, cons(0, y1))), y2))) MARK(first(cons(s(first(y0, cons(nil, y1))), y2), 0)) -> c5(MARK(cons(s(first(y0, cons(nil, y1))), y2))) MARK(first(cons(s(from(s(y0))), y1), 0)) -> c5(MARK(cons(s(from(s(y0))), y1))) MARK(first(cons(s(from(cons(y0, y1))), y2), 0)) -> c5(MARK(cons(s(from(cons(y0, y1))), y2))) MARK(first(cons(s(from(first(y0, y1))), y2), 0)) -> c5(MARK(cons(s(from(first(y0, y1))), y2))) MARK(first(cons(s(from(first(y0, first(y1, y2)))), y3), 0)) -> c5(MARK(cons(s(from(first(y0, first(y1, y2)))), y3))) MARK(first(cons(s(from(first(y0, from(y1)))), y2), 0)) -> c5(MARK(cons(s(from(first(y0, from(y1)))), y2))) MARK(first(cons(s(from(first(y0, 0))), y1), 0)) -> c5(MARK(cons(s(from(first(y0, 0))), y1))) MARK(first(cons(s(from(first(y0, nil))), y1), 0)) -> c5(MARK(cons(s(from(first(y0, nil))), y1))) MARK(first(cons(s(from(first(y0, s(y1)))), y2), 0)) -> c5(MARK(cons(s(from(first(y0, s(y1)))), y2))) MARK(first(cons(s(from(first(y0, cons(y1, y2)))), y3), 0)) -> c5(MARK(cons(s(from(first(y0, cons(y1, y2)))), y3))) MARK(first(cons(s(from(first(first(y0, y1), y2))), y3), 0)) -> c5(MARK(cons(s(from(first(first(y0, y1), y2))), y3))) MARK(first(cons(s(from(first(from(y0), y1))), y2), 0)) -> c5(MARK(cons(s(from(first(from(y0), y1))), y2))) MARK(first(cons(s(from(first(0, y0))), y1), 0)) -> c5(MARK(cons(s(from(first(0, y0))), y1))) MARK(first(cons(s(from(first(nil, y0))), y1), 0)) -> c5(MARK(cons(s(from(first(nil, y0))), y1))) MARK(first(cons(s(from(first(s(y0), y1))), y2), 0)) -> c5(MARK(cons(s(from(first(s(y0), y1))), y2))) MARK(first(cons(s(from(first(cons(y0, y1), y2))), y3), 0)) -> c5(MARK(cons(s(from(first(cons(y0, y1), y2))), y3))) MARK(first(cons(s(from(from(y0))), y1), 0)) -> c5(MARK(cons(s(from(from(y0))), y1))) MARK(first(cons(s(from(from(first(y0, y1)))), y2), 0)) -> c5(MARK(cons(s(from(from(first(y0, y1)))), y2))) MARK(first(cons(s(from(from(from(y0)))), y1), 0)) -> c5(MARK(cons(s(from(from(from(y0)))), y1))) MARK(first(cons(s(from(from(s(y0)))), y1), 0)) -> c5(MARK(cons(s(from(from(s(y0)))), y1))) MARK(first(cons(s(from(from(cons(y0, y1)))), y2), 0)) -> c5(MARK(cons(s(from(from(cons(y0, y1)))), y2))) MARK(first(cons(s(from(from(0))), y0), 0)) -> c5(MARK(cons(s(from(from(0))), y0))) MARK(first(cons(s(from(from(nil))), y0), 0)) -> c5(MARK(cons(s(from(from(nil))), y0))) S tuples: MARK(first(x0, nil)) -> c5(MARK(x0)) MARK(first(x0, s(z0))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c5(MARK(cons(z0, z1))) MARK(first(x0, s(z0))) -> c6(MARK(s(z0))) MARK(first(0, x1)) -> c6(MARK(x1)) MARK(first(nil, x1)) -> c6(MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c6(MARK(x1)) MARK(first(x0, first(x1, first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, first(x1, from(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, 0))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(x0)) MARK(first(x0, first(x1, nil))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(x0)) MARK(first(x0, first(x1, s(z0)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(x0)) MARK(first(x0, first(x1, cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(first(x0, first(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(first(x0, first(from(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(0, x2))) -> c5(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(x0)) MARK(first(x0, first(nil, x2))) -> c5(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(x0)) MARK(first(x0, first(s(z0), x2))) -> c5(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(x0)) MARK(first(x0, first(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(first(first(z0, z1), first(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(z0, z1))) MARK(first(from(z0), first(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(from(z0))) MARK(first(s(z0), first(x1, x2))) -> c5(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(s(z0))) MARK(first(x0, first(x1, x2))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), first(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, from(x1))) -> c5(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(first(x0, from(first(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(x0)) MARK(first(x0, from(from(z0)))) -> c5(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(first(x0, from(0))) -> c5(A__FIRST(mark(x0), a__from(0)), MARK(x0)) MARK(first(x0, from(nil))) -> c5(A__FIRST(mark(x0), a__from(nil)), MARK(x0)) MARK(first(x0, from(s(z0)))) -> c5(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(x0)) MARK(first(x0, from(cons(z0, z1)))) -> c5(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(first(first(z0, z1), from(x1))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(first(z0, z1))) MARK(first(from(z0), from(x1))) -> c5(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(first(s(z0), from(x1))) -> c5(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(s(z0))) MARK(first(x0, from(x1))) -> c5(MARK(x0)) MARK(first(cons(z0, z1), from(x1))) -> c5(MARK(cons(z0, z1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(first(x0, cons(from(z0), x2))) -> c5(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(s(z0), x2))) -> c5(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(x0)) MARK(first(x0, cons(cons(z0, z1), x2))) -> c5(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(first(first(z0, z1), cons(x1, x2))) -> c5(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(first(z0, z1))) MARK(first(from(z0), cons(x1, x2))) -> c5(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(first(s(z0), cons(x1, x2))) -> c5(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(s(z0))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c5(MARK(cons(z0, z1))) MARK(first(first(x0, first(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(first(x0, first(z0, z1)))) MARK(first(first(x0, from(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(first(x0, from(z0)))) MARK(first(first(x0, 0), x2)) -> c5(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(first(x0, 0))) MARK(first(first(x0, nil), x2)) -> c5(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(first(x0, nil))) MARK(first(first(x0, s(z0)), x2)) -> c5(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(first(x0, s(z0)))) MARK(first(first(x0, cons(z0, z1)), x2)) -> c5(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(first(x0, cons(z0, z1)))) MARK(first(first(first(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(first(first(z0, z1), x1))) MARK(first(first(from(z0), x1), x2)) -> c5(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(first(from(z0), x1))) MARK(first(first(0, x1), x2)) -> c5(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(first(0, x1))) MARK(first(first(nil, x1), x2)) -> c5(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(first(nil, x1))) MARK(first(first(s(z0), x1), x2)) -> c5(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(first(s(z0), x1))) MARK(first(first(cons(z0, z1), x1), x2)) -> c5(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(first(cons(z0, z1), x1))) MARK(first(first(x0, x1), 0)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), nil)) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), s(z0))) -> c5(MARK(first(x0, x1))) MARK(first(first(x0, x1), x2)) -> c5(MARK(first(x0, x1))) MARK(first(from(first(z0, z1)), x1)) -> c5(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(from(first(z0, z1)))) MARK(first(from(from(z0)), x1)) -> c5(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(first(from(s(z0)), x1)) -> c5(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(from(s(z0)))) MARK(first(from(cons(z0, z1)), x1)) -> c5(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(first(from(x0), x1)) -> c5(MARK(from(x0))) MARK(first(from(x0), 0)) -> c5(MARK(from(x0))) MARK(first(from(x0), nil)) -> c5(MARK(from(x0))) MARK(first(from(x0), s(z0))) -> c5(MARK(from(x0))) MARK(first(s(first(z0, z1)), x1)) -> c5(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(s(first(z0, z1)))) MARK(first(s(from(z0)), x1)) -> c5(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(s(from(z0)))) MARK(first(s(s(z0)), x1)) -> c5(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(s(s(z0)))) MARK(first(s(cons(z0, z1)), x1)) -> c5(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(s(cons(z0, z1)))) MARK(first(s(x0), x1)) -> c5(MARK(s(x0))) MARK(first(s(x0), 0)) -> c5(MARK(s(x0))) MARK(first(s(x0), nil)) -> c5(MARK(s(x0))) MARK(first(s(x0), s(z0))) -> c5(MARK(s(x0))) MARK(first(x0, first(x1, first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__first(mark(z0), mark(z1)))), MARK(first(x1, first(z0, z1)))) MARK(first(x0, first(x1, from(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), a__from(mark(z0)))), MARK(first(x1, from(z0)))) MARK(first(x0, first(x1, 0))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), 0)), MARK(first(x1, 0))) MARK(first(x0, first(x1, nil))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), nil)), MARK(first(x1, nil))) MARK(first(x0, first(x1, s(z0)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), s(mark(z0)))), MARK(first(x1, s(z0)))) MARK(first(x0, first(x1, cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__first(mark(x1), cons(mark(z0), z1))), MARK(first(x1, cons(z0, z1)))) MARK(first(x0, first(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(a__first(mark(z0), mark(z1)), mark(x2))), MARK(first(first(z0, z1), x2))) MARK(first(x0, first(from(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(a__from(mark(z0)), mark(x2))), MARK(first(from(z0), x2))) MARK(first(x0, first(0, x2))) -> c6(A__FIRST(mark(x0), a__first(0, mark(x2))), MARK(first(0, x2))) MARK(first(x0, first(nil, x2))) -> c6(A__FIRST(mark(x0), a__first(nil, mark(x2))), MARK(first(nil, x2))) MARK(first(x0, first(s(z0), x2))) -> c6(A__FIRST(mark(x0), a__first(s(mark(z0)), mark(x2))), MARK(first(s(z0), x2))) MARK(first(x0, first(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), a__first(cons(mark(z0), z1), mark(x2))), MARK(first(cons(z0, z1), x2))) MARK(first(first(z0, z1), first(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(from(z0), first(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(s(z0), first(x1, x2))) -> c6(A__FIRST(s(mark(z0)), a__first(mark(x1), mark(x2))), MARK(first(x1, x2))) MARK(first(x0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(0, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(nil, first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(cons(z0, z1), first(x1, x2))) -> c6(MARK(first(x1, x2))) MARK(first(x0, from(x1))) -> c6(A__FIRST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(first(x0, from(first(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(a__first(mark(z0), mark(z1)))), MARK(from(first(z0, z1)))) MARK(first(x0, from(from(z0)))) -> c6(A__FIRST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(first(x0, from(s(z0)))) -> c6(A__FIRST(mark(x0), a__from(s(mark(z0)))), MARK(from(s(z0)))) MARK(first(x0, from(cons(z0, z1)))) -> c6(A__FIRST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(first(first(z0, z1), from(x1))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(first(from(z0), from(x1))) -> c6(A__FIRST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(s(z0), from(x1))) -> c6(A__FIRST(s(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(first(x0, from(x1))) -> c6(MARK(from(x1))) MARK(first(0, from(x1))) -> c6(MARK(from(x1))) MARK(first(nil, from(x1))) -> c6(MARK(from(x1))) MARK(first(cons(z0, z1), from(x1))) -> c6(MARK(from(x1))) MARK(first(x0, cons(first(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(a__first(mark(z0), mark(z1)), x2)), MARK(cons(first(z0, z1), x2))) MARK(first(x0, cons(from(z0), x2))) -> c6(A__FIRST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(first(x0, cons(s(z0), x2))) -> c6(A__FIRST(mark(x0), cons(s(mark(z0)), x2)), MARK(cons(s(z0), x2))) MARK(first(x0, cons(cons(z0, z1), x2))) -> c6(A__FIRST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(first(first(z0, z1), cons(x1, x2))) -> c6(A__FIRST(a__first(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(from(z0), cons(x1, x2))) -> c6(A__FIRST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(s(z0), cons(x1, x2))) -> c6(A__FIRST(s(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(first(x0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(0, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(nil, cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(cons(z0, z1), cons(x1, x2))) -> c6(MARK(cons(x1, x2))) MARK(first(first(x0, first(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__first(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(first(first(x0, from(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, 0), x2)) -> c6(A__FIRST(a__first(mark(x0), 0), mark(x2)), MARK(x2)) MARK(first(first(x0, nil), x2)) -> c6(A__FIRST(a__first(mark(x0), nil), mark(x2)), MARK(x2)) MARK(first(first(x0, s(z0)), x2)) -> c6(A__FIRST(a__first(mark(x0), s(mark(z0))), mark(x2)), MARK(x2)) MARK(first(first(x0, cons(z0, z1)), x2)) -> c6(A__FIRST(a__first(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(first(first(first(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(a__first(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(from(z0), x1), x2)) -> c6(A__FIRST(a__first(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(0, x1), x2)) -> c6(A__FIRST(a__first(0, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(nil, x1), x2)) -> c6(A__FIRST(a__first(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(s(z0), x1), x2)) -> c6(A__FIRST(a__first(s(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(cons(z0, z1), x1), x2)) -> c6(A__FIRST(a__first(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(first(first(x0, x1), s(z0))) -> c6(MARK(s(z0))) MARK(first(first(x0, x1), x2)) -> c6(MARK(x2)) MARK(first(from(first(z0, z1)), x1)) -> c6(A__FIRST(a__from(a__first(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(first(from(from(z0)), x1)) -> c6(A__FIRST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(first(from(0), x1)) -> c6(A__FIRST(a__from(0), mark(x1)), MARK(x1)) MARK(first(from(nil), x1)) -> c6(A__FIRST(a__from(nil), mark(x1)), MARK(x1)) MARK(first(from(s(z0)), x1)) -> c6(A__FIRST(a__from(s(mark(z0))), mark(x1)), MARK(x1)) MARK(first(from(cons(z0, z1)), x1)) -> c6(A__FIRST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(first(from(x0), s(z0))) -> c6(MARK(s(z0))) MARK(first(from(x0), x1)) -> c6(MARK(x1)) MARK(first(s(first(z0, z1)), x1)) -> c6(A__FIRST(s(a__first(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(first(s(from(z0)), x1)) -> c6(A__FIRST(s(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(first(s(0), x1)) -> c6(A__FIRST(s(0), mark(x1)), MARK(x1)) MARK(first(s(nil), x1)) -> c6(A__FIRST(s(nil), mark(x1)), MARK(x1)) MARK(first(s(s(z0)), x1)) -> c6(A__FIRST(s(s(mark(z0))), mark(x1)), MARK(x1)) MARK(first(s(cons(z0, z1)), x1)) -> c6(A__FIRST(s(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(first(s(x0), s(z0))) -> c6(MARK(s(z0))) A__FIRST(s(z0), cons(from(y0), z2)) -> c1(MARK(from(y0))) A__FIRST(s(z0), cons(s(y0), z2)) -> c1(MARK(s(y0))) A__FIRST(s(z0), cons(cons(y0, y1), z2)) -> c1(MARK(cons(y0, y1))) A__FIRST(s(z0), cons(first(y0, 0), z2)) -> c1(MARK(first(y0, 0))) A__FIRST(s(z0), cons(first(y0, nil), z2)) -> c1(MARK(first(y0, nil))) A__FIRST(s(z0), cons(first(y0, s(y1)), z2)) -> c1(MARK(first(y0, s(y1)))) A__FIRST(s(z0), cons(first(cons(y0, y1), y2), z2)) -> c1(MARK(first(cons(y0, y1), y2))) A__FIRST(s(z0), cons(first(0, y0), z2)) -> c1(MARK(first(0, y0))) A__FIRST(s(z0), cons(first(nil, y0), z2)) -> c1(MARK(first(nil, y0))) A__FIRST(s(z0), cons(first(y0, first(y1, first(y2, y3))), z2)) -> c1(MARK(first(y0, first(y1, first(y2, y3))))) A__FIRST(s(z0), cons(first(y0, first(y1, from(y2))), z2)) -> c1(MARK(first(y0, first(y1, from(y2))))) A__FIRST(s(z0), cons(first(y0, first(y1, 0)), z2)) -> c1(MARK(first(y0, first(y1, 0)))) A__FIRST(s(z0), cons(first(y0, first(y1, nil)), z2)) -> c1(MARK(first(y0, first(y1, nil)))) A__FIRST(s(z0), cons(first(y0, first(y1, s(y2))), z2)) -> c1(MARK(first(y0, first(y1, s(y2))))) A__FIRST(s(z0), cons(first(y0, first(y1, cons(y2, y3))), z2)) -> c1(MARK(first(y0, first(y1, cons(y2, y3))))) A__FIRST(s(z0), cons(first(y0, first(first(y1, y2), y3)), z2)) -> c1(MARK(first(y0, first(first(y1, y2), y3)))) A__FIRST(s(z0), cons(first(y0, first(from(y1), y2)), z2)) -> c1(MARK(first(y0, first(from(y1), y2)))) A__FIRST(s(z0), cons(first(y0, first(0, y1)), z2)) -> c1(MARK(first(y0, first(0, y1)))) A__FIRST(s(z0), cons(first(y0, first(nil, y1)), z2)) -> c1(MARK(first(y0, first(nil, y1)))) A__FIRST(s(z0), cons(first(y0, first(s(y1), y2)), z2)) -> c1(MARK(first(y0, first(s(y1), y2)))) A__FIRST(s(z0), cons(first(y0, first(cons(y1, y2), y3)), z2)) -> c1(MARK(first(y0, first(cons(y1, y2), y3)))) A__FIRST(s(z0), cons(first(first(y0, y1), first(y2, y3)), z2)) -> c1(MARK(first(first(y0, y1), first(y2, y3)))) A__FIRST(s(z0), cons(first(from(y0), first(y1, y2)), z2)) -> c1(MARK(first(from(y0), first(y1, y2)))) A__FIRST(s(z0), cons(first(s(y0), first(y1, y2)), z2)) -> c1(MARK(first(s(y0), first(y1, y2)))) A__FIRST(s(z0), cons(first(y0, first(y1, y2)), z2)) -> c1(MARK(first(y0, first(y1, y2)))) A__FIRST(s(z0), cons(first(cons(y0, y1), first(y2, y3)), z2)) -> c1(MARK(first(cons(y0, y1), first(y2, y3)))) A__FIRST(s(z0), cons(first(y0, from(y1)), z2)) -> c1(MARK(first(y0, from(y1)))) A__FIRST(s(z0), cons(first(y0, from(first(y1, y2))), z2)) -> c1(MARK(first(y0, from(first(y1, y2))))) A__FIRST(s(z0), cons(first(y0, from(from(y1))), z2)) -> c1(MARK(first(y0, from(from(y1))))) A__FIRST(s(z0), cons(first(y0, from(0)), z2)) -> c1(MARK(first(y0, from(0)))) A__FIRST(s(z0), cons(first(y0, from(nil)), z2)) -> c1(MARK(first(y0, from(nil)))) A__FIRST(s(z0), cons(first(y0, from(s(y1))), z2)) -> c1(MARK(first(y0, from(s(y1))))) A__FIRST(s(z0), cons(first(y0, from(cons(y1, y2))), z2)) -> c1(MARK(first(y0, from(cons(y1, y2))))) A__FIRST(s(z0), cons(first(first(y0, y1), from(y2)), z2)) -> c1(MARK(first(first(y0, y1), from(y2)))) A__FIRST(s(z0), cons(first(from(y0), from(y1)), z2)) -> c1(MARK(first(from(y0), from(y1)))) A__FIRST(s(z0), cons(first(s(y0), from(y1)), z2)) -> c1(MARK(first(s(y0), from(y1)))) A__FIRST(s(z0), cons(first(cons(y0, y1), from(y2)), z2)) -> c1(MARK(first(cons(y0, y1), from(y2)))) A__FIRST(s(z0), cons(first(y0, cons(first(y1, y2), y3)), z2)) -> c1(MARK(first(y0, cons(first(y1, y2), y3)))) A__FIRST(s(z0), cons(first(y0, cons(from(y1), y2)), z2)) -> c1(MARK(first(y0, cons(from(y1), y2)))) A__FIRST(s(z0), cons(first(y0, cons(0, y1)), z2)) -> c1(MARK(first(y0, cons(0, y1)))) A__FIRST(s(z0), cons(first(y0, cons(nil, y1)), z2)) -> c1(MARK(first(y0, cons(nil, y1)))) A__FIRST(s(z0), cons(first(y0, cons(s(y1), y2)), z2)) -> c1(MARK(first(y0, cons(s(y1), y2)))) A__FIRST(s(z0), cons(first(y0, cons(cons(y1, y2), y3)), z2)) -> c1(MARK(first(y0, cons(cons(y1, y2), y3)))) A__FIRST(s(z0), cons(first(first(y0, y1), cons(y2, y3)), z2)) -> c1(MARK(first(first(y0, y1), cons(y2, y3)))) A__FIRST(s(z0), cons(first(from(y0), cons(y1, y2)), z2)) -> c1(MARK(first(from(y0), cons(y1, y2)))) A__FIRST(s(z0), cons(first(s(y0), cons(y1, y2)), z2)) -> c1(MARK(first(s(y0), cons(y1, y2)))) A__FIRST(s(z0), cons(first(cons(y0, y1), cons(y2, y3)), z2)) -> c1(MARK(first(cons(y0, y1), cons(y2, y3)))) A__FIRST(s(z0), cons(first(first(y0, first(y1, y2)), y3), z2)) -> c1(MARK(first(first(y0, first(y1, y2)), y3))) A__FIRST(s(z0), cons(first(first(y0, from(y1)), y2), z2)) -> c1(MARK(first(first(y0, from(y1)), y2))) A__FIRST(s(z0), cons(first(first(y0, 0), y1), z2)) -> c1(MARK(first(first(y0, 0), y1))) A__FIRST(s(z0), cons(first(first(y0, nil), y1), z2)) -> c1(MARK(first(first(y0, nil), y1))) A__FIRST(s(z0), cons(first(first(y0, s(y1)), y2), z2)) -> c1(MARK(first(first(y0, s(y1)), y2))) A__FIRST(s(z0), cons(first(first(y0, cons(y1, y2)), y3), z2)) -> c1(MARK(first(first(y0, cons(y1, y2)), y3))) A__FIRST(s(z0), cons(first(first(first(y0, y1), y2), y3), z2)) -> c1(MARK(first(first(first(y0, y1), y2), y3))) A__FIRST(s(z0), cons(first(first(from(y0), y1), y2), z2)) -> c1(MARK(first(first(from(y0), y1), y2))) A__FIRST(s(z0), cons(first(first(0, y0), y1), z2)) -> c1(MARK(first(first(0, y0), y1))) A__FIRST(s(z0), cons(first(first(nil, y0), y1), z2)) -> c1(MARK(first(first(nil, y0), y1))) A__FIRST(s(z0), cons(first(first(s(y0), y1), y2), z2)) -> c1(MARK(first(first(s(y0), y1), y2))) A__FIRST(s(z0), cons(first(first(cons(y0, y1), y2), y3), z2)) -> c1(MARK(first(first(cons(y0, y1), y2), y3))) A__FIRST(s(z0), cons(first(first(y0, y1), 0), z2)) -> c1(MARK(first(first(y0, y1), 0))) A__FIRST(s(z0), cons(first(first(y0, y1), nil), z2)) -> c1(MARK(first(first(y0, y1), nil))) A__FIRST(s(z0), cons(first(first(y0, y1), s(y2)), z2)) -> c1(MARK(first(first(y0, y1), s(y2)))) A__FIRST(s(z0), cons(first(first(y0, y1), y2), z2)) -> c1(MARK(first(first(y0, y1), y2))) A__FIRST(s(z0), cons(first(from(first(y0, y1)), y2), z2)) -> c1(MARK(first(from(first(y0, y1)), y2))) A__FIRST(s(z0), cons(first(from(from(y0)), y1), z2)) -> c1(MARK(first(from(from(y0)), y1))) A__FIRST(s(z0), cons(first(from(0), y0), z2)) -> c1(MARK(first(from(0), y0))) A__FIRST(s(z0), cons(first(from(nil), y0), z2)) -> c1(MARK(first(from(nil), y0))) A__FIRST(s(z0), cons(first(from(s(y0)), y1), z2)) -> c1(MARK(first(from(s(y0)), y1))) A__FIRST(s(z0), cons(first(from(cons(y0, y1)), y2), z2)) -> c1(MARK(first(from(cons(y0, y1)), y2))) A__FIRST(s(z0), cons(first(from(y0), y1), z2)) -> c1(MARK(first(from(y0), y1))) A__FIRST(s(z0), cons(first(from(y0), 0), z2)) -> c1(MARK(first(from(y0), 0))) A__FIRST(s(z0), cons(first(from(y0), nil), z2)) -> c1(MARK(first(from(y0), nil))) A__FIRST(s(z0), cons(first(from(y0), s(y1)), z2)) -> c1(MARK(first(from(y0), s(y1)))) A__FIRST(s(z0), cons(first(s(first(y0, y1)), y2), z2)) -> c1(MARK(first(s(first(y0, y1)), y2))) A__FIRST(s(z0), cons(first(s(from(y0)), y1), z2)) -> c1(MARK(first(s(from(y0)), y1))) A__FIRST(s(z0), cons(first(s(0), y0), z2)) -> c1(MARK(first(s(0), y0))) A__FIRST(s(z0), cons(first(s(nil), y0), z2)) -> c1(MARK(first(s(nil), y0))) A__FIRST(s(z0), cons(first(s(s(y0)), y1), z2)) -> c1(MARK(first(s(s(y0)), y1))) A__FIRST(s(z0), cons(first(s(cons(y0, y1)), y2), z2)) -> c1(MARK(first(s(cons(y0, y1)), y2))) A__FIRST(s(z0), cons(first(s(y0), y1), z2)) -> c1(MARK(first(s(y0), y1))) A__FIRST(s(z0), cons(first(s(y0), 0), z2)) -> c1(MARK(first(s(y0), 0))) A__FIRST(s(z0), cons(first(s(y0), nil), z2)) -> c1(MARK(first(s(y0), nil))) A__FIRST(s(z0), cons(first(s(y0), s(y1)), z2)) -> c1(MARK(first(s(y0), s(y1)))) A__FIRST(s(z0), cons(first(0, first(y0, y1)), z2)) -> c1(MARK(first(0, first(y0, y1)))) A__FIRST(s(z0), cons(first(nil, first(y0, y1)), z2)) -> c1(MARK(first(nil, first(y0, y1)))) A__FIRST(s(z0), cons(first(0, from(y0)), z2)) -> c1(MARK(first(0, from(y0)))) A__FIRST(s(z0), cons(first(nil, from(y0)), z2)) -> c1(MARK(first(nil, from(y0)))) A__FIRST(s(z0), cons(first(y0, cons(y1, y2)), z2)) -> c1(MARK(first(y0, cons(y1, y2)))) A__FIRST(s(z0), cons(first(0, cons(y0, y1)), z2)) -> c1(MARK(first(0, cons(y0, y1)))) A__FIRST(s(z0), cons(first(nil, cons(y0, y1)), z2)) -> c1(MARK(first(nil, cons(y0, y1)))) MARK(first(x0, cons(0, x2))) -> c5(MARK(x0)) MARK(first(x0, cons(nil, x2))) -> c5(MARK(x0)) A__FROM(from(y0)) -> c3(MARK(from(y0))) A__FROM(s(y0)) -> c3(MARK(s(y0))) A__FROM(cons(y0, y1)) -> c3(MARK(cons(y0, y1))) A__FROM(first(y0, 0)) -> c3(MARK(first(y0, 0))) A__FROM(first(y0, nil)) -> c3(MARK(first(y0, nil))) A__FROM(first(y0, s(y1))) -> c3(MARK(first(y0, s(y1)))) A__FROM(first(cons(y0, y1), y2)) -> c3(MARK(first(cons(y0, y1), y2))) A__FROM(first(0, y0)) -> c3(MARK(first(0, y0))) A__FROM(first(nil, y0)) -> c3(MARK(first(nil, y0))) A__FROM(first(y0, first(y1, first(y2, y3)))) -> c3(MARK(first(y0, first(y1, first(y2, y3))))) A__FROM(first(y0, first(y1, from(y2)))) -> c3(MARK(first(y0, first(y1, from(y2))))) A__FROM(first(y0, first(y1, 0))) -> c3(MARK(first(y0, first(y1, 0)))) A__FROM(first(y0, first(y1, nil))) -> c3(MARK(first(y0, first(y1, nil)))) A__FROM(first(y0, first(y1, s(y2)))) -> c3(MARK(first(y0, first(y1, s(y2))))) A__FROM(first(y0, first(y1, cons(y2, y3)))) -> c3(MARK(first(y0, first(y1, cons(y2, y3))))) A__FROM(first(y0, first(first(y1, y2), y3))) -> c3(MARK(first(y0, first(first(y1, y2), y3)))) A__FROM(first(y0, first(from(y1), y2))) -> c3(MARK(first(y0, first(from(y1), y2)))) A__FROM(first(y0, first(0, y1))) -> c3(MARK(first(y0, first(0, y1)))) A__FROM(first(y0, first(nil, y1))) -> c3(MARK(first(y0, first(nil, y1)))) A__FROM(first(y0, first(s(y1), y2))) -> c3(MARK(first(y0, first(s(y1), y2)))) A__FROM(first(y0, first(cons(y1, y2), y3))) -> c3(MARK(first(y0, first(cons(y1, y2), y3)))) A__FROM(first(first(y0, y1), first(y2, y3))) -> c3(MARK(first(first(y0, y1), first(y2, y3)))) A__FROM(first(from(y0), first(y1, y2))) -> c3(MARK(first(from(y0), first(y1, y2)))) A__FROM(first(s(y0), first(y1, y2))) -> c3(MARK(first(s(y0), first(y1, y2)))) A__FROM(first(y0, first(y1, y2))) -> c3(MARK(first(y0, first(y1, y2)))) A__FROM(first(cons(y0, y1), first(y2, y3))) -> c3(MARK(first(cons(y0, y1), first(y2, y3)))) A__FROM(first(y0, from(y1))) -> c3(MARK(first(y0, from(y1)))) A__FROM(first(y0, from(first(y1, y2)))) -> c3(MARK(first(y0, from(first(y1, y2))))) A__FROM(first(y0, from(from(y1)))) -> c3(MARK(first(y0, from(from(y1))))) A__FROM(first(y0, from(0))) -> c3(MARK(first(y0, from(0)))) A__FROM(first(y0, from(nil))) -> c3(MARK(first(y0, from(nil)))) A__FROM(first(y0, from(s(y1)))) -> c3(MARK(first(y0, from(s(y1))))) A__FROM(first(y0, from(cons(y1, y2)))) -> c3(MARK(first(y0, from(cons(y1, y2))))) A__FROM(first(first(y0, y1), from(y2))) -> c3(MARK(first(first(y0, y1), from(y2)))) A__FROM(first(from(y0), from(y1))) -> c3(MARK(first(from(y0), from(y1)))) A__FROM(first(s(y0), from(y1))) -> c3(MARK(first(s(y0), from(y1)))) A__FROM(first(cons(y0, y1), from(y2))) -> c3(MARK(first(cons(y0, y1), from(y2)))) A__FROM(first(y0, cons(first(y1, y2), y3))) -> c3(MARK(first(y0, cons(first(y1, y2), y3)))) A__FROM(first(y0, cons(from(y1), y2))) -> c3(MARK(first(y0, cons(from(y1), y2)))) A__FROM(first(y0, cons(s(y1), y2))) -> c3(MARK(first(y0, cons(s(y1), y2)))) A__FROM(first(y0, cons(cons(y1, y2), y3))) -> c3(MARK(first(y0, cons(cons(y1, y2), y3)))) A__FROM(first(first(y0, y1), cons(y2, y3))) -> c3(MARK(first(first(y0, y1), cons(y2, y3)))) A__FROM(first(from(y0), cons(y1, y2))) -> c3(MARK(first(from(y0), cons(y1, y2)))) A__FROM(first(s(y0), cons(y1, y2))) -> c3(MARK(first(s(y0), cons(y1, y2)))) A__FROM(first(cons(y0, y1), cons(y2, y3))) -> c3(MARK(first(cons(y0, y1), cons(y2, y3)))) A__FROM(first(first(y0, first(y1, y2)), y3)) -> c3(MARK(first(first(y0, first(y1, y2)), y3))) A__FROM(first(first(y0, from(y1)), y2)) -> c3(MARK(first(first(y0, from(y1)), y2))) A__FROM(first(first(y0, 0), y1)) -> c3(MARK(first(first(y0, 0), y1))) A__FROM(first(first(y0, nil), y1)) -> c3(MARK(first(first(y0, nil), y1))) A__FROM(first(first(y0, s(y1)), y2)) -> c3(MARK(first(first(y0, s(y1)), y2))) A__FROM(first(first(y0, cons(y1, y2)), y3)) -> c3(MARK(first(first(y0, cons(y1, y2)), y3))) A__FROM(first(first(first(y0, y1), y2), y3)) -> c3(MARK(first(first(first(y0, y1), y2), y3))) A__FROM(first(first(from(y0), y1), y2)) -> c3(MARK(first(first(from(y0), y1), y2))) A__FROM(first(first(0, y0), y1)) -> c3(MARK(first(first(0, y0), y1))) A__FROM(first(first(nil, y0), y1)) -> c3(MARK(first(first(nil, y0), y1))) A__FROM(first(first(s(y0), y1), y2)) -> c3(MARK(first(first(s(y0), y1), y2))) A__FROM(first(first(cons(y0, y1), y2), y3)) -> c3(MARK(first(first(cons(y0, y1), y2), y3))) A__FROM(first(first(y0, y1), 0)) -> c3(MARK(first(first(y0, y1), 0))) A__FROM(first(first(y0, y1), nil)) -> c3(MARK(first(first(y0, y1), nil))) A__FROM(first(first(y0, y1), s(y2))) -> c3(MARK(first(first(y0, y1), s(y2)))) A__FROM(first(first(y0, y1), y2)) -> c3(MARK(first(first(y0, y1), y2))) A__FROM(first(from(first(y0, y1)), y2)) -> c3(MARK(first(from(first(y0, y1)), y2))) A__FROM(first(from(from(y0)), y1)) -> c3(MARK(first(from(from(y0)), y1))) A__FROM(first(from(0), y0)) -> c3(MARK(first(from(0), y0))) A__FROM(first(from(nil), y0)) -> c3(MARK(first(from(nil), y0))) A__FROM(first(from(s(y0)), y1)) -> c3(MARK(first(from(s(y0)), y1))) A__FROM(first(from(cons(y0, y1)), y2)) -> c3(MARK(first(from(cons(y0, y1)), y2))) A__FROM(first(from(y0), y1)) -> c3(MARK(first(from(y0), y1))) A__FROM(first(from(y0), 0)) -> c3(MARK(first(from(y0), 0))) A__FROM(first(from(y0), nil)) -> c3(MARK(first(from(y0), nil))) A__FROM(first(from(y0), s(y1))) -> c3(MARK(first(from(y0), s(y1)))) A__FROM(first(s(first(y0, y1)), y2)) -> c3(MARK(first(s(first(y0, y1)), y2))) A__FROM(first(s(from(y0)), y1)) -> c3(MARK(first(s(from(y0)), y1))) A__FROM(first(s(0), y0)) -> c3(MARK(first(s(0), y0))) A__FROM(first(s(nil), y0)) -> c3(MARK(first(s(nil), y0))) A__FROM(first(s(s(y0)), y1)) -> c3(MARK(first(s(s(y0)), y1))) A__FROM(first(s(cons(y0, y1)), y2)) -> c3(MARK(first(s(cons(y0, y1)), y2))) A__FROM(first(s(y0), y1)) -> c3(MARK(first(s(y0), y1))) A__FROM(first(s(y0), 0)) -> c3(MARK(first(s(y0), 0))) A__FROM(first(s(y0), nil)) -> c3(MARK(first(s(y0), nil))) A__FROM(first(s(y0), s(y1))) -> c3(MARK(first(s(y0), s(y1)))) A__FROM(first(0, first(y0, y1))) -> c3(MARK(first(0, first(y0, y1)))) A__FROM(first(nil, first(y0, y1))) -> c3(MARK(first(nil, first(y0, y1)))) A__FROM(first(0, from(y0))) -> c3(MARK(first(0, from(y0)))) A__FROM(first(nil, from(y0))) -> c3(MARK(first(nil, from(y0)))) A__FROM(first(y0, cons(y1, y2))) -> c3(MARK(first(y0, cons(y1, y2)))) A__FROM(first(0, cons(y0, y1))) -> c3(MARK(first(0, cons(y0, y1)))) A__FROM(first(nil, cons(y0, y1))) -> c3(MARK(first(nil, cons(y0, y1)))) A__FROM(first(y0, cons(0, y1))) -> c3(MARK(first(y0, cons(0, y1)))) A__FROM(first(y0, cons(nil, y1))) -> c3(MARK(first(y0, cons(nil, y1)))) MARK(from(s(z0))) -> c7(A__FROM(s(mark(z0))), MARK(s(z0))) MARK(from(cons(z0, z1))) -> c7(A__FROM(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(from(0), x1)) -> c5(A__FIRST(a__from(0), mark(x1))) MARK(first(from(nil), x1)) -> c5(A__FIRST(a__from(nil), mark(x1))) MARK(first(x0, from(0))) -> c6(A__FIRST(mark(x0), a__from(0))) MARK(first(x0, from(nil))) -> c6(A__FIRST(mark(x0), a__from(nil))) MARK(from(first(x0, x1))) -> c7(A__FROM(first(mark(x0), mark(x1))), MARK(first(x0, x1))) MARK(from(first(x0, first(z0, z1)))) -> c7(A__FROM(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) MARK(from(first(x0, from(z0)))) -> c7(A__FROM(a__first(mark(x0), a__from(mark(z0)))), MARK(first(x0, from(z0)))) MARK(from(first(x0, 0))) -> c7(A__FROM(a__first(mark(x0), 0)), MARK(first(x0, 0))) MARK(from(first(x0, nil))) -> c7(A__FROM(a__first(mark(x0), nil)), MARK(first(x0, nil))) MARK(from(first(x0, s(z0)))) -> c7(A__FROM(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) MARK(from(first(x0, cons(z0, z1)))) -> c7(A__FROM(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) MARK(from(first(first(z0, z1), x1))) -> c7(A__FROM(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) MARK(from(first(from(z0), x1))) -> c7(A__FROM(a__first(a__from(mark(z0)), mark(x1))), MARK(first(from(z0), x1))) MARK(from(first(0, x1))) -> c7(A__FROM(a__first(0, mark(x1))), MARK(first(0, x1))) MARK(from(first(nil, x1))) -> c7(A__FROM(a__first(nil, mark(x1))), MARK(first(nil, x1))) MARK(from(first(s(z0), x1))) -> c7(A__FROM(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) MARK(from(first(cons(z0, z1), x1))) -> c7(A__FROM(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) MARK(from(from(x0))) -> c7(A__FROM(cons(mark(mark(x0)), from(s(mark(x0))))), MARK(from(x0))) MARK(from(from(x0))) -> c7(A__FROM(from(mark(x0))), MARK(from(x0))) MARK(from(from(first(z0, z1)))) -> c7(A__FROM(a__from(a__first(mark(z0), mark(z1)))), MARK(from(first(z0, z1)))) MARK(from(from(from(z0)))) -> c7(A__FROM(a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(from(from(s(z0)))) -> c7(A__FROM(a__from(s(mark(z0)))), MARK(from(s(z0)))) MARK(from(from(cons(z0, z1)))) -> c7(A__FROM(a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(from(from(0))) -> c7(A__FROM(a__from(0))) MARK(from(from(nil))) -> c7(A__FROM(a__from(nil))) MARK(s(s(y0))) -> c10(MARK(s(y0))) MARK(s(cons(y0, y1))) -> c10(MARK(cons(y0, y1))) MARK(s(first(y0, 0))) -> c10(MARK(first(y0, 0))) MARK(s(first(y0, nil))) -> c10(MARK(first(y0, nil))) MARK(s(first(y0, s(y1)))) -> c10(MARK(first(y0, s(y1)))) MARK(s(first(cons(y0, y1), y2))) -> c10(MARK(first(cons(y0, y1), y2))) MARK(s(first(0, y0))) -> c10(MARK(first(0, y0))) MARK(s(first(nil, y0))) -> c10(MARK(first(nil, y0))) MARK(s(first(y0, first(y1, first(y2, y3))))) -> c10(MARK(first(y0, first(y1, first(y2, y3))))) MARK(s(first(y0, first(y1, from(y2))))) -> c10(MARK(first(y0, first(y1, from(y2))))) MARK(s(first(y0, first(y1, 0)))) -> c10(MARK(first(y0, first(y1, 0)))) MARK(s(first(y0, first(y1, nil)))) -> c10(MARK(first(y0, first(y1, nil)))) MARK(s(first(y0, first(y1, s(y2))))) -> c10(MARK(first(y0, first(y1, s(y2))))) MARK(s(first(y0, first(y1, cons(y2, y3))))) -> c10(MARK(first(y0, first(y1, cons(y2, y3))))) MARK(s(first(y0, first(first(y1, y2), y3)))) -> c10(MARK(first(y0, first(first(y1, y2), y3)))) MARK(s(first(y0, first(from(y1), y2)))) -> c10(MARK(first(y0, first(from(y1), y2)))) MARK(s(first(y0, first(0, y1)))) -> c10(MARK(first(y0, first(0, y1)))) MARK(s(first(y0, first(nil, y1)))) -> c10(MARK(first(y0, first(nil, y1)))) MARK(s(first(y0, first(s(y1), y2)))) -> c10(MARK(first(y0, first(s(y1), y2)))) MARK(s(first(y0, first(cons(y1, y2), y3)))) -> c10(MARK(first(y0, first(cons(y1, y2), y3)))) MARK(s(first(first(y0, y1), first(y2, y3)))) -> c10(MARK(first(first(y0, y1), first(y2, y3)))) MARK(s(first(from(y0), first(y1, y2)))) -> c10(MARK(first(from(y0), first(y1, y2)))) MARK(s(first(s(y0), first(y1, y2)))) -> c10(MARK(first(s(y0), first(y1, y2)))) MARK(s(first(y0, first(y1, y2)))) -> c10(MARK(first(y0, first(y1, y2)))) MARK(s(first(cons(y0, y1), first(y2, y3)))) -> c10(MARK(first(cons(y0, y1), first(y2, y3)))) MARK(s(first(y0, from(y1)))) -> c10(MARK(first(y0, from(y1)))) MARK(s(first(y0, from(first(y1, y2))))) -> c10(MARK(first(y0, from(first(y1, y2))))) MARK(s(first(y0, from(from(y1))))) -> c10(MARK(first(y0, from(from(y1))))) MARK(s(first(y0, from(0)))) -> c10(MARK(first(y0, from(0)))) MARK(s(first(y0, from(nil)))) -> c10(MARK(first(y0, from(nil)))) MARK(s(first(y0, from(s(y1))))) -> c10(MARK(first(y0, from(s(y1))))) MARK(s(first(y0, from(cons(y1, y2))))) -> c10(MARK(first(y0, from(cons(y1, y2))))) MARK(s(first(first(y0, y1), from(y2)))) -> c10(MARK(first(first(y0, y1), from(y2)))) MARK(s(first(from(y0), from(y1)))) -> c10(MARK(first(from(y0), from(y1)))) MARK(s(first(s(y0), from(y1)))) -> c10(MARK(first(s(y0), from(y1)))) MARK(s(first(cons(y0, y1), from(y2)))) -> c10(MARK(first(cons(y0, y1), from(y2)))) MARK(s(first(y0, cons(first(y1, y2), y3)))) -> c10(MARK(first(y0, cons(first(y1, y2), y3)))) MARK(s(first(y0, cons(from(y1), y2)))) -> c10(MARK(first(y0, cons(from(y1), y2)))) MARK(s(first(y0, cons(s(y1), y2)))) -> c10(MARK(first(y0, cons(s(y1), y2)))) MARK(s(first(y0, cons(cons(y1, y2), y3)))) -> c10(MARK(first(y0, cons(cons(y1, y2), y3)))) MARK(s(first(first(y0, y1), cons(y2, y3)))) -> c10(MARK(first(first(y0, y1), cons(y2, y3)))) MARK(s(first(from(y0), cons(y1, y2)))) -> c10(MARK(first(from(y0), cons(y1, y2)))) MARK(s(first(s(y0), cons(y1, y2)))) -> c10(MARK(first(s(y0), cons(y1, y2)))) MARK(s(first(cons(y0, y1), cons(y2, y3)))) -> c10(MARK(first(cons(y0, y1), cons(y2, y3)))) MARK(s(first(first(y0, first(y1, y2)), y3))) -> c10(MARK(first(first(y0, first(y1, y2)), y3))) MARK(s(first(first(y0, from(y1)), y2))) -> c10(MARK(first(first(y0, from(y1)), y2))) MARK(s(first(first(y0, 0), y1))) -> c10(MARK(first(first(y0, 0), y1))) MARK(s(first(first(y0, nil), y1))) -> c10(MARK(first(first(y0, nil), y1))) MARK(s(first(first(y0, s(y1)), y2))) -> c10(MARK(first(first(y0, s(y1)), y2))) MARK(s(first(first(y0, cons(y1, y2)), y3))) -> c10(MARK(first(first(y0, cons(y1, y2)), y3))) MARK(s(first(first(first(y0, y1), y2), y3))) -> c10(MARK(first(first(first(y0, y1), y2), y3))) MARK(s(first(first(from(y0), y1), y2))) -> c10(MARK(first(first(from(y0), y1), y2))) MARK(s(first(first(0, y0), y1))) -> c10(MARK(first(first(0, y0), y1))) MARK(s(first(first(nil, y0), y1))) -> c10(MARK(first(first(nil, y0), y1))) MARK(s(first(first(s(y0), y1), y2))) -> c10(MARK(first(first(s(y0), y1), y2))) MARK(s(first(first(cons(y0, y1), y2), y3))) -> c10(MARK(first(first(cons(y0, y1), y2), y3))) MARK(s(first(first(y0, y1), 0))) -> c10(MARK(first(first(y0, y1), 0))) MARK(s(first(first(y0, y1), nil))) -> c10(MARK(first(first(y0, y1), nil))) MARK(s(first(first(y0, y1), s(y2)))) -> c10(MARK(first(first(y0, y1), s(y2)))) MARK(s(first(first(y0, y1), y2))) -> c10(MARK(first(first(y0, y1), y2))) MARK(s(first(from(first(y0, y1)), y2))) -> c10(MARK(first(from(first(y0, y1)), y2))) MARK(s(first(from(from(y0)), y1))) -> c10(MARK(first(from(from(y0)), y1))) MARK(s(first(from(s(y0)), y1))) -> c10(MARK(first(from(s(y0)), y1))) MARK(s(first(from(cons(y0, y1)), y2))) -> c10(MARK(first(from(cons(y0, y1)), y2))) MARK(s(first(from(y0), y1))) -> c10(MARK(first(from(y0), y1))) MARK(s(first(from(y0), 0))) -> c10(MARK(first(from(y0), 0))) MARK(s(first(from(y0), nil))) -> c10(MARK(first(from(y0), nil))) MARK(s(first(from(y0), s(y1)))) -> c10(MARK(first(from(y0), s(y1)))) MARK(s(first(s(first(y0, y1)), y2))) -> c10(MARK(first(s(first(y0, y1)), y2))) MARK(s(first(s(from(y0)), y1))) -> c10(MARK(first(s(from(y0)), y1))) MARK(s(first(s(0), y0))) -> c10(MARK(first(s(0), y0))) MARK(s(first(s(nil), y0))) -> c10(MARK(first(s(nil), y0))) MARK(s(first(s(s(y0)), y1))) -> c10(MARK(first(s(s(y0)), y1))) MARK(s(first(s(cons(y0, y1)), y2))) -> c10(MARK(first(s(cons(y0, y1)), y2))) MARK(s(first(s(y0), y1))) -> c10(MARK(first(s(y0), y1))) MARK(s(first(s(y0), 0))) -> c10(MARK(first(s(y0), 0))) MARK(s(first(s(y0), nil))) -> c10(MARK(first(s(y0), nil))) MARK(s(first(s(y0), s(y1)))) -> c10(MARK(first(s(y0), s(y1)))) MARK(s(first(0, first(y0, y1)))) -> c10(MARK(first(0, first(y0, y1)))) MARK(s(first(nil, first(y0, y1)))) -> c10(MARK(first(nil, first(y0, y1)))) MARK(s(first(0, from(y0)))) -> c10(MARK(first(0, from(y0)))) MARK(s(first(nil, from(y0)))) -> c10(MARK(first(nil, from(y0)))) MARK(s(first(y0, cons(y1, y2)))) -> c10(MARK(first(y0, cons(y1, y2)))) MARK(s(first(0, cons(y0, y1)))) -> c10(MARK(first(0, cons(y0, y1)))) MARK(s(first(nil, cons(y0, y1)))) -> c10(MARK(first(nil, cons(y0, y1)))) MARK(s(first(from(0), y0))) -> c10(MARK(first(from(0), y0))) MARK(s(first(from(nil), y0))) -> c10(MARK(first(from(nil), y0))) MARK(s(first(y0, cons(0, y1)))) -> c10(MARK(first(y0, cons(0, y1)))) MARK(s(first(y0, cons(nil, y1)))) -> c10(MARK(first(y0, cons(nil, y1)))) MARK(s(from(s(y0)))) -> c10(MARK(from(s(y0)))) MARK(s(from(cons(y0, y1)))) -> c10(MARK(from(cons(y0, y1)))) MARK(s(from(first(y0, y1)))) -> c10(MARK(from(first(y0, y1)))) MARK(s(from(first(y0, first(y1, y2))))) -> c10(MARK(from(first(y0, first(y1, y2))))) MARK(s(from(first(y0, from(y1))))) -> c10(MARK(from(first(y0, from(y1))))) MARK(s(from(first(y0, 0)))) -> c10(MARK(from(first(y0, 0)))) MARK(s(from(first(y0, nil)))) -> c10(MARK(from(first(y0, nil)))) MARK(s(from(first(y0, s(y1))))) -> c10(MARK(from(first(y0, s(y1))))) MARK(s(from(first(y0, cons(y1, y2))))) -> c10(MARK(from(first(y0, cons(y1, y2))))) MARK(s(from(first(first(y0, y1), y2)))) -> c10(MARK(from(first(first(y0, y1), y2)))) MARK(s(from(first(from(y0), y1)))) -> c10(MARK(from(first(from(y0), y1)))) MARK(s(from(first(0, y0)))) -> c10(MARK(from(first(0, y0)))) MARK(s(from(first(nil, y0)))) -> c10(MARK(from(first(nil, y0)))) MARK(s(from(first(s(y0), y1)))) -> c10(MARK(from(first(s(y0), y1)))) MARK(s(from(first(cons(y0, y1), y2)))) -> c10(MARK(from(first(cons(y0, y1), y2)))) MARK(s(from(from(y0)))) -> c10(MARK(from(from(y0)))) MARK(s(from(from(first(y0, y1))))) -> c10(MARK(from(from(first(y0, y1))))) MARK(s(from(from(from(y0))))) -> c10(MARK(from(from(from(y0))))) MARK(s(from(from(s(y0))))) -> c10(MARK(from(from(s(y0))))) MARK(s(from(from(cons(y0, y1))))) -> c10(MARK(from(from(cons(y0, y1))))) MARK(s(from(from(0)))) -> c10(MARK(from(from(0)))) MARK(s(from(from(nil)))) -> c10(MARK(from(from(nil)))) MARK(first(s(0), x1)) -> c5(A__FIRST(s(0), mark(x1))) MARK(first(s(nil), x1)) -> c5(A__FIRST(s(nil), mark(x1))) MARK(cons(cons(y0, y1), z1)) -> c11(MARK(cons(y0, y1))) MARK(cons(first(y0, 0), z1)) -> c11(MARK(first(y0, 0))) MARK(cons(first(y0, nil), z1)) -> c11(MARK(first(y0, nil))) MARK(cons(first(y0, s(y1)), z1)) -> c11(MARK(first(y0, s(y1)))) MARK(cons(first(cons(y0, y1), y2), z1)) -> c11(MARK(first(cons(y0, y1), y2))) MARK(cons(first(0, y0), z1)) -> c11(MARK(first(0, y0))) MARK(cons(first(nil, y0), z1)) -> c11(MARK(first(nil, y0))) MARK(cons(first(y0, first(y1, first(y2, y3))), z1)) -> c11(MARK(first(y0, first(y1, first(y2, y3))))) MARK(cons(first(y0, first(y1, from(y2))), z1)) -> c11(MARK(first(y0, first(y1, from(y2))))) MARK(cons(first(y0, first(y1, 0)), z1)) -> c11(MARK(first(y0, first(y1, 0)))) MARK(cons(first(y0, first(y1, nil)), z1)) -> c11(MARK(first(y0, first(y1, nil)))) MARK(cons(first(y0, first(y1, s(y2))), z1)) -> c11(MARK(first(y0, first(y1, s(y2))))) MARK(cons(first(y0, first(y1, cons(y2, y3))), z1)) -> c11(MARK(first(y0, first(y1, cons(y2, y3))))) MARK(cons(first(y0, first(first(y1, y2), y3)), z1)) -> c11(MARK(first(y0, first(first(y1, y2), y3)))) MARK(cons(first(y0, first(from(y1), y2)), z1)) -> c11(MARK(first(y0, first(from(y1), y2)))) MARK(cons(first(y0, first(0, y1)), z1)) -> c11(MARK(first(y0, first(0, y1)))) MARK(cons(first(y0, first(nil, y1)), z1)) -> c11(MARK(first(y0, first(nil, y1)))) MARK(cons(first(y0, first(s(y1), y2)), z1)) -> c11(MARK(first(y0, first(s(y1), y2)))) MARK(cons(first(y0, first(cons(y1, y2), y3)), z1)) -> c11(MARK(first(y0, first(cons(y1, y2), y3)))) MARK(cons(first(first(y0, y1), first(y2, y3)), z1)) -> c11(MARK(first(first(y0, y1), first(y2, y3)))) MARK(cons(first(from(y0), first(y1, y2)), z1)) -> c11(MARK(first(from(y0), first(y1, y2)))) MARK(cons(first(s(y0), first(y1, y2)), z1)) -> c11(MARK(first(s(y0), first(y1, y2)))) MARK(cons(first(y0, first(y1, y2)), z1)) -> c11(MARK(first(y0, first(y1, y2)))) MARK(cons(first(cons(y0, y1), first(y2, y3)), z1)) -> c11(MARK(first(cons(y0, y1), first(y2, y3)))) MARK(cons(first(y0, from(y1)), z1)) -> c11(MARK(first(y0, from(y1)))) MARK(cons(first(y0, from(first(y1, y2))), z1)) -> c11(MARK(first(y0, from(first(y1, y2))))) MARK(cons(first(y0, from(from(y1))), z1)) -> c11(MARK(first(y0, from(from(y1))))) MARK(cons(first(y0, from(0)), z1)) -> c11(MARK(first(y0, from(0)))) MARK(cons(first(y0, from(nil)), z1)) -> c11(MARK(first(y0, from(nil)))) MARK(cons(first(y0, from(s(y1))), z1)) -> c11(MARK(first(y0, from(s(y1))))) MARK(cons(first(y0, from(cons(y1, y2))), z1)) -> c11(MARK(first(y0, from(cons(y1, y2))))) MARK(cons(first(first(y0, y1), from(y2)), z1)) -> c11(MARK(first(first(y0, y1), from(y2)))) MARK(cons(first(from(y0), from(y1)), z1)) -> c11(MARK(first(from(y0), from(y1)))) MARK(cons(first(s(y0), from(y1)), z1)) -> c11(MARK(first(s(y0), from(y1)))) MARK(cons(first(cons(y0, y1), from(y2)), z1)) -> c11(MARK(first(cons(y0, y1), from(y2)))) MARK(cons(first(y0, cons(first(y1, y2), y3)), z1)) -> c11(MARK(first(y0, cons(first(y1, y2), y3)))) MARK(cons(first(y0, cons(from(y1), y2)), z1)) -> c11(MARK(first(y0, cons(from(y1), y2)))) MARK(cons(first(y0, cons(s(y1), y2)), z1)) -> c11(MARK(first(y0, cons(s(y1), y2)))) MARK(cons(first(y0, cons(cons(y1, y2), y3)), z1)) -> c11(MARK(first(y0, cons(cons(y1, y2), y3)))) MARK(cons(first(first(y0, y1), cons(y2, y3)), z1)) -> c11(MARK(first(first(y0, y1), cons(y2, y3)))) MARK(cons(first(from(y0), cons(y1, y2)), z1)) -> c11(MARK(first(from(y0), cons(y1, y2)))) MARK(cons(first(s(y0), cons(y1, y2)), z1)) -> c11(MARK(first(s(y0), cons(y1, y2)))) MARK(cons(first(cons(y0, y1), cons(y2, y3)), z1)) -> c11(MARK(first(cons(y0, y1), cons(y2, y3)))) MARK(cons(first(first(y0, first(y1, y2)), y3), z1)) -> c11(MARK(first(first(y0, first(y1, y2)), y3))) MARK(cons(first(first(y0, from(y1)), y2), z1)) -> c11(MARK(first(first(y0, from(y1)), y2))) MARK(cons(first(first(y0, 0), y1), z1)) -> c11(MARK(first(first(y0, 0), y1))) MARK(cons(first(first(y0, nil), y1), z1)) -> c11(MARK(first(first(y0, nil), y1))) MARK(cons(first(first(y0, s(y1)), y2), z1)) -> c11(MARK(first(first(y0, s(y1)), y2))) MARK(cons(first(first(y0, cons(y1, y2)), y3), z1)) -> c11(MARK(first(first(y0, cons(y1, y2)), y3))) MARK(cons(first(first(first(y0, y1), y2), y3), z1)) -> c11(MARK(first(first(first(y0, y1), y2), y3))) MARK(cons(first(first(from(y0), y1), y2), z1)) -> c11(MARK(first(first(from(y0), y1), y2))) MARK(cons(first(first(0, y0), y1), z1)) -> c11(MARK(first(first(0, y0), y1))) MARK(cons(first(first(nil, y0), y1), z1)) -> c11(MARK(first(first(nil, y0), y1))) MARK(cons(first(first(s(y0), y1), y2), z1)) -> c11(MARK(first(first(s(y0), y1), y2))) MARK(cons(first(first(cons(y0, y1), y2), y3), z1)) -> c11(MARK(first(first(cons(y0, y1), y2), y3))) MARK(cons(first(first(y0, y1), 0), z1)) -> c11(MARK(first(first(y0, y1), 0))) MARK(cons(first(first(y0, y1), nil), z1)) -> c11(MARK(first(first(y0, y1), nil))) MARK(cons(first(first(y0, y1), s(y2)), z1)) -> c11(MARK(first(first(y0, y1), s(y2)))) MARK(cons(first(first(y0, y1), y2), z1)) -> c11(MARK(first(first(y0, y1), y2))) MARK(cons(first(from(first(y0, y1)), y2), z1)) -> c11(MARK(first(from(first(y0, y1)), y2))) MARK(cons(first(from(from(y0)), y1), z1)) -> c11(MARK(first(from(from(y0)), y1))) MARK(cons(first(from(s(y0)), y1), z1)) -> c11(MARK(first(from(s(y0)), y1))) MARK(cons(first(from(cons(y0, y1)), y2), z1)) -> c11(MARK(first(from(cons(y0, y1)), y2))) MARK(cons(first(from(y0), y1), z1)) -> c11(MARK(first(from(y0), y1))) MARK(cons(first(from(y0), 0), z1)) -> c11(MARK(first(from(y0), 0))) MARK(cons(first(from(y0), nil), z1)) -> c11(MARK(first(from(y0), nil))) MARK(cons(first(from(y0), s(y1)), z1)) -> c11(MARK(first(from(y0), s(y1)))) MARK(cons(first(s(first(y0, y1)), y2), z1)) -> c11(MARK(first(s(first(y0, y1)), y2))) MARK(cons(first(s(from(y0)), y1), z1)) -> c11(MARK(first(s(from(y0)), y1))) MARK(cons(first(s(s(y0)), y1), z1)) -> c11(MARK(first(s(s(y0)), y1))) MARK(cons(first(s(cons(y0, y1)), y2), z1)) -> c11(MARK(first(s(cons(y0, y1)), y2))) MARK(cons(first(s(y0), y1), z1)) -> c11(MARK(first(s(y0), y1))) MARK(cons(first(s(y0), 0), z1)) -> c11(MARK(first(s(y0), 0))) MARK(cons(first(s(y0), nil), z1)) -> c11(MARK(first(s(y0), nil))) MARK(cons(first(s(y0), s(y1)), z1)) -> c11(MARK(first(s(y0), s(y1)))) MARK(cons(first(0, first(y0, y1)), z1)) -> c11(MARK(first(0, first(y0, y1)))) MARK(cons(first(nil, first(y0, y1)), z1)) -> c11(MARK(first(nil, first(y0, y1)))) MARK(cons(first(0, from(y0)), z1)) -> c11(MARK(first(0, from(y0)))) MARK(cons(first(nil, from(y0)), z1)) -> c11(MARK(first(nil, from(y0)))) MARK(cons(first(y0, cons(y1, y2)), z1)) -> c11(MARK(first(y0, cons(y1, y2)))) MARK(cons(first(0, cons(y0, y1)), z1)) -> c11(MARK(first(0, cons(y0, y1)))) MARK(cons(first(nil, cons(y0, y1)), z1)) -> c11(MARK(first(nil, cons(y0, y1)))) MARK(cons(first(from(0), y0), z1)) -> c11(MARK(first(from(0), y0))) MARK(cons(first(from(nil), y0), z1)) -> c11(MARK(first(from(nil), y0))) MARK(cons(first(s(0), y0), z1)) -> c11(MARK(first(s(0), y0))) MARK(cons(first(s(nil), y0), z1)) -> c11(MARK(first(s(nil), y0))) MARK(cons(first(y0, cons(0, y1)), z1)) -> c11(MARK(first(y0, cons(0, y1)))) MARK(cons(first(y0, cons(nil, y1)), z1)) -> c11(MARK(first(y0, cons(nil, y1)))) MARK(cons(from(s(y0)), z1)) -> c11(MARK(from(s(y0)))) MARK(cons(from(cons(y0, y1)), z1)) -> c11(MARK(from(cons(y0, y1)))) MARK(cons(from(first(y0, y1)), z1)) -> c11(MARK(from(first(y0, y1)))) MARK(cons(from(first(y0, first(y1, y2))), z1)) -> c11(MARK(from(first(y0, first(y1, y2))))) MARK(cons(from(first(y0, from(y1))), z1)) -> c11(MARK(from(first(y0, from(y1))))) MARK(cons(from(first(y0, 0)), z1)) -> c11(MARK(from(first(y0, 0)))) MARK(cons(from(first(y0, nil)), z1)) -> c11(MARK(from(first(y0, nil)))) MARK(cons(from(first(y0, s(y1))), z1)) -> c11(MARK(from(first(y0, s(y1))))) MARK(cons(from(first(y0, cons(y1, y2))), z1)) -> c11(MARK(from(first(y0, cons(y1, y2))))) MARK(cons(from(first(first(y0, y1), y2)), z1)) -> c11(MARK(from(first(first(y0, y1), y2)))) MARK(cons(from(first(from(y0), y1)), z1)) -> c11(MARK(from(first(from(y0), y1)))) MARK(cons(from(first(0, y0)), z1)) -> c11(MARK(from(first(0, y0)))) MARK(cons(from(first(nil, y0)), z1)) -> c11(MARK(from(first(nil, y0)))) MARK(cons(from(first(s(y0), y1)), z1)) -> c11(MARK(from(first(s(y0), y1)))) MARK(cons(from(first(cons(y0, y1), y2)), z1)) -> c11(MARK(from(first(cons(y0, y1), y2)))) MARK(cons(from(from(y0)), z1)) -> c11(MARK(from(from(y0)))) MARK(cons(from(from(first(y0, y1))), z1)) -> c11(MARK(from(from(first(y0, y1))))) MARK(cons(from(from(from(y0))), z1)) -> c11(MARK(from(from(from(y0))))) MARK(cons(from(from(s(y0))), z1)) -> c11(MARK(from(from(s(y0))))) MARK(cons(from(from(cons(y0, y1))), z1)) -> c11(MARK(from(from(cons(y0, y1))))) MARK(cons(from(from(0)), z1)) -> c11(MARK(from(from(0)))) MARK(cons(from(from(nil)), z1)) -> c11(MARK(from(from(nil)))) MARK(cons(s(s(y0)), z1)) -> c11(MARK(s(s(y0)))) MARK(cons(s(cons(y0, y1)), z1)) -> c11(MARK(s(cons(y0, y1)))) MARK(cons(s(first(y0, 0)), z1)) -> c11(MARK(s(first(y0, 0)))) MARK(cons(s(first(y0, nil)), z1)) -> c11(MARK(s(first(y0, nil)))) MARK(cons(s(first(y0, s(y1))), z1)) -> c11(MARK(s(first(y0, s(y1))))) MARK(cons(s(first(cons(y0, y1), y2)), z1)) -> c11(MARK(s(first(cons(y0, y1), y2)))) MARK(cons(s(first(0, y0)), z1)) -> c11(MARK(s(first(0, y0)))) MARK(cons(s(first(nil, y0)), z1)) -> c11(MARK(s(first(nil, y0)))) MARK(cons(s(first(y0, first(y1, first(y2, y3)))), z1)) -> c11(MARK(s(first(y0, first(y1, first(y2, y3)))))) MARK(cons(s(first(y0, first(y1, from(y2)))), z1)) -> c11(MARK(s(first(y0, first(y1, from(y2)))))) MARK(cons(s(first(y0, first(y1, 0))), z1)) -> c11(MARK(s(first(y0, first(y1, 0))))) MARK(cons(s(first(y0, first(y1, nil))), z1)) -> c11(MARK(s(first(y0, first(y1, nil))))) MARK(cons(s(first(y0, first(y1, s(y2)))), z1)) -> c11(MARK(s(first(y0, first(y1, s(y2)))))) MARK(cons(s(first(y0, first(y1, cons(y2, y3)))), z1)) -> c11(MARK(s(first(y0, first(y1, cons(y2, y3)))))) MARK(cons(s(first(y0, first(first(y1, y2), y3))), z1)) -> c11(MARK(s(first(y0, first(first(y1, y2), y3))))) MARK(cons(s(first(y0, first(from(y1), y2))), z1)) -> c11(MARK(s(first(y0, first(from(y1), y2))))) MARK(cons(s(first(y0, first(0, y1))), z1)) -> c11(MARK(s(first(y0, first(0, y1))))) MARK(cons(s(first(y0, first(nil, y1))), z1)) -> c11(MARK(s(first(y0, first(nil, y1))))) MARK(cons(s(first(y0, first(s(y1), y2))), z1)) -> c11(MARK(s(first(y0, first(s(y1), y2))))) MARK(cons(s(first(y0, first(cons(y1, y2), y3))), z1)) -> c11(MARK(s(first(y0, first(cons(y1, y2), y3))))) MARK(cons(s(first(first(y0, y1), first(y2, y3))), z1)) -> c11(MARK(s(first(first(y0, y1), first(y2, y3))))) MARK(cons(s(first(from(y0), first(y1, y2))), z1)) -> c11(MARK(s(first(from(y0), first(y1, y2))))) MARK(cons(s(first(s(y0), first(y1, y2))), z1)) -> c11(MARK(s(first(s(y0), first(y1, y2))))) MARK(cons(s(first(y0, first(y1, y2))), z1)) -> c11(MARK(s(first(y0, first(y1, y2))))) MARK(cons(s(first(cons(y0, y1), first(y2, y3))), z1)) -> c11(MARK(s(first(cons(y0, y1), first(y2, y3))))) MARK(cons(s(first(y0, from(y1))), z1)) -> c11(MARK(s(first(y0, from(y1))))) MARK(cons(s(first(y0, from(first(y1, y2)))), z1)) -> c11(MARK(s(first(y0, from(first(y1, y2)))))) MARK(cons(s(first(y0, from(from(y1)))), z1)) -> c11(MARK(s(first(y0, from(from(y1)))))) MARK(cons(s(first(y0, from(0))), z1)) -> c11(MARK(s(first(y0, from(0))))) MARK(cons(s(first(y0, from(nil))), z1)) -> c11(MARK(s(first(y0, from(nil))))) MARK(cons(s(first(y0, from(s(y1)))), z1)) -> c11(MARK(s(first(y0, from(s(y1)))))) MARK(cons(s(first(y0, from(cons(y1, y2)))), z1)) -> c11(MARK(s(first(y0, from(cons(y1, y2)))))) MARK(cons(s(first(first(y0, y1), from(y2))), z1)) -> c11(MARK(s(first(first(y0, y1), from(y2))))) MARK(cons(s(first(from(y0), from(y1))), z1)) -> c11(MARK(s(first(from(y0), from(y1))))) MARK(cons(s(first(s(y0), from(y1))), z1)) -> c11(MARK(s(first(s(y0), from(y1))))) MARK(cons(s(first(cons(y0, y1), from(y2))), z1)) -> c11(MARK(s(first(cons(y0, y1), from(y2))))) MARK(cons(s(first(y0, cons(first(y1, y2), y3))), z1)) -> c11(MARK(s(first(y0, cons(first(y1, y2), y3))))) MARK(cons(s(first(y0, cons(from(y1), y2))), z1)) -> c11(MARK(s(first(y0, cons(from(y1), y2))))) MARK(cons(s(first(y0, cons(s(y1), y2))), z1)) -> c11(MARK(s(first(y0, cons(s(y1), y2))))) MARK(cons(s(first(y0, cons(cons(y1, y2), y3))), z1)) -> c11(MARK(s(first(y0, cons(cons(y1, y2), y3))))) MARK(cons(s(first(first(y0, y1), cons(y2, y3))), z1)) -> c11(MARK(s(first(first(y0, y1), cons(y2, y3))))) MARK(cons(s(first(from(y0), cons(y1, y2))), z1)) -> c11(MARK(s(first(from(y0), cons(y1, y2))))) MARK(cons(s(first(s(y0), cons(y1, y2))), z1)) -> c11(MARK(s(first(s(y0), cons(y1, y2))))) MARK(cons(s(first(cons(y0, y1), cons(y2, y3))), z1)) -> c11(MARK(s(first(cons(y0, y1), cons(y2, y3))))) MARK(cons(s(first(first(y0, first(y1, y2)), y3)), z1)) -> c11(MARK(s(first(first(y0, first(y1, y2)), y3)))) MARK(cons(s(first(first(y0, from(y1)), y2)), z1)) -> c11(MARK(s(first(first(y0, from(y1)), y2)))) MARK(cons(s(first(first(y0, 0), y1)), z1)) -> c11(MARK(s(first(first(y0, 0), y1)))) MARK(cons(s(first(first(y0, nil), y1)), z1)) -> c11(MARK(s(first(first(y0, nil), y1)))) MARK(cons(s(first(first(y0, s(y1)), y2)), z1)) -> c11(MARK(s(first(first(y0, s(y1)), y2)))) MARK(cons(s(first(first(y0, cons(y1, y2)), y3)), z1)) -> c11(MARK(s(first(first(y0, cons(y1, y2)), y3)))) MARK(cons(s(first(first(first(y0, y1), y2), y3)), z1)) -> c11(MARK(s(first(first(first(y0, y1), y2), y3)))) MARK(cons(s(first(first(from(y0), y1), y2)), z1)) -> c11(MARK(s(first(first(from(y0), y1), y2)))) MARK(cons(s(first(first(0, y0), y1)), z1)) -> c11(MARK(s(first(first(0, y0), y1)))) MARK(cons(s(first(first(nil, y0), y1)), z1)) -> c11(MARK(s(first(first(nil, y0), y1)))) MARK(cons(s(first(first(s(y0), y1), y2)), z1)) -> c11(MARK(s(first(first(s(y0), y1), y2)))) MARK(cons(s(first(first(cons(y0, y1), y2), y3)), z1)) -> c11(MARK(s(first(first(cons(y0, y1), y2), y3)))) MARK(cons(s(first(first(y0, y1), 0)), z1)) -> c11(MARK(s(first(first(y0, y1), 0)))) MARK(cons(s(first(first(y0, y1), nil)), z1)) -> c11(MARK(s(first(first(y0, y1), nil)))) MARK(cons(s(first(first(y0, y1), s(y2))), z1)) -> c11(MARK(s(first(first(y0, y1), s(y2))))) MARK(cons(s(first(first(y0, y1), y2)), z1)) -> c11(MARK(s(first(first(y0, y1), y2)))) MARK(cons(s(first(from(first(y0, y1)), y2)), z1)) -> c11(MARK(s(first(from(first(y0, y1)), y2)))) MARK(cons(s(first(from(from(y0)), y1)), z1)) -> c11(MARK(s(first(from(from(y0)), y1)))) MARK(cons(s(first(from(s(y0)), y1)), z1)) -> c11(MARK(s(first(from(s(y0)), y1)))) MARK(cons(s(first(from(cons(y0, y1)), y2)), z1)) -> c11(MARK(s(first(from(cons(y0, y1)), y2)))) MARK(cons(s(first(from(y0), y1)), z1)) -> c11(MARK(s(first(from(y0), y1)))) MARK(cons(s(first(from(y0), 0)), z1)) -> c11(MARK(s(first(from(y0), 0)))) MARK(cons(s(first(from(y0), nil)), z1)) -> c11(MARK(s(first(from(y0), nil)))) MARK(cons(s(first(from(y0), s(y1))), z1)) -> c11(MARK(s(first(from(y0), s(y1))))) MARK(cons(s(first(s(first(y0, y1)), y2)), z1)) -> c11(MARK(s(first(s(first(y0, y1)), y2)))) MARK(cons(s(first(s(from(y0)), y1)), z1)) -> c11(MARK(s(first(s(from(y0)), y1)))) MARK(cons(s(first(s(0), y0)), z1)) -> c11(MARK(s(first(s(0), y0)))) MARK(cons(s(first(s(nil), y0)), z1)) -> c11(MARK(s(first(s(nil), y0)))) MARK(cons(s(first(s(s(y0)), y1)), z1)) -> c11(MARK(s(first(s(s(y0)), y1)))) MARK(cons(s(first(s(cons(y0, y1)), y2)), z1)) -> c11(MARK(s(first(s(cons(y0, y1)), y2)))) MARK(cons(s(first(s(y0), y1)), z1)) -> c11(MARK(s(first(s(y0), y1)))) MARK(cons(s(first(s(y0), 0)), z1)) -> c11(MARK(s(first(s(y0), 0)))) MARK(cons(s(first(s(y0), nil)), z1)) -> c11(MARK(s(first(s(y0), nil)))) MARK(cons(s(first(s(y0), s(y1))), z1)) -> c11(MARK(s(first(s(y0), s(y1))))) MARK(cons(s(first(0, first(y0, y1))), z1)) -> c11(MARK(s(first(0, first(y0, y1))))) MARK(cons(s(first(nil, first(y0, y1))), z1)) -> c11(MARK(s(first(nil, first(y0, y1))))) MARK(cons(s(first(0, from(y0))), z1)) -> c11(MARK(s(first(0, from(y0))))) MARK(cons(s(first(nil, from(y0))), z1)) -> c11(MARK(s(first(nil, from(y0))))) MARK(cons(s(first(y0, cons(y1, y2))), z1)) -> c11(MARK(s(first(y0, cons(y1, y2))))) MARK(cons(s(first(0, cons(y0, y1))), z1)) -> c11(MARK(s(first(0, cons(y0, y1))))) MARK(cons(s(first(nil, cons(y0, y1))), z1)) -> c11(MARK(s(first(nil, cons(y0, y1))))) MARK(cons(s(first(from(0), y0)), z1)) -> c11(MARK(s(first(from(0), y0)))) MARK(cons(s(first(from(nil), y0)), z1)) -> c11(MARK(s(first(from(nil), y0)))) MARK(cons(s(first(y0, cons(0, y1))), z1)) -> c11(MARK(s(first(y0, cons(0, y1))))) MARK(cons(s(first(y0, cons(nil, y1))), z1)) -> c11(MARK(s(first(y0, cons(nil, y1))))) MARK(cons(s(from(s(y0))), z1)) -> c11(MARK(s(from(s(y0))))) MARK(cons(s(from(cons(y0, y1))), z1)) -> c11(MARK(s(from(cons(y0, y1))))) MARK(cons(s(from(first(y0, y1))), z1)) -> c11(MARK(s(from(first(y0, y1))))) MARK(cons(s(from(first(y0, first(y1, y2)))), z1)) -> c11(MARK(s(from(first(y0, first(y1, y2)))))) MARK(cons(s(from(first(y0, from(y1)))), z1)) -> c11(MARK(s(from(first(y0, from(y1)))))) MARK(cons(s(from(first(y0, 0))), z1)) -> c11(MARK(s(from(first(y0, 0))))) MARK(cons(s(from(first(y0, nil))), z1)) -> c11(MARK(s(from(first(y0, nil))))) MARK(cons(s(from(first(y0, s(y1)))), z1)) -> c11(MARK(s(from(first(y0, s(y1)))))) MARK(cons(s(from(first(y0, cons(y1, y2)))), z1)) -> c11(MARK(s(from(first(y0, cons(y1, y2)))))) MARK(cons(s(from(first(first(y0, y1), y2))), z1)) -> c11(MARK(s(from(first(first(y0, y1), y2))))) MARK(cons(s(from(first(from(y0), y1))), z1)) -> c11(MARK(s(from(first(from(y0), y1))))) MARK(cons(s(from(first(0, y0))), z1)) -> c11(MARK(s(from(first(0, y0))))) MARK(cons(s(from(first(nil, y0))), z1)) -> c11(MARK(s(from(first(nil, y0))))) MARK(cons(s(from(first(s(y0), y1))), z1)) -> c11(MARK(s(from(first(s(y0), y1))))) MARK(cons(s(from(first(cons(y0, y1), y2))), z1)) -> c11(MARK(s(from(first(cons(y0, y1), y2))))) MARK(cons(s(from(from(y0))), z1)) -> c11(MARK(s(from(from(y0))))) MARK(cons(s(from(from(first(y0, y1)))), z1)) -> c11(MARK(s(from(from(first(y0, y1)))))) MARK(cons(s(from(from(from(y0)))), z1)) -> c11(MARK(s(from(from(from(y0)))))) MARK(cons(s(from(from(s(y0)))), z1)) -> c11(MARK(s(from(from(s(y0)))))) MARK(cons(s(from(from(cons(y0, y1)))), z1)) -> c11(MARK(s(from(from(cons(y0, y1)))))) MARK(cons(s(from(from(0))), z1)) -> c11(MARK(s(from(from(0))))) MARK(cons(s(from(from(nil))), z1)) -> c11(MARK(s(from(from(nil))))) MARK(first(first(y0, 0), 0)) -> c5(MARK(first(y0, 0))) MARK(first(first(y0, nil), 0)) -> c5(MARK(first(y0, nil))) MARK(first(first(y0, s(y1)), 0)) -> c5(MARK(first(y0, s(y1)))) MARK(first(first(cons(y0, y1), y2), 0)) -> c5(MARK(first(cons(y0, y1), y2))) MARK(first(first(0, y0), 0)) -> c5(MARK(first(0, y0))) MARK(first(first(nil, y0), 0)) -> c5(MARK(first(nil, y0))) MARK(first(first(y0, first(y1, first(y2, y3))), 0)) -> c5(MARK(first(y0, first(y1, first(y2, y3))))) MARK(first(first(y0, first(y1, from(y2))), 0)) -> c5(MARK(first(y0, first(y1, from(y2))))) MARK(first(first(y0, first(y1, 0)), 0)) -> c5(MARK(first(y0, first(y1, 0)))) MARK(first(first(y0, first(y1, nil)), 0)) -> c5(MARK(first(y0, first(y1, nil)))) MARK(first(first(y0, first(y1, s(y2))), 0)) -> c5(MARK(first(y0, first(y1, s(y2))))) MARK(first(first(y0, first(y1, cons(y2, y3))), 0)) -> c5(MARK(first(y0, first(y1, cons(y2, y3))))) MARK(first(first(y0, first(first(y1, y2), y3)), 0)) -> c5(MARK(first(y0, first(first(y1, y2), y3)))) MARK(first(first(y0, first(from(y1), y2)), 0)) -> c5(MARK(first(y0, first(from(y1), y2)))) MARK(first(first(y0, first(0, y1)), 0)) -> c5(MARK(first(y0, first(0, y1)))) MARK(first(first(y0, first(nil, y1)), 0)) -> c5(MARK(first(y0, first(nil, y1)))) MARK(first(first(y0, first(s(y1), y2)), 0)) -> c5(MARK(first(y0, first(s(y1), y2)))) MARK(first(first(y0, first(cons(y1, y2), y3)), 0)) -> c5(MARK(first(y0, first(cons(y1, y2), y3)))) MARK(first(first(first(y0, y1), first(y2, y3)), 0)) -> c5(MARK(first(first(y0, y1), first(y2, y3)))) MARK(first(first(from(y0), first(y1, y2)), 0)) -> c5(MARK(first(from(y0), first(y1, y2)))) MARK(first(first(s(y0), first(y1, y2)), 0)) -> c5(MARK(first(s(y0), first(y1, y2)))) MARK(first(first(y0, first(y1, y2)), 0)) -> c5(MARK(first(y0, first(y1, y2)))) MARK(first(first(cons(y0, y1), first(y2, y3)), 0)) -> c5(MARK(first(cons(y0, y1), first(y2, y3)))) MARK(first(first(y0, from(y1)), 0)) -> c5(MARK(first(y0, from(y1)))) MARK(first(first(y0, from(first(y1, y2))), 0)) -> c5(MARK(first(y0, from(first(y1, y2))))) MARK(first(first(y0, from(from(y1))), 0)) -> c5(MARK(first(y0, from(from(y1))))) MARK(first(first(y0, from(0)), 0)) -> c5(MARK(first(y0, from(0)))) MARK(first(first(y0, from(nil)), 0)) -> c5(MARK(first(y0, from(nil)))) MARK(first(first(y0, from(s(y1))), 0)) -> c5(MARK(first(y0, from(s(y1))))) MARK(first(first(y0, from(cons(y1, y2))), 0)) -> c5(MARK(first(y0, from(cons(y1, y2))))) MARK(first(first(first(y0, y1), from(y2)), 0)) -> c5(MARK(first(first(y0, y1), from(y2)))) MARK(first(first(from(y0), from(y1)), 0)) -> c5(MARK(first(from(y0), from(y1)))) MARK(first(first(s(y0), from(y1)), 0)) -> c5(MARK(first(s(y0), from(y1)))) MARK(first(first(cons(y0, y1), from(y2)), 0)) -> c5(MARK(first(cons(y0, y1), from(y2)))) MARK(first(first(y0, cons(first(y1, y2), y3)), 0)) -> c5(MARK(first(y0, cons(first(y1, y2), y3)))) MARK(first(first(y0, cons(from(y1), y2)), 0)) -> c5(MARK(first(y0, cons(from(y1), y2)))) MARK(first(first(y0, cons(s(y1), y2)), 0)) -> c5(MARK(first(y0, cons(s(y1), y2)))) MARK(first(first(y0, cons(cons(y1, y2), y3)), 0)) -> c5(MARK(first(y0, cons(cons(y1, y2), y3)))) MARK(first(first(first(y0, y1), cons(y2, y3)), 0)) -> c5(MARK(first(first(y0, y1), cons(y2, y3)))) MARK(first(first(from(y0), cons(y1, y2)), 0)) -> c5(MARK(first(from(y0), cons(y1, y2)))) MARK(first(first(s(y0), cons(y1, y2)), 0)) -> c5(MARK(first(s(y0), cons(y1, y2)))) MARK(first(first(cons(y0, y1), cons(y2, y3)), 0)) -> c5(MARK(first(cons(y0, y1), cons(y2, y3)))) MARK(first(first(first(y0, first(y1, y2)), y3), 0)) -> c5(MARK(first(first(y0, first(y1, y2)), y3))) MARK(first(first(first(y0, from(y1)), y2), 0)) -> c5(MARK(first(first(y0, from(y1)), y2))) MARK(first(first(first(y0, 0), y1), 0)) -> c5(MARK(first(first(y0, 0), y1))) MARK(first(first(first(y0, nil), y1), 0)) -> c5(MARK(first(first(y0, nil), y1))) MARK(first(first(first(y0, s(y1)), y2), 0)) -> c5(MARK(first(first(y0, s(y1)), y2))) MARK(first(first(first(y0, cons(y1, y2)), y3), 0)) -> c5(MARK(first(first(y0, cons(y1, y2)), y3))) MARK(first(first(first(first(y0, y1), y2), y3), 0)) -> c5(MARK(first(first(first(y0, y1), y2), y3))) MARK(first(first(first(from(y0), y1), y2), 0)) -> c5(MARK(first(first(from(y0), y1), y2))) MARK(first(first(first(0, y0), y1), 0)) -> c5(MARK(first(first(0, y0), y1))) MARK(first(first(first(nil, y0), y1), 0)) -> c5(MARK(first(first(nil, y0), y1))) MARK(first(first(first(s(y0), y1), y2), 0)) -> c5(MARK(first(first(s(y0), y1), y2))) MARK(first(first(first(cons(y0, y1), y2), y3), 0)) -> c5(MARK(first(first(cons(y0, y1), y2), y3))) MARK(first(first(first(y0, y1), 0), 0)) -> c5(MARK(first(first(y0, y1), 0))) MARK(first(first(first(y0, y1), nil), 0)) -> c5(MARK(first(first(y0, y1), nil))) MARK(first(first(first(y0, y1), s(y2)), 0)) -> c5(MARK(first(first(y0, y1), s(y2)))) MARK(first(first(first(y0, y1), y2), 0)) -> c5(MARK(first(first(y0, y1), y2))) MARK(first(first(from(first(y0, y1)), y2), 0)) -> c5(MARK(first(from(first(y0, y1)), y2))) MARK(first(first(from(from(y0)), y1), 0)) -> c5(MARK(first(from(from(y0)), y1))) MARK(first(first(from(s(y0)), y1), 0)) -> c5(MARK(first(from(s(y0)), y1))) MARK(first(first(from(cons(y0, y1)), y2), 0)) -> c5(MARK(first(from(cons(y0, y1)), y2))) MARK(first(first(from(y0), y1), 0)) -> c5(MARK(first(from(y0), y1))) MARK(first(first(from(y0), 0), 0)) -> c5(MARK(first(from(y0), 0))) MARK(first(first(from(y0), nil), 0)) -> c5(MARK(first(from(y0), nil))) MARK(first(first(from(y0), s(y1)), 0)) -> c5(MARK(first(from(y0), s(y1)))) MARK(first(first(s(first(y0, y1)), y2), 0)) -> c5(MARK(first(s(first(y0, y1)), y2))) MARK(first(first(s(from(y0)), y1), 0)) -> c5(MARK(first(s(from(y0)), y1))) MARK(first(first(s(s(y0)), y1), 0)) -> c5(MARK(first(s(s(y0)), y1))) MARK(first(first(s(cons(y0, y1)), y2), 0)) -> c5(MARK(first(s(cons(y0, y1)), y2))) MARK(first(first(s(y0), y1), 0)) -> c5(MARK(first(s(y0), y1))) MARK(first(first(s(y0), 0), 0)) -> c5(MARK(first(s(y0), 0))) MARK(first(first(s(y0), nil), 0)) -> c5(MARK(first(s(y0), nil))) MARK(first(first(s(y0), s(y1)), 0)) -> c5(MARK(first(s(y0), s(y1)))) MARK(first(first(0, first(y0, y1)), 0)) -> c5(MARK(first(0, first(y0, y1)))) MARK(first(first(nil, first(y0, y1)), 0)) -> c5(MARK(first(nil, first(y0, y1)))) MARK(first(first(0, from(y0)), 0)) -> c5(MARK(first(0, from(y0)))) MARK(first(first(nil, from(y0)), 0)) -> c5(MARK(first(nil, from(y0)))) MARK(first(first(y0, cons(y1, y2)), 0)) -> c5(MARK(first(y0, cons(y1, y2)))) MARK(first(first(0, cons(y0, y1)), 0)) -> c5(MARK(first(0, cons(y0, y1)))) MARK(first(first(nil, cons(y0, y1)), 0)) -> c5(MARK(first(nil, cons(y0, y1)))) MARK(first(first(from(0), y0), 0)) -> c5(MARK(first(from(0), y0))) MARK(first(first(from(nil), y0), 0)) -> c5(MARK(first(from(nil), y0))) MARK(first(first(s(0), y0), 0)) -> c5(MARK(first(s(0), y0))) MARK(first(first(s(nil), y0), 0)) -> c5(MARK(first(s(nil), y0))) MARK(first(first(y0, cons(0, y1)), 0)) -> c5(MARK(first(y0, cons(0, y1)))) MARK(first(first(y0, cons(nil, y1)), 0)) -> c5(MARK(first(y0, cons(nil, y1)))) MARK(first(from(s(y0)), 0)) -> c5(MARK(from(s(y0)))) MARK(first(from(cons(y0, y1)), 0)) -> c5(MARK(from(cons(y0, y1)))) MARK(first(from(first(y0, y1)), 0)) -> c5(MARK(from(first(y0, y1)))) MARK(first(from(first(y0, first(y1, y2))), 0)) -> c5(MARK(from(first(y0, first(y1, y2))))) MARK(first(from(first(y0, from(y1))), 0)) -> c5(MARK(from(first(y0, from(y1))))) MARK(first(from(first(y0, 0)), 0)) -> c5(MARK(from(first(y0, 0)))) MARK(first(from(first(y0, nil)), 0)) -> c5(MARK(from(first(y0, nil)))) MARK(first(from(first(y0, s(y1))), 0)) -> c5(MARK(from(first(y0, s(y1))))) MARK(first(from(first(y0, cons(y1, y2))), 0)) -> c5(MARK(from(first(y0, cons(y1, y2))))) MARK(first(from(first(first(y0, y1), y2)), 0)) -> c5(MARK(from(first(first(y0, y1), y2)))) MARK(first(from(first(from(y0), y1)), 0)) -> c5(MARK(from(first(from(y0), y1)))) MARK(first(from(first(0, y0)), 0)) -> c5(MARK(from(first(0, y0)))) MARK(first(from(first(nil, y0)), 0)) -> c5(MARK(from(first(nil, y0)))) MARK(first(from(first(s(y0), y1)), 0)) -> c5(MARK(from(first(s(y0), y1)))) MARK(first(from(first(cons(y0, y1), y2)), 0)) -> c5(MARK(from(first(cons(y0, y1), y2)))) MARK(first(from(from(y0)), 0)) -> c5(MARK(from(from(y0)))) MARK(first(from(from(first(y0, y1))), 0)) -> c5(MARK(from(from(first(y0, y1))))) MARK(first(from(from(from(y0))), 0)) -> c5(MARK(from(from(from(y0))))) MARK(first(from(from(s(y0))), 0)) -> c5(MARK(from(from(s(y0))))) MARK(first(from(from(cons(y0, y1))), 0)) -> c5(MARK(from(from(cons(y0, y1))))) MARK(first(from(from(0)), 0)) -> c5(MARK(from(from(0)))) MARK(first(from(from(nil)), 0)) -> c5(MARK(from(from(nil)))) MARK(first(s(s(y0)), 0)) -> c5(MARK(s(s(y0)))) MARK(first(s(cons(y0, y1)), 0)) -> c5(MARK(s(cons(y0, y1)))) MARK(first(s(first(y0, 0)), 0)) -> c5(MARK(s(first(y0, 0)))) MARK(first(s(first(y0, nil)), 0)) -> c5(MARK(s(first(y0, nil)))) MARK(first(s(first(y0, s(y1))), 0)) -> c5(MARK(s(first(y0, s(y1))))) MARK(first(s(first(cons(y0, y1), y2)), 0)) -> c5(MARK(s(first(cons(y0, y1), y2)))) MARK(first(s(first(0, y0)), 0)) -> c5(MARK(s(first(0, y0)))) MARK(first(s(first(nil, y0)), 0)) -> c5(MARK(s(first(nil, y0)))) MARK(first(s(first(y0, first(y1, first(y2, y3)))), 0)) -> c5(MARK(s(first(y0, first(y1, first(y2, y3)))))) MARK(first(s(first(y0, first(y1, from(y2)))), 0)) -> c5(MARK(s(first(y0, first(y1, from(y2)))))) MARK(first(s(first(y0, first(y1, 0))), 0)) -> c5(MARK(s(first(y0, first(y1, 0))))) MARK(first(s(first(y0, first(y1, nil))), 0)) -> c5(MARK(s(first(y0, first(y1, nil))))) MARK(first(s(first(y0, first(y1, s(y2)))), 0)) -> c5(MARK(s(first(y0, first(y1, s(y2)))))) MARK(first(s(first(y0, first(y1, cons(y2, y3)))), 0)) -> c5(MARK(s(first(y0, first(y1, cons(y2, y3)))))) MARK(first(s(first(y0, first(first(y1, y2), y3))), 0)) -> c5(MARK(s(first(y0, first(first(y1, y2), y3))))) MARK(first(s(first(y0, first(from(y1), y2))), 0)) -> c5(MARK(s(first(y0, first(from(y1), y2))))) MARK(first(s(first(y0, first(0, y1))), 0)) -> c5(MARK(s(first(y0, first(0, y1))))) MARK(first(s(first(y0, first(nil, y1))), 0)) -> c5(MARK(s(first(y0, first(nil, y1))))) MARK(first(s(first(y0, first(s(y1), y2))), 0)) -> c5(MARK(s(first(y0, first(s(y1), y2))))) MARK(first(s(first(y0, first(cons(y1, y2), y3))), 0)) -> c5(MARK(s(first(y0, first(cons(y1, y2), y3))))) MARK(first(s(first(first(y0, y1), first(y2, y3))), 0)) -> c5(MARK(s(first(first(y0, y1), first(y2, y3))))) MARK(first(s(first(from(y0), first(y1, y2))), 0)) -> c5(MARK(s(first(from(y0), first(y1, y2))))) MARK(first(s(first(s(y0), first(y1, y2))), 0)) -> c5(MARK(s(first(s(y0), first(y1, y2))))) MARK(first(s(first(y0, first(y1, y2))), 0)) -> c5(MARK(s(first(y0, first(y1, y2))))) MARK(first(s(first(cons(y0, y1), first(y2, y3))), 0)) -> c5(MARK(s(first(cons(y0, y1), first(y2, y3))))) MARK(first(s(first(y0, from(y1))), 0)) -> c5(MARK(s(first(y0, from(y1))))) MARK(first(s(first(y0, from(first(y1, y2)))), 0)) -> c5(MARK(s(first(y0, from(first(y1, y2)))))) MARK(first(s(first(y0, from(from(y1)))), 0)) -> c5(MARK(s(first(y0, from(from(y1)))))) MARK(first(s(first(y0, from(0))), 0)) -> c5(MARK(s(first(y0, from(0))))) MARK(first(s(first(y0, from(nil))), 0)) -> c5(MARK(s(first(y0, from(nil))))) MARK(first(s(first(y0, from(s(y1)))), 0)) -> c5(MARK(s(first(y0, from(s(y1)))))) MARK(first(s(first(y0, from(cons(y1, y2)))), 0)) -> c5(MARK(s(first(y0, from(cons(y1, y2)))))) MARK(first(s(first(first(y0, y1), from(y2))), 0)) -> c5(MARK(s(first(first(y0, y1), from(y2))))) MARK(first(s(first(from(y0), from(y1))), 0)) -> c5(MARK(s(first(from(y0), from(y1))))) MARK(first(s(first(s(y0), from(y1))), 0)) -> c5(MARK(s(first(s(y0), from(y1))))) MARK(first(s(first(cons(y0, y1), from(y2))), 0)) -> c5(MARK(s(first(cons(y0, y1), from(y2))))) MARK(first(s(first(y0, cons(first(y1, y2), y3))), 0)) -> c5(MARK(s(first(y0, cons(first(y1, y2), y3))))) MARK(first(s(first(y0, cons(from(y1), y2))), 0)) -> c5(MARK(s(first(y0, cons(from(y1), y2))))) MARK(first(s(first(y0, cons(s(y1), y2))), 0)) -> c5(MARK(s(first(y0, cons(s(y1), y2))))) MARK(first(s(first(y0, cons(cons(y1, y2), y3))), 0)) -> c5(MARK(s(first(y0, cons(cons(y1, y2), y3))))) MARK(first(s(first(first(y0, y1), cons(y2, y3))), 0)) -> c5(MARK(s(first(first(y0, y1), cons(y2, y3))))) MARK(first(s(first(from(y0), cons(y1, y2))), 0)) -> c5(MARK(s(first(from(y0), cons(y1, y2))))) MARK(first(s(first(s(y0), cons(y1, y2))), 0)) -> c5(MARK(s(first(s(y0), cons(y1, y2))))) MARK(first(s(first(cons(y0, y1), cons(y2, y3))), 0)) -> c5(MARK(s(first(cons(y0, y1), cons(y2, y3))))) MARK(first(s(first(first(y0, first(y1, y2)), y3)), 0)) -> c5(MARK(s(first(first(y0, first(y1, y2)), y3)))) MARK(first(s(first(first(y0, from(y1)), y2)), 0)) -> c5(MARK(s(first(first(y0, from(y1)), y2)))) MARK(first(s(first(first(y0, 0), y1)), 0)) -> c5(MARK(s(first(first(y0, 0), y1)))) MARK(first(s(first(first(y0, nil), y1)), 0)) -> c5(MARK(s(first(first(y0, nil), y1)))) MARK(first(s(first(first(y0, s(y1)), y2)), 0)) -> c5(MARK(s(first(first(y0, s(y1)), y2)))) MARK(first(s(first(first(y0, cons(y1, y2)), y3)), 0)) -> c5(MARK(s(first(first(y0, cons(y1, y2)), y3)))) MARK(first(s(first(first(first(y0, y1), y2), y3)), 0)) -> c5(MARK(s(first(first(first(y0, y1), y2), y3)))) MARK(first(s(first(first(from(y0), y1), y2)), 0)) -> c5(MARK(s(first(first(from(y0), y1), y2)))) MARK(first(s(first(first(0, y0), y1)), 0)) -> c5(MARK(s(first(first(0, y0), y1)))) MARK(first(s(first(first(nil, y0), y1)), 0)) -> c5(MARK(s(first(first(nil, y0), y1)))) MARK(first(s(first(first(s(y0), y1), y2)), 0)) -> c5(MARK(s(first(first(s(y0), y1), y2)))) MARK(first(s(first(first(cons(y0, y1), y2), y3)), 0)) -> c5(MARK(s(first(first(cons(y0, y1), y2), y3)))) MARK(first(s(first(first(y0, y1), 0)), 0)) -> c5(MARK(s(first(first(y0, y1), 0)))) MARK(first(s(first(first(y0, y1), nil)), 0)) -> c5(MARK(s(first(first(y0, y1), nil)))) MARK(first(s(first(first(y0, y1), s(y2))), 0)) -> c5(MARK(s(first(first(y0, y1), s(y2))))) MARK(first(s(first(first(y0, y1), y2)), 0)) -> c5(MARK(s(first(first(y0, y1), y2)))) MARK(first(s(first(from(first(y0, y1)), y2)), 0)) -> c5(MARK(s(first(from(first(y0, y1)), y2)))) MARK(first(s(first(from(from(y0)), y1)), 0)) -> c5(MARK(s(first(from(from(y0)), y1)))) MARK(first(s(first(from(s(y0)), y1)), 0)) -> c5(MARK(s(first(from(s(y0)), y1)))) MARK(first(s(first(from(cons(y0, y1)), y2)), 0)) -> c5(MARK(s(first(from(cons(y0, y1)), y2)))) MARK(first(s(first(from(y0), y1)), 0)) -> c5(MARK(s(first(from(y0), y1)))) MARK(first(s(first(from(y0), 0)), 0)) -> c5(MARK(s(first(from(y0), 0)))) MARK(first(s(first(from(y0), nil)), 0)) -> c5(MARK(s(first(from(y0), nil)))) MARK(first(s(first(from(y0), s(y1))), 0)) -> c5(MARK(s(first(from(y0), s(y1))))) MARK(first(s(first(s(first(y0, y1)), y2)), 0)) -> c5(MARK(s(first(s(first(y0, y1)), y2)))) MARK(first(s(first(s(from(y0)), y1)), 0)) -> c5(MARK(s(first(s(from(y0)), y1)))) MARK(first(s(first(s(0), y0)), 0)) -> c5(MARK(s(first(s(0), y0)))) MARK(first(s(first(s(nil), y0)), 0)) -> c5(MARK(s(first(s(nil), y0)))) MARK(first(s(first(s(s(y0)), y1)), 0)) -> c5(MARK(s(first(s(s(y0)), y1)))) MARK(first(s(first(s(cons(y0, y1)), y2)), 0)) -> c5(MARK(s(first(s(cons(y0, y1)), y2)))) MARK(first(s(first(s(y0), y1)), 0)) -> c5(MARK(s(first(s(y0), y1)))) MARK(first(s(first(s(y0), 0)), 0)) -> c5(MARK(s(first(s(y0), 0)))) MARK(first(s(first(s(y0), nil)), 0)) -> c5(MARK(s(first(s(y0), nil)))) MARK(first(s(first(s(y0), s(y1))), 0)) -> c5(MARK(s(first(s(y0), s(y1))))) MARK(first(s(first(0, first(y0, y1))), 0)) -> c5(MARK(s(first(0, first(y0, y1))))) MARK(first(s(first(nil, first(y0, y1))), 0)) -> c5(MARK(s(first(nil, first(y0, y1))))) MARK(first(s(first(0, from(y0))), 0)) -> c5(MARK(s(first(0, from(y0))))) MARK(first(s(first(nil, from(y0))), 0)) -> c5(MARK(s(first(nil, from(y0))))) MARK(first(s(first(y0, cons(y1, y2))), 0)) -> c5(MARK(s(first(y0, cons(y1, y2))))) MARK(first(s(first(0, cons(y0, y1))), 0)) -> c5(MARK(s(first(0, cons(y0, y1))))) MARK(first(s(first(nil, cons(y0, y1))), 0)) -> c5(MARK(s(first(nil, cons(y0, y1))))) MARK(first(s(first(from(0), y0)), 0)) -> c5(MARK(s(first(from(0), y0)))) MARK(first(s(first(from(nil), y0)), 0)) -> c5(MARK(s(first(from(nil), y0)))) MARK(first(s(first(y0, cons(0, y1))), 0)) -> c5(MARK(s(first(y0, cons(0, y1))))) MARK(first(s(first(y0, cons(nil, y1))), 0)) -> c5(MARK(s(first(y0, cons(nil, y1))))) MARK(first(s(from(s(y0))), 0)) -> c5(MARK(s(from(s(y0))))) MARK(first(s(from(cons(y0, y1))), 0)) -> c5(MARK(s(from(cons(y0, y1))))) MARK(first(s(from(first(y0, y1))), 0)) -> c5(MARK(s(from(first(y0, y1))))) MARK(first(s(from(first(y0, first(y1, y2)))), 0)) -> c5(MARK(s(from(first(y0, first(y1, y2)))))) MARK(first(s(from(first(y0, from(y1)))), 0)) -> c5(MARK(s(from(first(y0, from(y1)))))) MARK(first(s(from(first(y0, 0))), 0)) -> c5(MARK(s(from(first(y0, 0))))) MARK(first(s(from(first(y0, nil))), 0)) -> c5(MARK(s(from(first(y0, nil))))) MARK(first(s(from(first(y0, s(y1)))), 0)) -> c5(MARK(s(from(first(y0, s(y1)))))) MARK(first(s(from(first(y0, cons(y1, y2)))), 0)) -> c5(MARK(s(from(first(y0, cons(y1, y2)))))) MARK(first(s(from(first(first(y0, y1), y2))), 0)) -> c5(MARK(s(from(first(first(y0, y1), y2))))) MARK(first(s(from(first(from(y0), y1))), 0)) -> c5(MARK(s(from(first(from(y0), y1))))) MARK(first(s(from(first(0, y0))), 0)) -> c5(MARK(s(from(first(0, y0))))) MARK(first(s(from(first(nil, y0))), 0)) -> c5(MARK(s(from(first(nil, y0))))) MARK(first(s(from(first(s(y0), y1))), 0)) -> c5(MARK(s(from(first(s(y0), y1))))) MARK(first(s(from(first(cons(y0, y1), y2))), 0)) -> c5(MARK(s(from(first(cons(y0, y1), y2))))) MARK(first(s(from(from(y0))), 0)) -> c5(MARK(s(from(from(y0))))) MARK(first(s(from(from(first(y0, y1)))), 0)) -> c5(MARK(s(from(from(first(y0, y1)))))) MARK(first(s(from(from(from(y0)))), 0)) -> c5(MARK(s(from(from(from(y0)))))) MARK(first(s(from(from(s(y0)))), 0)) -> c5(MARK(s(from(from(s(y0)))))) MARK(first(s(from(from(cons(y0, y1)))), 0)) -> c5(MARK(s(from(from(cons(y0, y1)))))) MARK(first(s(from(from(0))), 0)) -> c5(MARK(s(from(from(0))))) MARK(first(s(from(from(nil))), 0)) -> c5(MARK(s(from(from(nil))))) MARK(first(cons(cons(y0, y1), y2), 0)) -> c5(MARK(cons(cons(y0, y1), y2))) MARK(first(cons(first(y0, 0), y1), 0)) -> c5(MARK(cons(first(y0, 0), y1))) MARK(first(cons(first(y0, nil), y1), 0)) -> c5(MARK(cons(first(y0, nil), y1))) MARK(first(cons(first(y0, s(y1)), y2), 0)) -> c5(MARK(cons(first(y0, s(y1)), y2))) MARK(first(cons(first(cons(y0, y1), y2), y3), 0)) -> c5(MARK(cons(first(cons(y0, y1), y2), y3))) MARK(first(cons(first(0, y0), y1), 0)) -> c5(MARK(cons(first(0, y0), y1))) MARK(first(cons(first(nil, y0), y1), 0)) -> c5(MARK(cons(first(nil, y0), y1))) MARK(first(cons(first(y0, first(y1, first(y2, y3))), y4), 0)) -> c5(MARK(cons(first(y0, first(y1, first(y2, y3))), y4))) MARK(first(cons(first(y0, first(y1, from(y2))), y3), 0)) -> c5(MARK(cons(first(y0, first(y1, from(y2))), y3))) MARK(first(cons(first(y0, first(y1, 0)), y2), 0)) -> c5(MARK(cons(first(y0, first(y1, 0)), y2))) MARK(first(cons(first(y0, first(y1, nil)), y2), 0)) -> c5(MARK(cons(first(y0, first(y1, nil)), y2))) MARK(first(cons(first(y0, first(y1, s(y2))), y3), 0)) -> c5(MARK(cons(first(y0, first(y1, s(y2))), y3))) MARK(first(cons(first(y0, first(y1, cons(y2, y3))), y4), 0)) -> c5(MARK(cons(first(y0, first(y1, cons(y2, y3))), y4))) MARK(first(cons(first(y0, first(first(y1, y2), y3)), y4), 0)) -> c5(MARK(cons(first(y0, first(first(y1, y2), y3)), y4))) MARK(first(cons(first(y0, first(from(y1), y2)), y3), 0)) -> c5(MARK(cons(first(y0, first(from(y1), y2)), y3))) MARK(first(cons(first(y0, first(0, y1)), y2), 0)) -> c5(MARK(cons(first(y0, first(0, y1)), y2))) MARK(first(cons(first(y0, first(nil, y1)), y2), 0)) -> c5(MARK(cons(first(y0, first(nil, y1)), y2))) MARK(first(cons(first(y0, first(s(y1), y2)), y3), 0)) -> c5(MARK(cons(first(y0, first(s(y1), y2)), y3))) MARK(first(cons(first(y0, first(cons(y1, y2), y3)), y4), 0)) -> c5(MARK(cons(first(y0, first(cons(y1, y2), y3)), y4))) MARK(first(cons(first(first(y0, y1), first(y2, y3)), y4), 0)) -> c5(MARK(cons(first(first(y0, y1), first(y2, y3)), y4))) MARK(first(cons(first(from(y0), first(y1, y2)), y3), 0)) -> c5(MARK(cons(first(from(y0), first(y1, y2)), y3))) MARK(first(cons(first(s(y0), first(y1, y2)), y3), 0)) -> c5(MARK(cons(first(s(y0), first(y1, y2)), y3))) MARK(first(cons(first(y0, first(y1, y2)), y3), 0)) -> c5(MARK(cons(first(y0, first(y1, y2)), y3))) MARK(first(cons(first(cons(y0, y1), first(y2, y3)), y4), 0)) -> c5(MARK(cons(first(cons(y0, y1), first(y2, y3)), y4))) MARK(first(cons(first(y0, from(y1)), y2), 0)) -> c5(MARK(cons(first(y0, from(y1)), y2))) MARK(first(cons(first(y0, from(first(y1, y2))), y3), 0)) -> c5(MARK(cons(first(y0, from(first(y1, y2))), y3))) MARK(first(cons(first(y0, from(from(y1))), y2), 0)) -> c5(MARK(cons(first(y0, from(from(y1))), y2))) MARK(first(cons(first(y0, from(0)), y1), 0)) -> c5(MARK(cons(first(y0, from(0)), y1))) MARK(first(cons(first(y0, from(nil)), y1), 0)) -> c5(MARK(cons(first(y0, from(nil)), y1))) MARK(first(cons(first(y0, from(s(y1))), y2), 0)) -> c5(MARK(cons(first(y0, from(s(y1))), y2))) MARK(first(cons(first(y0, from(cons(y1, y2))), y3), 0)) -> c5(MARK(cons(first(y0, from(cons(y1, y2))), y3))) MARK(first(cons(first(first(y0, y1), from(y2)), y3), 0)) -> c5(MARK(cons(first(first(y0, y1), from(y2)), y3))) MARK(first(cons(first(from(y0), from(y1)), y2), 0)) -> c5(MARK(cons(first(from(y0), from(y1)), y2))) MARK(first(cons(first(s(y0), from(y1)), y2), 0)) -> c5(MARK(cons(first(s(y0), from(y1)), y2))) MARK(first(cons(first(cons(y0, y1), from(y2)), y3), 0)) -> c5(MARK(cons(first(cons(y0, y1), from(y2)), y3))) MARK(first(cons(first(y0, cons(first(y1, y2), y3)), y4), 0)) -> c5(MARK(cons(first(y0, cons(first(y1, y2), y3)), y4))) MARK(first(cons(first(y0, cons(from(y1), y2)), y3), 0)) -> c5(MARK(cons(first(y0, cons(from(y1), y2)), y3))) MARK(first(cons(first(y0, cons(s(y1), y2)), y3), 0)) -> c5(MARK(cons(first(y0, cons(s(y1), y2)), y3))) MARK(first(cons(first(y0, cons(cons(y1, y2), y3)), y4), 0)) -> c5(MARK(cons(first(y0, cons(cons(y1, y2), y3)), y4))) MARK(first(cons(first(first(y0, y1), cons(y2, y3)), y4), 0)) -> c5(MARK(cons(first(first(y0, y1), cons(y2, y3)), y4))) MARK(first(cons(first(from(y0), cons(y1, y2)), y3), 0)) -> c5(MARK(cons(first(from(y0), cons(y1, y2)), y3))) MARK(first(cons(first(s(y0), cons(y1, y2)), y3), 0)) -> c5(MARK(cons(first(s(y0), cons(y1, y2)), y3))) MARK(first(cons(first(cons(y0, y1), cons(y2, y3)), y4), 0)) -> c5(MARK(cons(first(cons(y0, y1), cons(y2, y3)), y4))) MARK(first(cons(first(first(y0, first(y1, y2)), y3), y4), 0)) -> c5(MARK(cons(first(first(y0, first(y1, y2)), y3), y4))) MARK(first(cons(first(first(y0, from(y1)), y2), y3), 0)) -> c5(MARK(cons(first(first(y0, from(y1)), y2), y3))) MARK(first(cons(first(first(y0, 0), y1), y2), 0)) -> c5(MARK(cons(first(first(y0, 0), y1), y2))) MARK(first(cons(first(first(y0, nil), y1), y2), 0)) -> c5(MARK(cons(first(first(y0, nil), y1), y2))) MARK(first(cons(first(first(y0, s(y1)), y2), y3), 0)) -> c5(MARK(cons(first(first(y0, s(y1)), y2), y3))) MARK(first(cons(first(first(y0, cons(y1, y2)), y3), y4), 0)) -> c5(MARK(cons(first(first(y0, cons(y1, y2)), y3), y4))) MARK(first(cons(first(first(first(y0, y1), y2), y3), y4), 0)) -> c5(MARK(cons(first(first(first(y0, y1), y2), y3), y4))) MARK(first(cons(first(first(from(y0), y1), y2), y3), 0)) -> c5(MARK(cons(first(first(from(y0), y1), y2), y3))) MARK(first(cons(first(first(0, y0), y1), y2), 0)) -> c5(MARK(cons(first(first(0, y0), y1), y2))) MARK(first(cons(first(first(nil, y0), y1), y2), 0)) -> c5(MARK(cons(first(first(nil, y0), y1), y2))) MARK(first(cons(first(first(s(y0), y1), y2), y3), 0)) -> c5(MARK(cons(first(first(s(y0), y1), y2), y3))) MARK(first(cons(first(first(cons(y0, y1), y2), y3), y4), 0)) -> c5(MARK(cons(first(first(cons(y0, y1), y2), y3), y4))) MARK(first(cons(first(first(y0, y1), 0), y2), 0)) -> c5(MARK(cons(first(first(y0, y1), 0), y2))) MARK(first(cons(first(first(y0, y1), nil), y2), 0)) -> c5(MARK(cons(first(first(y0, y1), nil), y2))) MARK(first(cons(first(first(y0, y1), s(y2)), y3), 0)) -> c5(MARK(cons(first(first(y0, y1), s(y2)), y3))) MARK(first(cons(first(first(y0, y1), y2), y3), 0)) -> c5(MARK(cons(first(first(y0, y1), y2), y3))) MARK(first(cons(first(from(first(y0, y1)), y2), y3), 0)) -> c5(MARK(cons(first(from(first(y0, y1)), y2), y3))) MARK(first(cons(first(from(from(y0)), y1), y2), 0)) -> c5(MARK(cons(first(from(from(y0)), y1), y2))) MARK(first(cons(first(from(s(y0)), y1), y2), 0)) -> c5(MARK(cons(first(from(s(y0)), y1), y2))) MARK(first(cons(first(from(cons(y0, y1)), y2), y3), 0)) -> c5(MARK(cons(first(from(cons(y0, y1)), y2), y3))) MARK(first(cons(first(from(y0), y1), y2), 0)) -> c5(MARK(cons(first(from(y0), y1), y2))) MARK(first(cons(first(from(y0), 0), y1), 0)) -> c5(MARK(cons(first(from(y0), 0), y1))) MARK(first(cons(first(from(y0), nil), y1), 0)) -> c5(MARK(cons(first(from(y0), nil), y1))) MARK(first(cons(first(from(y0), s(y1)), y2), 0)) -> c5(MARK(cons(first(from(y0), s(y1)), y2))) MARK(first(cons(first(s(first(y0, y1)), y2), y3), 0)) -> c5(MARK(cons(first(s(first(y0, y1)), y2), y3))) MARK(first(cons(first(s(from(y0)), y1), y2), 0)) -> c5(MARK(cons(first(s(from(y0)), y1), y2))) MARK(first(cons(first(s(s(y0)), y1), y2), 0)) -> c5(MARK(cons(first(s(s(y0)), y1), y2))) MARK(first(cons(first(s(cons(y0, y1)), y2), y3), 0)) -> c5(MARK(cons(first(s(cons(y0, y1)), y2), y3))) MARK(first(cons(first(s(y0), y1), y2), 0)) -> c5(MARK(cons(first(s(y0), y1), y2))) MARK(first(cons(first(s(y0), 0), y1), 0)) -> c5(MARK(cons(first(s(y0), 0), y1))) MARK(first(cons(first(s(y0), nil), y1), 0)) -> c5(MARK(cons(first(s(y0), nil), y1))) MARK(first(cons(first(s(y0), s(y1)), y2), 0)) -> c5(MARK(cons(first(s(y0), s(y1)), y2))) MARK(first(cons(first(0, first(y0, y1)), y2), 0)) -> c5(MARK(cons(first(0, first(y0, y1)), y2))) MARK(first(cons(first(nil, first(y0, y1)), y2), 0)) -> c5(MARK(cons(first(nil, first(y0, y1)), y2))) MARK(first(cons(first(0, from(y0)), y1), 0)) -> c5(MARK(cons(first(0, from(y0)), y1))) MARK(first(cons(first(nil, from(y0)), y1), 0)) -> c5(MARK(cons(first(nil, from(y0)), y1))) MARK(first(cons(first(y0, cons(y1, y2)), y3), 0)) -> c5(MARK(cons(first(y0, cons(y1, y2)), y3))) MARK(first(cons(first(0, cons(y0, y1)), y2), 0)) -> c5(MARK(cons(first(0, cons(y0, y1)), y2))) MARK(first(cons(first(nil, cons(y0, y1)), y2), 0)) -> c5(MARK(cons(first(nil, cons(y0, y1)), y2))) MARK(first(cons(first(from(0), y0), y1), 0)) -> c5(MARK(cons(first(from(0), y0), y1))) MARK(first(cons(first(from(nil), y0), y1), 0)) -> c5(MARK(cons(first(from(nil), y0), y1))) MARK(first(cons(first(s(0), y0), y1), 0)) -> c5(MARK(cons(first(s(0), y0), y1))) MARK(first(cons(first(s(nil), y0), y1), 0)) -> c5(MARK(cons(first(s(nil), y0), y1))) MARK(first(cons(first(y0, cons(0, y1)), y2), 0)) -> c5(MARK(cons(first(y0, cons(0, y1)), y2))) MARK(first(cons(first(y0, cons(nil, y1)), y2), 0)) -> c5(MARK(cons(first(y0, cons(nil, y1)), y2))) MARK(first(cons(from(s(y0)), y1), 0)) -> c5(MARK(cons(from(s(y0)), y1))) MARK(first(cons(from(cons(y0, y1)), y2), 0)) -> c5(MARK(cons(from(cons(y0, y1)), y2))) MARK(first(cons(from(first(y0, y1)), y2), 0)) -> c5(MARK(cons(from(first(y0, y1)), y2))) MARK(first(cons(from(first(y0, first(y1, y2))), y3), 0)) -> c5(MARK(cons(from(first(y0, first(y1, y2))), y3))) MARK(first(cons(from(first(y0, from(y1))), y2), 0)) -> c5(MARK(cons(from(first(y0, from(y1))), y2))) MARK(first(cons(from(first(y0, 0)), y1), 0)) -> c5(MARK(cons(from(first(y0, 0)), y1))) MARK(first(cons(from(first(y0, nil)), y1), 0)) -> c5(MARK(cons(from(first(y0, nil)), y1))) MARK(first(cons(from(first(y0, s(y1))), y2), 0)) -> c5(MARK(cons(from(first(y0, s(y1))), y2))) MARK(first(cons(from(first(y0, cons(y1, y2))), y3), 0)) -> c5(MARK(cons(from(first(y0, cons(y1, y2))), y3))) MARK(first(cons(from(first(first(y0, y1), y2)), y3), 0)) -> c5(MARK(cons(from(first(first(y0, y1), y2)), y3))) MARK(first(cons(from(first(from(y0), y1)), y2), 0)) -> c5(MARK(cons(from(first(from(y0), y1)), y2))) MARK(first(cons(from(first(0, y0)), y1), 0)) -> c5(MARK(cons(from(first(0, y0)), y1))) MARK(first(cons(from(first(nil, y0)), y1), 0)) -> c5(MARK(cons(from(first(nil, y0)), y1))) MARK(first(cons(from(first(s(y0), y1)), y2), 0)) -> c5(MARK(cons(from(first(s(y0), y1)), y2))) MARK(first(cons(from(first(cons(y0, y1), y2)), y3), 0)) -> c5(MARK(cons(from(first(cons(y0, y1), y2)), y3))) MARK(first(cons(from(from(y0)), y1), 0)) -> c5(MARK(cons(from(from(y0)), y1))) MARK(first(cons(from(from(first(y0, y1))), y2), 0)) -> c5(MARK(cons(from(from(first(y0, y1))), y2))) MARK(first(cons(from(from(from(y0))), y1), 0)) -> c5(MARK(cons(from(from(from(y0))), y1))) MARK(first(cons(from(from(s(y0))), y1), 0)) -> c5(MARK(cons(from(from(s(y0))), y1))) MARK(first(cons(from(from(cons(y0, y1))), y2), 0)) -> c5(MARK(cons(from(from(cons(y0, y1))), y2))) MARK(first(cons(from(from(0)), y0), 0)) -> c5(MARK(cons(from(from(0)), y0))) MARK(first(cons(from(from(nil)), y0), 0)) -> c5(MARK(cons(from(from(nil)), y0))) MARK(first(cons(s(s(y0)), y1), 0)) -> c5(MARK(cons(s(s(y0)), y1))) MARK(first(cons(s(cons(y0, y1)), y2), 0)) -> c5(MARK(cons(s(cons(y0, y1)), y2))) MARK(first(cons(s(first(y0, 0)), y1), 0)) -> c5(MARK(cons(s(first(y0, 0)), y1))) MARK(first(cons(s(first(y0, nil)), y1), 0)) -> c5(MARK(cons(s(first(y0, nil)), y1))) MARK(first(cons(s(first(y0, s(y1))), y2), 0)) -> c5(MARK(cons(s(first(y0, s(y1))), y2))) MARK(first(cons(s(first(cons(y0, y1), y2)), y3), 0)) -> c5(MARK(cons(s(first(cons(y0, y1), y2)), y3))) MARK(first(cons(s(first(0, y0)), y1), 0)) -> c5(MARK(cons(s(first(0, y0)), y1))) MARK(first(cons(s(first(nil, y0)), y1), 0)) -> c5(MARK(cons(s(first(nil, y0)), y1))) MARK(first(cons(s(first(y0, first(y1, first(y2, y3)))), y4), 0)) -> c5(MARK(cons(s(first(y0, first(y1, first(y2, y3)))), y4))) MARK(first(cons(s(first(y0, first(y1, from(y2)))), y3), 0)) -> c5(MARK(cons(s(first(y0, first(y1, from(y2)))), y3))) MARK(first(cons(s(first(y0, first(y1, 0))), y2), 0)) -> c5(MARK(cons(s(first(y0, first(y1, 0))), y2))) MARK(first(cons(s(first(y0, first(y1, nil))), y2), 0)) -> c5(MARK(cons(s(first(y0, first(y1, nil))), y2))) MARK(first(cons(s(first(y0, first(y1, s(y2)))), y3), 0)) -> c5(MARK(cons(s(first(y0, first(y1, s(y2)))), y3))) MARK(first(cons(s(first(y0, first(y1, cons(y2, y3)))), y4), 0)) -> c5(MARK(cons(s(first(y0, first(y1, cons(y2, y3)))), y4))) MARK(first(cons(s(first(y0, first(first(y1, y2), y3))), y4), 0)) -> c5(MARK(cons(s(first(y0, first(first(y1, y2), y3))), y4))) MARK(first(cons(s(first(y0, first(from(y1), y2))), y3), 0)) -> c5(MARK(cons(s(first(y0, first(from(y1), y2))), y3))) MARK(first(cons(s(first(y0, first(0, y1))), y2), 0)) -> c5(MARK(cons(s(first(y0, first(0, y1))), y2))) MARK(first(cons(s(first(y0, first(nil, y1))), y2), 0)) -> c5(MARK(cons(s(first(y0, first(nil, y1))), y2))) MARK(first(cons(s(first(y0, first(s(y1), y2))), y3), 0)) -> c5(MARK(cons(s(first(y0, first(s(y1), y2))), y3))) MARK(first(cons(s(first(y0, first(cons(y1, y2), y3))), y4), 0)) -> c5(MARK(cons(s(first(y0, first(cons(y1, y2), y3))), y4))) MARK(first(cons(s(first(first(y0, y1), first(y2, y3))), y4), 0)) -> c5(MARK(cons(s(first(first(y0, y1), first(y2, y3))), y4))) MARK(first(cons(s(first(from(y0), first(y1, y2))), y3), 0)) -> c5(MARK(cons(s(first(from(y0), first(y1, y2))), y3))) MARK(first(cons(s(first(s(y0), first(y1, y2))), y3), 0)) -> c5(MARK(cons(s(first(s(y0), first(y1, y2))), y3))) MARK(first(cons(s(first(y0, first(y1, y2))), y3), 0)) -> c5(MARK(cons(s(first(y0, first(y1, y2))), y3))) MARK(first(cons(s(first(cons(y0, y1), first(y2, y3))), y4), 0)) -> c5(MARK(cons(s(first(cons(y0, y1), first(y2, y3))), y4))) MARK(first(cons(s(first(y0, from(y1))), y2), 0)) -> c5(MARK(cons(s(first(y0, from(y1))), y2))) MARK(first(cons(s(first(y0, from(first(y1, y2)))), y3), 0)) -> c5(MARK(cons(s(first(y0, from(first(y1, y2)))), y3))) MARK(first(cons(s(first(y0, from(from(y1)))), y2), 0)) -> c5(MARK(cons(s(first(y0, from(from(y1)))), y2))) MARK(first(cons(s(first(y0, from(0))), y1), 0)) -> c5(MARK(cons(s(first(y0, from(0))), y1))) MARK(first(cons(s(first(y0, from(nil))), y1), 0)) -> c5(MARK(cons(s(first(y0, from(nil))), y1))) MARK(first(cons(s(first(y0, from(s(y1)))), y2), 0)) -> c5(MARK(cons(s(first(y0, from(s(y1)))), y2))) MARK(first(cons(s(first(y0, from(cons(y1, y2)))), y3), 0)) -> c5(MARK(cons(s(first(y0, from(cons(y1, y2)))), y3))) MARK(first(cons(s(first(first(y0, y1), from(y2))), y3), 0)) -> c5(MARK(cons(s(first(first(y0, y1), from(y2))), y3))) MARK(first(cons(s(first(from(y0), from(y1))), y2), 0)) -> c5(MARK(cons(s(first(from(y0), from(y1))), y2))) MARK(first(cons(s(first(s(y0), from(y1))), y2), 0)) -> c5(MARK(cons(s(first(s(y0), from(y1))), y2))) MARK(first(cons(s(first(cons(y0, y1), from(y2))), y3), 0)) -> c5(MARK(cons(s(first(cons(y0, y1), from(y2))), y3))) MARK(first(cons(s(first(y0, cons(first(y1, y2), y3))), y4), 0)) -> c5(MARK(cons(s(first(y0, cons(first(y1, y2), y3))), y4))) MARK(first(cons(s(first(y0, cons(from(y1), y2))), y3), 0)) -> c5(MARK(cons(s(first(y0, cons(from(y1), y2))), y3))) MARK(first(cons(s(first(y0, cons(s(y1), y2))), y3), 0)) -> c5(MARK(cons(s(first(y0, cons(s(y1), y2))), y3))) MARK(first(cons(s(first(y0, cons(cons(y1, y2), y3))), y4), 0)) -> c5(MARK(cons(s(first(y0, cons(cons(y1, y2), y3))), y4))) MARK(first(cons(s(first(first(y0, y1), cons(y2, y3))), y4), 0)) -> c5(MARK(cons(s(first(first(y0, y1), cons(y2, y3))), y4))) MARK(first(cons(s(first(from(y0), cons(y1, y2))), y3), 0)) -> c5(MARK(cons(s(first(from(y0), cons(y1, y2))), y3))) MARK(first(cons(s(first(s(y0), cons(y1, y2))), y3), 0)) -> c5(MARK(cons(s(first(s(y0), cons(y1, y2))), y3))) MARK(first(cons(s(first(cons(y0, y1), cons(y2, y3))), y4), 0)) -> c5(MARK(cons(s(first(cons(y0, y1), cons(y2, y3))), y4))) MARK(first(cons(s(first(first(y0, first(y1, y2)), y3)), y4), 0)) -> c5(MARK(cons(s(first(first(y0, first(y1, y2)), y3)), y4))) MARK(first(cons(s(first(first(y0, from(y1)), y2)), y3), 0)) -> c5(MARK(cons(s(first(first(y0, from(y1)), y2)), y3))) MARK(first(cons(s(first(first(y0, 0), y1)), y2), 0)) -> c5(MARK(cons(s(first(first(y0, 0), y1)), y2))) MARK(first(cons(s(first(first(y0, nil), y1)), y2), 0)) -> c5(MARK(cons(s(first(first(y0, nil), y1)), y2))) MARK(first(cons(s(first(first(y0, s(y1)), y2)), y3), 0)) -> c5(MARK(cons(s(first(first(y0, s(y1)), y2)), y3))) MARK(first(cons(s(first(first(y0, cons(y1, y2)), y3)), y4), 0)) -> c5(MARK(cons(s(first(first(y0, cons(y1, y2)), y3)), y4))) MARK(first(cons(s(first(first(first(y0, y1), y2), y3)), y4), 0)) -> c5(MARK(cons(s(first(first(first(y0, y1), y2), y3)), y4))) MARK(first(cons(s(first(first(from(y0), y1), y2)), y3), 0)) -> c5(MARK(cons(s(first(first(from(y0), y1), y2)), y3))) MARK(first(cons(s(first(first(0, y0), y1)), y2), 0)) -> c5(MARK(cons(s(first(first(0, y0), y1)), y2))) MARK(first(cons(s(first(first(nil, y0), y1)), y2), 0)) -> c5(MARK(cons(s(first(first(nil, y0), y1)), y2))) MARK(first(cons(s(first(first(s(y0), y1), y2)), y3), 0)) -> c5(MARK(cons(s(first(first(s(y0), y1), y2)), y3))) MARK(first(cons(s(first(first(cons(y0, y1), y2), y3)), y4), 0)) -> c5(MARK(cons(s(first(first(cons(y0, y1), y2), y3)), y4))) MARK(first(cons(s(first(first(y0, y1), 0)), y2), 0)) -> c5(MARK(cons(s(first(first(y0, y1), 0)), y2))) MARK(first(cons(s(first(first(y0, y1), nil)), y2), 0)) -> c5(MARK(cons(s(first(first(y0, y1), nil)), y2))) MARK(first(cons(s(first(first(y0, y1), s(y2))), y3), 0)) -> c5(MARK(cons(s(first(first(y0, y1), s(y2))), y3))) MARK(first(cons(s(first(first(y0, y1), y2)), y3), 0)) -> c5(MARK(cons(s(first(first(y0, y1), y2)), y3))) MARK(first(cons(s(first(from(first(y0, y1)), y2)), y3), 0)) -> c5(MARK(cons(s(first(from(first(y0, y1)), y2)), y3))) MARK(first(cons(s(first(from(from(y0)), y1)), y2), 0)) -> c5(MARK(cons(s(first(from(from(y0)), y1)), y2))) MARK(first(cons(s(first(from(s(y0)), y1)), y2), 0)) -> c5(MARK(cons(s(first(from(s(y0)), y1)), y2))) MARK(first(cons(s(first(from(cons(y0, y1)), y2)), y3), 0)) -> c5(MARK(cons(s(first(from(cons(y0, y1)), y2)), y3))) MARK(first(cons(s(first(from(y0), y1)), y2), 0)) -> c5(MARK(cons(s(first(from(y0), y1)), y2))) MARK(first(cons(s(first(from(y0), 0)), y1), 0)) -> c5(MARK(cons(s(first(from(y0), 0)), y1))) MARK(first(cons(s(first(from(y0), nil)), y1), 0)) -> c5(MARK(cons(s(first(from(y0), nil)), y1))) MARK(first(cons(s(first(from(y0), s(y1))), y2), 0)) -> c5(MARK(cons(s(first(from(y0), s(y1))), y2))) MARK(first(cons(s(first(s(first(y0, y1)), y2)), y3), 0)) -> c5(MARK(cons(s(first(s(first(y0, y1)), y2)), y3))) MARK(first(cons(s(first(s(from(y0)), y1)), y2), 0)) -> c5(MARK(cons(s(first(s(from(y0)), y1)), y2))) MARK(first(cons(s(first(s(0), y0)), y1), 0)) -> c5(MARK(cons(s(first(s(0), y0)), y1))) MARK(first(cons(s(first(s(nil), y0)), y1), 0)) -> c5(MARK(cons(s(first(s(nil), y0)), y1))) MARK(first(cons(s(first(s(s(y0)), y1)), y2), 0)) -> c5(MARK(cons(s(first(s(s(y0)), y1)), y2))) MARK(first(cons(s(first(s(cons(y0, y1)), y2)), y3), 0)) -> c5(MARK(cons(s(first(s(cons(y0, y1)), y2)), y3))) MARK(first(cons(s(first(s(y0), y1)), y2), 0)) -> c5(MARK(cons(s(first(s(y0), y1)), y2))) MARK(first(cons(s(first(s(y0), 0)), y1), 0)) -> c5(MARK(cons(s(first(s(y0), 0)), y1))) MARK(first(cons(s(first(s(y0), nil)), y1), 0)) -> c5(MARK(cons(s(first(s(y0), nil)), y1))) MARK(first(cons(s(first(s(y0), s(y1))), y2), 0)) -> c5(MARK(cons(s(first(s(y0), s(y1))), y2))) MARK(first(cons(s(first(0, first(y0, y1))), y2), 0)) -> c5(MARK(cons(s(first(0, first(y0, y1))), y2))) MARK(first(cons(s(first(nil, first(y0, y1))), y2), 0)) -> c5(MARK(cons(s(first(nil, first(y0, y1))), y2))) MARK(first(cons(s(first(0, from(y0))), y1), 0)) -> c5(MARK(cons(s(first(0, from(y0))), y1))) MARK(first(cons(s(first(nil, from(y0))), y1), 0)) -> c5(MARK(cons(s(first(nil, from(y0))), y1))) MARK(first(cons(s(first(y0, cons(y1, y2))), y3), 0)) -> c5(MARK(cons(s(first(y0, cons(y1, y2))), y3))) MARK(first(cons(s(first(0, cons(y0, y1))), y2), 0)) -> c5(MARK(cons(s(first(0, cons(y0, y1))), y2))) MARK(first(cons(s(first(nil, cons(y0, y1))), y2), 0)) -> c5(MARK(cons(s(first(nil, cons(y0, y1))), y2))) MARK(first(cons(s(first(from(0), y0)), y1), 0)) -> c5(MARK(cons(s(first(from(0), y0)), y1))) MARK(first(cons(s(first(from(nil), y0)), y1), 0)) -> c5(MARK(cons(s(first(from(nil), y0)), y1))) MARK(first(cons(s(first(y0, cons(0, y1))), y2), 0)) -> c5(MARK(cons(s(first(y0, cons(0, y1))), y2))) MARK(first(cons(s(first(y0, cons(nil, y1))), y2), 0)) -> c5(MARK(cons(s(first(y0, cons(nil, y1))), y2))) MARK(first(cons(s(from(s(y0))), y1), 0)) -> c5(MARK(cons(s(from(s(y0))), y1))) MARK(first(cons(s(from(cons(y0, y1))), y2), 0)) -> c5(MARK(cons(s(from(cons(y0, y1))), y2))) MARK(first(cons(s(from(first(y0, y1))), y2), 0)) -> c5(MARK(cons(s(from(first(y0, y1))), y2))) MARK(first(cons(s(from(first(y0, first(y1, y2)))), y3), 0)) -> c5(MARK(cons(s(from(first(y0, first(y1, y2)))), y3))) MARK(first(cons(s(from(first(y0, from(y1)))), y2), 0)) -> c5(MARK(cons(s(from(first(y0, from(y1)))), y2))) MARK(first(cons(s(from(first(y0, 0))), y1), 0)) -> c5(MARK(cons(s(from(first(y0, 0))), y1))) MARK(first(cons(s(from(first(y0, nil))), y1), 0)) -> c5(MARK(cons(s(from(first(y0, nil))), y1))) MARK(first(cons(s(from(first(y0, s(y1)))), y2), 0)) -> c5(MARK(cons(s(from(first(y0, s(y1)))), y2))) MARK(first(cons(s(from(first(y0, cons(y1, y2)))), y3), 0)) -> c5(MARK(cons(s(from(first(y0, cons(y1, y2)))), y3))) MARK(first(cons(s(from(first(first(y0, y1), y2))), y3), 0)) -> c5(MARK(cons(s(from(first(first(y0, y1), y2))), y3))) MARK(first(cons(s(from(first(from(y0), y1))), y2), 0)) -> c5(MARK(cons(s(from(first(from(y0), y1))), y2))) MARK(first(cons(s(from(first(0, y0))), y1), 0)) -> c5(MARK(cons(s(from(first(0, y0))), y1))) MARK(first(cons(s(from(first(nil, y0))), y1), 0)) -> c5(MARK(cons(s(from(first(nil, y0))), y1))) MARK(first(cons(s(from(first(s(y0), y1))), y2), 0)) -> c5(MARK(cons(s(from(first(s(y0), y1))), y2))) MARK(first(cons(s(from(first(cons(y0, y1), y2))), y3), 0)) -> c5(MARK(cons(s(from(first(cons(y0, y1), y2))), y3))) MARK(first(cons(s(from(from(y0))), y1), 0)) -> c5(MARK(cons(s(from(from(y0))), y1))) MARK(first(cons(s(from(from(first(y0, y1)))), y2), 0)) -> c5(MARK(cons(s(from(from(first(y0, y1)))), y2))) MARK(first(cons(s(from(from(from(y0)))), y1), 0)) -> c5(MARK(cons(s(from(from(from(y0)))), y1))) MARK(first(cons(s(from(from(s(y0)))), y1), 0)) -> c5(MARK(cons(s(from(from(s(y0)))), y1))) MARK(first(cons(s(from(from(cons(y0, y1)))), y2), 0)) -> c5(MARK(cons(s(from(from(cons(y0, y1)))), y2))) MARK(first(cons(s(from(from(0))), y0), 0)) -> c5(MARK(cons(s(from(from(0))), y0))) MARK(first(cons(s(from(from(nil))), y0), 0)) -> c5(MARK(cons(s(from(from(nil))), y0))) K tuples:none Defined Rule Symbols: a__first_2, a__from_1, mark_1 Defined Pair Symbols: MARK_1, A__FIRST_2, A__FROM_1 Compound Symbols: c5_1, c6_1, c5_2, c6_2, c1_1, c3_1, c7_2, c7_1, c10_1, c11_1